Невозможно создать постоянный подключенный сетевой диск, к которому можно получить доступ через File Explorer из команды хоста Powershell Invoke. - PullRequest
1 голос
/ 29 января 2020

Я пытался создать подключенный сетевой диск в моей виртуальной машине 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, выполняемого с хоста?

Буду очень признателен за помощь!

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...