在 PowerShell 中訪問已映射的網路驅動器
我正在 VMWare Workstation 中執行 Windows Server 2012 安裝。我啟用了共享文件夾,因此驅動器
Z:
映射到\\vmware-host
. 我可以在資源管理器中正確訪問此驅動器(我可以Z:
在“正常”`cmd 中訪問)並且可以正確打開文件。我打開 PowerShell 並嘗試這樣做
cd Z:
,但出現以下錯誤:cd : 找不到路徑’Z:',因為它不存在。
為什麼 PowerShell 找不到已經映射的網路驅動器?
我用Google搜尋了一下,找到了
New-PSDrive
命令。我執行了以下內容:New-PSDrive -Name 'Z' -PSProvider FileSystem -Root 'Z:\'
但我仍然得到與上面相同的錯誤。我需要做什麼才能訪問 PowerShell 中的 VMWare 共享文件夾。
您需要使您正在執行的使用者可以使用驅動器映射
Powershell
。您可以執行以下操作來為該使用者提供相同的驅動器映射:net use Z: "\\vmware-host\Shared Folders"
請參閱以下 SO 問題:Cannot access network drive in PowerShell running as administrator
您是以管理員身份還是目前使用者身份啟動此 PowerShell 控制台?
如果您從非提升的命令提示符執行它,那麼它應該會看到所有本地映射的網路驅動器。我現在的情況和你一樣,並且已經
x:
映射到\\vmware-host\[folder]
,並且Get-PSDrive -PSProvider FileSystem
顯示了我所有本地映射的驅動器。但是,如果我以管理員身份啟動此控制台,它看不到我的任何本地映射驅動器,因為對於提升的命令提示符,使用不同的(第二個)安全上下文來載入不共享網路連接的應用程序。
好消息是您基本上只需要在管理員控制台中映射驅動器一次,它將保持在該安全上下文中(我認為直到重新啟動)。
如果要自動執行此操作,則應在啟動 powershell 會話時閱讀自動載入腳本。基本上,如果您在
My Documents
被呼叫的文件夾中創建一個文件夾,WindowsPowerShell
並在其中創建一個Microsoft.PowerShell_profile.ps1
文件,則每次啟動新的 powershell 控制台時都會觸發。您可以在此處添加net use
命令,或添加您編寫的要使用的自定義函式。例如,我有一個可以將管理控制台的游標變為紅色,並且有一個函式,我可以輕鬆呼叫它來簽署我的 PS1 腳本。