我在Windows 7 x64虚拟机中运行PowerShell。我在主机上有一个共享文件夹Map为网络驱动器(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
字符串
如何以管理员身份访问网络驱动器?
8条答案
按热度按时间pqwbnv8z1#
最后,修复方法只是在以管理员 * 身份运行时重新Map驱动器号 *:
字符串
它不必从同一个PowerShell示例(或从PowerShell)完成-它只是需要在整个登录会话中完成一次。
bvjveswy2#
在我的例子中,我能够简单地使用路径而不是驱动器Map,它工作得很好。
因此,根据您的示例,我没有使用Map驱动器Z:\,而是使用“\vmware-host\Shared Folder”作为路径。
68bkxrlz3#
另一个我花了很长时间才找到的解决方法是从一个计划任务作为NT权限\系统帐户运行
net use
。显然是drives mapped under this account show up for all users and all elevation levels。我已经测试过了,它甚至可以在NFS共享上工作(这可能有点挑剔)。只需创建一个在系统启动时运行的计划任务集,并指定常用命令:
字符串
也许用
/persistent:yes
只运行一次就可以了,但我还没有尝试过。当然,“再Map一次”也可以,但在不同的上下文中运行的计划任务仍然看不到该驱动器。缺点是所有真实的用户都可以看到它,所以对于多用户设置来说不太好。3npbholx4#
我使用以下黑客解决方案,当Powershell在提升模式下运行时,我在profile.ps1中重新创建“丢失”的PSDrives。
Gist
字符串
knpiaxh15#
如何Map一个新的psdrive来访问这些数据?当你在powershell中编写脚本或访问网络数据存储时,psdrive的工作效果即使不比系统Map驱动器好,也一样好。
有关使用New-PSDrive的说明,请参阅:Technet:New-PSDrive
如果你不想每次都要制作一个新的psdrive,你可以将它添加到管理员和你的用户帐户的配置文件中,它将在你每次打开powershell时自动可用。
~丹
rqenqsqc6#
这似乎是微软自Vista以来的一个已知问题。
Microsoft Knowled base article带有unsafe注册表修复。
我们目前正在评估这种方法,因为我们的一些人感觉机器可能无法启动;-)
kr98yfug7#
其他的答案都不适合我;但是@ martyleeRussell的answer为我指明了正确的方向。
在我的例子中,我有一个位于网络驱动器上的
.bat
文件,当我以管理员身份运行它时,它只会 Flink 命令提示符窗口并立即消失;当我从提升的命令提示符运行文件内容时,它工作得很好。最后我意识到我试着从Map的网络驱动器运行
.bat
文件。我改变了文件的执行以使用nextpath,它工作了。ix0qys7i8#
如果Powersheel作为管理员运行,我们可以从注册表中获取有关现有Map驱动器的信息,并通过在$PROFILE中包含以下内容在管理会话中重新创建它们。
字符串