如标题所示,如果我尝试将-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中的管理员会话,但如果我在常规用户会话中执行此操作,则会得到完全相同的响应:
PS> $PSVersionTable.psversion
Major Minor Build Revision
----- ----- ----- --------
5 1 16299 666
从一开始:我验证要使用的驱动器号是否可用(在本例中为P)
PS> get-psdrive
Name Used (GB) Free (GB) Provider Root CurrentLocation
---- --------- --------- -------- ---- ---------------
Alias Alias
C 36.80 22.11 FileSystem C:\ windows\system32
Cert Certificate \
D FileSystem D:\
Env Environment
Function Function
HKCU Registry HKEY_CURRENT_USER
HKLM Registry HKEY_LOCAL_MACHINE ...ntrol\NetworkProvider\Order
Variable Variable
WSMan WSMan
然后我试着逃跑(我已经将$locale
定义为变量,例如'\\foo\bar\'
)。
New-PSDrive -PSProvider FileSystem -Name P -Root $locale -Scope global
Name Used (GB) Free (GB) Provider Root CurrentLocation
---- --------- --------- -------- ---- ---------------
P FileSystem \\foo\bar\
快乐的日子。这很有效。但是当然,它对Windows资源管理器是不可见的,因为它只在这个PS会话中。所以,我销毁它(remove-psdrive P
)并验证它是否消失(get-psdrive
),这里没有显示,然后尝试创建一个持久化版本(相同的命令,只是使用-persist
):
PS> New-PSDrive -PSProvider FileSystem -Name P -Root $locale -Scope global -Persist
New-PSDrive : The network resource type is not correct
At line:1 char:1
+ New-PSDrive -PSProvider FileSystem -Name P -Root $locale -Scope globa ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (P:PSDriveInfo) [New-PSDrive], Win32Exception
+ FullyQualifiedErrorId : CouldNotMapNetworkDrive,Microsoft.PowerShell.Commands.NewPSDriveCommand
对于上下文,我这样做是为了能够使用Robocopy和远程PSDrives编写脚本(我们希望使用Robocopy,因为它内置了报告、属性管理和维护目标位置文件结构的能力,我们希望使用PSDrives,以便能够为目标驱动器指定凭据)。
有人有什么想法吗?
- 编辑:**哦,天哪......我简直不敢相信......但是为了防止其他人发现这个问题,我打算离开它。问题是路径中的尾随
\
。我删除了它,它仍然很好。
- 编辑:**哦,天哪......我简直不敢相信......但是为了防止其他人发现这个问题,我打算离开它。问题是路径中的尾随
2条答案
按热度按时间sqyvllje1#
-Persist
也会在真正的错误条件下导致误导性的错误消息:Thanks,dgm。The network resource type is not correct
错误。The specified network resource or device is no longer available.
-Persist
,则错误消息更为合理:The specified drive root "\\foo\bar" either does not exist, or it is not a folder.
(尽管它没有指出两个错误条件中的哪一个适用)。\
指定驱动器根路径**,因为这样做会导致New-PSDrive
失败,并在使用-Persist
时显示模糊的错误消息New-PSDrive : The network resource type is not correct
:我已经报告了这个意外的行为on GitHub,并且PowerShell * Core * 的修复已经亮起绿灯,尽管还不清楚它将在未来的哪个版本中可用(从PowerShell Core 6.2.0-preview.1开始编写)。
ni65a41a2#
我正在尝试将WebDav文件夹连接为网络驱动器。如果没有参数-persist,它将正常工作。如果我添加"-persist",将出现错误"网络资源类型不正确"
工作:
不起作用:
我的PS版本: