PowerShell无法在网络安装上创建文件夹


1

我用Letter Z创建了一个驱动器:并共享它,以便网络路径是: \\GOELA2682012SRV\srv2012r2

我现在想要使用PowerShell在那里创建一个文件夹。

这不起作用: New-Item -Path "\\GOELA2682012SRV\srv2012r2\Users\test" -ItemType Directory

虽然这确实有效: New-Item -Path "Z:\Users\test" -ItemType Directory

为什么?


是否 mkdir \\GOELA2682012SRV\srv2012r2\Users\test 在cmd.exe中工作?
grawity

是的,它是@grawity
PoTTii

预先做好 FileSystem:: 到UNC路径工作? FileSystem::\\GOELA2682012SRV\srv2012r2\Users\test
FastEthernet

那很有效,谢谢! @FastEthernet
PoTTii

Answers:


4

尝试预先 FileSystem:: 到UNC路径,它变成了 FileSystem::\\GOELA2682012SRV\srv2012r2\Users\test

当您通过UNC时,PowerShell的行为可能会有点滑稽   某些cmdlet的路径。 PowerShell不会将这些路径识别为   “扎根”因为他们不在PSDrive上;因此,无论提供者   与PowerShell相关联的当前位置将尝试   处理它们。例如:

Set-Location C:
Get-ChildItem -Path \\$env:COMPUTERNAME\c$

Set-Location HKLM:
Get-ChildItem -Path \\$env:COMPUTERNAME\c$

第一个命令工作正常(假设您启用了c $共享和   能够访问它),第二个命令给出“无法找到   路径“错误,因为注册管理机构提供商试图与UNC合作   路径而不是FileSystem提供程序。你可以解决这个问题   通过在UNC路径前添加“FileSystem ::”来解决这个问题   PowerShell使用该提供程序,无论您当前的位置如何。

PowerShell Gotcha:UNC路径和提供商


这很疯狂......为我工作。
Alex K

保存了我的生命 - 从SQL代理调用powershell脚本,后者又使用了导入的cmdlet。这是解决方案。
Nate Anderson
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.