无法访问以管理员身份运行的PowerShell中的网络驱动器

EMP*_*EMP 58 powershell uac unc

我在Windows 7 x64虚拟机中运行PowerShell.我在主机上有一个共享文件夹映射为网络驱动器(Z :).当我正常运行PS时,我可以正常访问该驱动器,但如果我以"管理员"的身份运行它,它会告诉我:

Set-Location : Cannot find drive. A drive with the name 'Z' does not exist.
At line:1 char:13
+ Set-Location <<<<  Z:
    + CategoryInfo          : ObjectNotFound: (Z:String) [Set-Location], DriveNotFoundException
    + FullyQualifiedErrorId : DriveNotFound,Microsoft.PowerShell.Commands.SetLocationCommand
Run Code Online (Sandbox Code Playgroud)

如何以管理员身份访问网络驱动器?

EMP*_*EMP 81

最后修复只是在以管理员身份运行时重新映射驱动器号:

net use Z: "\\vmware-host\Shared Folders"
Run Code Online (Sandbox Code Playgroud)

它不必从同一个PowerShell实例(或者完全来自PowerShell)完成 - 它只需要为整个登录会话完成一次.

  • 在不离开 shell 的情况下,一个方便的方法是使用 `runas`: `runas /user:administrator net use Z: "\\vmware-host\Shared Folders"` (2认同)
  • 为我工作。对于其他 ``net use`` 参数,例如 ``/persistent`` 在下次登录时,请查看 Microsoft net use [文档](http://technet.microsoft.com/en-us/library/gg651155(v=ws) .10).aspx) (2认同)

Tim*_*ell 9

在我的情况下,我能够简单地使用UNC路径而不是驱动器映射,它工作正常.

因此,根据您的示例,我只使用"\\ vmware-host\Shared Folder"作为路径,而不是使用映射驱动器Z:\.


Rom*_*kov 5

另外一个变通我花了年龄找到是运行net use从计划任务为NT AUTHORITY\SYSTEM帐户.显然,在此帐户下映射的驱动器显示所有用户和所有高程级别.

我已经测试了这个,它甚至可以在NFS共享上运行(这可能有点挑剔).只需创建一个在系统启动时运行的计划任务集,并指定常用命令:

net use Z: \\server\share /persistent:no
Run Code Online (Sandbox Code Playgroud)

它可能只运行一次/persistent:yes,但我没有尝试过.当然,"只是再次映射"也可以,但是在不同的上下文中运行的计划任务仍然无法看到该驱动器.缺点是所有真实用户都会看到它,因此多用户设置不太好.


tho*_*nch 0

如何映射一个新的psdrive来访问该数据当您在 powershell 中编写脚本或访问网络数据存储时,PSDrive 的工作效果与系统映射驱动器一样好,甚至更好。

使用New-PSDrive cmdlet 的说明如下: Technet:New-PSDrive

如果您不想每次都创建一个新的 psdrive,可以将其添加到管理员和用户帐户的配置文件中,并且每次打开 powershell 时它都会自动可用。

~丹