问题标签 [new-psdrive]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
12534 浏览

powershell - 无法将“-persist”添加到 New-PSDrive - 出现错误“网络资源类型不正确”

正如标题所说,如果我尝试添加-persist到 cmdlt,它会返回一个错误:

New-PSDrive : The network resource type is not correct At line:1 char:1 + New-PSDrive -Name P -Root <redacted> ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (P:PSDriveInfo) [New-PSDrive], Win32Exception + FullyQualifiedErrorId : CouldNotMapNetworkDrive,Microsoft.PowerShell.Commands.NewPSDriveCommand

作为参考,这是 PowerShell 中的管理员会话,但如果我在常规用户会话中执行此操作,我会得到完全相同的响应:

从一开始:我验证我想要使用的驱动器号可用(P,在这种情况下)

然后我尝试运行:(我已经将$locale变量定义为,例如'\\foo\bar\')。

快乐的时光。这样可行。但当然,它对 Windows 资源管理器是不可见的,因为它只是在这个 PS 会话中。所以,我销毁它remove-psdrive Pget-psdrive-persist

它失败了。对于上下文,我这样做是为了可以使用带有远程 PSDrive 的 RoboCopy 编写脚本(我们想要使用 robocopy,因为它内置了报告、属性管理以及在目标位置维护文件结构的能力,我们想要使用PSDrives,因此我们可以为目标驱动器指定凭据)。

有没有人有任何想法?

编辑:哦,伙计……我不敢相信……但是以防万一其他人发现这个,我要离开它。问题是我路径的尾随\。我删除了它,它仍然很好。

0 投票
2 回答
2364 浏览

powershell - New-PSDrive 驱动器映射名称

在我的 powershell 脚本中,我使用 New-PSDrive 函数将远程服务器文件路径映射到我的本地计算机作为 Windows 部署操作过程。

我计划将来重用这个 Powershell 脚本,所以我不希望驱动器之间因为命名而发生任何冲突。例如,如果两个部署操作需要同时到达脚本,那么两个部署操作之一将被错误地部署。

这就是问题:我可以使用时间戳或任何其他唯一信息作为驱动器映射名称吗?这样,我可以确保避免名称冲突。

编辑:

我试图创建没有持久参数的自定义命名 new-psdrive 映射,但是这样,powershell 会尝试使用相对路径(在当前工作目录下)到达文件夹

这是我尝试复制一些文件(备份)的代码:

编辑2:

您不能将动态名称用作持久驱动器映射名称。如果您要访问跨域计算机,最好的方法是(但具有成本效益的方法)使用 Invoke-Command 在远程计算机上运行脚本。需要允许 2 路(远程-本地、本地-远程)文件共享权限。如果您使用 Invoke-Command,则不会发生冲突。因为该命令在远程计算机上使用动态会话。

0 投票
2 回答
367 浏览

powershell - $是什么类型的对象: (例如`$code:`) 在Powershell 中?

我今天在 Powershell 5.1 中使用选项卡自动完成作为变量名,并注意到其中一个选项是 PSDrive 的名称。驱动器名称是docs,我想扩展的是$document_name. 当我输入$do<tab>时,shell 确实扩展了我输入的内容,$document_name但由于某种原因,我再次输入<tab>了第二次,这时扩展的文本变为$docs:.

我进一步探索并发现我的每个 PSDrives 都存在这种类型的变量,或者至少选项卡扩展表明它确实存在。

更正式地说,对于每个 PSDrive PSD,选项卡扩展认为这$PSD:是一个有效的事情。

我的问题很简单:这些到底是什么?以下是我到目前为止所做的一些观察:

  • 这些名称以 为前缀$,因此它们看起来像 PS 变量。对于本次讨论的其余部分(以及在前面的讨论中),我将假设它们是变量并这样引用它们。
  • 尽管它们看起来是变量,但它们并没有Variable:像大多数变量一样在 PSDrive 中列出。这样,它的行为就像$env“变量”,也没有在Variable:. 我有一种感觉,如果我能找到关于 的文档$env,那么我也会理解这些对象。
  • 在某些方面,它们的行为类似于指向文件系统对象的指针。例如,如果有一个readme.txt包含文本“Hello, world!”的文件名。在名为 的 PSDrive 上code,则以下所有内容都是与 Powershell 的可能交互。

获取文件的内容。

只是为了证明上述结果的类型是String

尝试将其用作对 PSDrive 的引用对于许多操作都不起作用,例如cd

我可以继续,但我很难过。如果我通过$code:(或者$env:,就此而言)到Get-Member,我会收到一个错误消息Variable reference is not valid

那么到底什么是“变量”$env$<PSDrive>:(例如$code:)?它们是表达式吗?内置表达式?某种对象?谢谢你的帮助。

0 投票
1 回答
86 浏览

powershell - 重新启动后无法映射网络驱动器错误

我有两个 powershell 脚本,我需要在每个脚本中将一些信息写入日志文件。日志文件存储在网络共享上。在第一个脚本中,一切正常,信息被写入文件。之后,计算机重新启动并启动第二个脚本。现在,在第一个脚本中工作的相同代码会导致错误“无法映射网络驱动器”。请帮助我了解问题所在以及如何解决。

0 投票
2 回答
803 浏览

windows - 使用 PowerShell 创建虚拟驱动器

我正在尝试在 Windows 中创建一个 D: 驱动器,它使用 PowerShell 指向某个本地目录(例如 C:\DDrive)。

此代码运行良好:

但在 Windows 资源管理器中没有 D:-drive 可见。

如何正确使用该命令?另外:驱动器应该是永久性的,所以我尝试添加一个“-Persist”参数。但这会导致错误(“未知参数“-Persist”...”)。

0 投票
1 回答
651 浏览

c# - 如何从 System.IO.File 调用访问 PSDrive?

我正在编写 ac# cmdlet,它将文件从一个位置复制到另一个位置(类似于 rsync)。它甚至支持 ToSession 和 FromSession。

我希望它与使用文件系统提供程序的 PSDrives 一起使用,但它目前从 System.IO.File.GetAttributes("psdrive:\path") 引发错误

我真的很想在 PSDrive 上使用来自 System.IO 的调用。

像 copy-item 这样的东西是如何做到的?

我已经执行了从 c# 访问 PSDrives 的搜索,但没有返回任何结果。

这相当于我的代码

返回

0 投票
1 回答
1365 浏览

powershell - PowerShell 映射的网络驱动器在重启后不存在

我正在运行以映射网络驱动器的命令是:

New-PSDrive -Name "M" -PsProvider "FileSystem" -Root "\\domain.com\filepath" -Persist -Scope Global -Credential $userCredentials

该命令映射驱动器,关闭脚本后连接仍然存在,但重新启动驱动器后消失。我的印象是添加全局范围取代了对点源的需求,为了这个脚本,我不想这样做。

提前感谢您的建议/答案!

0 投票
1 回答
390 浏览

c# - 尝试使用在 Powershell 中使用 New-PSDrive 创建的路径时出现“URL 上的目录无效”

我编写了一个函数来获取身份验证令牌。我用过New-PSDrive,因为PathTooLongException被扔了。在测试路径是否存在时Write-Host $adal, (Test-Path $adal)返回。True但在LoadFrom(). 有人可以帮我摆脱错误吗?

代码:

例外:

0 投票
0 回答
89 浏览

powershell - 是否可以在 -Path 和 -DestinationPath 中使用 PSDrive 来使用 Compress-Archive?

我正在使用 PSDrive 进行压缩存档,但我遇到了这个错误:

PSDrive 代码和第 33 行和第 34 行的代码如下:

0 投票
0 回答
48 浏览

wpf - 如何在 powershell 中为变量创建自己的驱动程序

我想在自己的范围内为自己的变量创建驱动程序。
例如$myown:name = value

我试图用不同的值来做到这一点-Root

但是该驱动程序的工作方式类似于variable:.

如何为不像 psdrive 那样工作的变量创建variable:psdriver?

$variable:name并且$myown:name必须不同。

编辑1:

我想做的事

我将创建用于从.xaml加载WPF表单的模块。 并且所有具有属性的元素都必须导入到名为加载表单的新 PSDriver 中。
x:Name