PowerShell New-PSDrive согласованность - PullRequest
0 голосов
/ 21 октября 2018

Я создал скрипт, который запускается с локального компьютера и использует invoke-command для копирования файлов с хоста-1 на хост-2.

Соответствующая часть:

$session =New-PSSession -Computername $Thost -Credential $mycreds

Invoke-Command -Session $session -ScriptBlock  {
#seting a temp drive on Host for simple approch
Remove-PSDrive -Name w -Force
New-PSDrive -Name w -PSProvider FileSystem -Root $Using:VMPath -Credential $Using:mycreds -ErrorAction Stop
Write-Host "You Chose that $Using:OSVersion will be copyed to $Using:Thost"
Copy-Item -Path "w:\$Using:OSVersion" -Destination $using:VMXPath   -Recurse
Remove-PSDrive -Name w -Force -ErrorAction Stop
 }

в первый разЯ запускаю сценарий, он работает отлично! Первый запуск скрипта

во второй раз, когда говорится, что PSdrive не существует. Ошибка второго запуска в PowerShell

через 10 минут + - сценарий запускается снова без проблем

1 Ответ

0 голосов
/ 21 октября 2018

Я удивлен, что это проходит в первый раз.Похоже, что ошибка на начальном Remove-PSDrive.Не удается, потому что вы уже удалили диск w.

Примите одну из этих 2 моделей

Remove-PSDrive -Name w -ErrorAction SilentlyContinue
New-PSDrive -Name w -PSProvider FileSystem -Root c:\test
Remove-PSDrive -Name w -Force

ИЛИ

if (Test-Path -Path w:\){
   Remove-PSDrive -Name w -Force
 }
 New-PSDrive -Name w -PSProvider FileSystem -Root c:\test
 Remove-PSDrive -Name w -Force

Я бы пошел со вторымопция для предпочтения

...