Я пытался создать подключенный сетевой диск в моей виртуальной машине Windows 10 Hyper-V с помощью «Invoke-Command» с моего хоста.
PS C:\Users\YChan14\Desktop> $session = New-PSSession -VMName "Win10" -Credential $mycreds -Name "NetworkDriveMapping"
PS C:\Users\YChan14\Desktop> invoke-command -Session $session -ScriptBlock { param($myhostcreds) New-PSDrive -Name “Z” -PSProvider FileSystem -Root “\\SLB-GYFXMV2\SharingToVM” -Credential $myhostcreds -Persist -Scope Global} -ArgumentList $myhostcreds
Name Used (GB) Free (GB) Provider Root CurrentLocation PSComputerName
---- --------- --------- -------- ---- --------------- --------------
Z 355.84 118.47 \\SLB-GYFXMV2\SharingToVM Win10
PS C:\Users\YChan14\Desktop> invoke-command -Session $session -ScriptBlock { Get-PSDrive Z} -ArgumentList $mydrivecreds
Name Used (GB) Free (GB) Provider Root CurrentLocation PSComputerName
---- --------- --------- -------- ---- --------------- --------------
Z 355.70 118.62 \\SLB-GYFXMV2\SharingToVM Win10
, где $mycreds
- учетные данные для виртуальной машины, а $myhostcreds
- учетные данные для подключенного диска.
Как видите, я могу создать подключенный сетевой диск в сеансе и увидеть его:
PS C:\Users\YChan14\Desktop> Enter-PSSession -session $session
[Win10]: PS C:\Users\sdrwcs\Documents> Get-PSDrive Z
Name Used (GB) Free (GB) Provider Root CurrentLocation
---- --------- --------- -------- ---- ---------------
Z 355.85 118.47 FileSystem \\SLB-GYFXMV2\SharingToVM
Однако, если я go прямо в мою виртуальную машину и сделаю то же самое:
PS C:\Users\sdrwcs\Documents> Get-PSDrive Z
Get-PSDrive : Cannot find drive. A drive with the name 'Z' does not exist.
At line:1 char:1
+ Get-PSDrive Z
+ ~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Z:String) [Get-PSDrive], DriveNotFoundException
+ FullyQualifiedErrorId : GetLocationNoMatchingDrive,Microsoft.PowerShell.Commands.GetPSDriveCommand
Я не могу найти подключенный диск и ни в File Explorer.
После оценки документации Microsoft на New-PSDrive Я попытался поместить их в сценарий PS1 add-network-drive.ps1
и указать исходный код сценария:
$creds = "vmpwd"
$username = "sdrwcs"
$secpasswd = ConvertTo-SecureString $creds -AsPlainText -Force
$mycreds = New-Object System.Management.Automation.PSCredential ($username, $secpasswd)
$host_creds = "hostpwd"
$host_username = "YChan14"
$host_secpasswd = ConvertTo-SecureString $host_creds -AsPlainText -Force
$host_mycreds = New-Object System.Management.Automation.PSCredential ($host_username, $host_secpasswd)
$session = New-PSSession -VMName "Win10" -Credential $mycreds -Name "NetworkDriveMapping"
invoke-command -Session $session -ScriptBlock { param($host_mycreds) New-PSDrive -Name "Z" -PSProvider FileSystem -Root "\\SLB-GYFXMV2\SharingToVM" -Credential $host_mycreds -Scope Global -Persist} -ArgumentList $host_mycreds
PS C:\Users\YChan14\Desktop> . .\add-network-drive.ps1
Name Used (GB) Free (GB) Provider Root CurrentLocation PSComputerName
---- --------- --------- -------- ---- --------------- --------------
Z 354.95 119.37 \\SLB-GYFXMV2\SharingToVM Win10
Но я все еще не могу получить доступ к этому подключенному диску в моей виртуальной машине:
PS C:\Users\sdrwcs\Documents> Get-PSDrive Z
Get-PSDrive : Cannot find drive. A drive with the name 'Z' does not exist.
At line:1 char:1
+ Get-PSDrive Z
+ ~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Z:String) [Get-PSDrive], DriveNotFoundException
+ FullyQualifiedErrorId : GetLocationNoMatchingDrive,Microsoft.PowerShell.Commands.GetPSDriveCommand
Кто-нибудь имеет представление о том, как создать постоянный сопоставленный диск, к которому я могу получить доступ через файловый менеджер в виртуальной машине из сценария ps1, выполняемого с хоста?
Буду очень признателен за помощь!
Спасибо