В приведенном ниже скрипте я вызываю командный файл, чтобы разбить зеркальное отображение между некоторыми БД.Пакетный файл имеет приглашение пользователя запустить сценарий, но сценарий PS запускается прямо за ним.Когда я вызываю командный файл прямо из консоли powershell, он работает нормально.Как я могу предотвратить перемещение скрипта за блок команд invoke до тех пор, пока пакетный файл не будет завершен?
$session = New-PSSession -computerName xssqlk02 -credential $cred
Invoke-Command -Session $session -Scriptblock {c:\MSSQL\DBMaintenance\Mirroring\SERVER_Remove_Mirroring.bat xssqlk02 ossqlk02}
Remove-PSSession $session
edit: я обрезал только ту часть кода, с которой у меня возникли проблемы.Когда он запускается из сценария ps, который я только что заметил (это был долгий день ....), я получаю следующую ошибку, и в этот момент она запускается через приглашение пользователя.
PS C: \ Users \ dans> C: \ Tools \ Scripts \ test5.ps1 Подкаталог или файл c: \ MSSQL \ DBMaintenance \ Mirroring \ Common уже существует.+ CategoryInfo: NotSpecified: (Подкаталог ... уже существует .:String) [], RemoteException + FullyQualifiedErrorId: NativeCommandError
Неверная спецификация диска Удалите зеркальное отображение для баз данных RCM между xssqlk02 и ossqlk02: Продолжить?да / нет 0 Скопированные файлы
Вот что получается, когда я просто запускаю пакетный файл прямо из консоли PS на локальном компьютере.
PS C: \ Documents and Settings \ DanS>c: \ MSSQL \ DBMaintenance \ Mirroring \ SERVER_Remove_Mirroring.bat xssqlk02 ossqlk02 Удалить зеркальное отображение для баз данных RCM между xssqlk02 и ossqlk02: продолжить?y / ny
Подкаталог или файл c: \ MSSQL \ DBMaintenance \ Mirroring \ Common уже существует.
\ OPFLSK02 \ SQLBackupsForTape \ DBMaintenance \ Mirroring \ Common \ DB_Create_Snapshots.bat \ OPFLSK02 \ SQLBackupsForTape \ DBMaintenance \ Mirroring \ Common \ DB_Force_Mirror_To_Principal.bat ....... 18 Скопированные файлы
Ошибка возникает из-за того, что в пакетном файле нет проверки на наличиекаталог уже существует.Как мне справиться с этим из командного блока invoke, чтобы позволить сценарию продолжить?На данный момент я не могу изменить сам пакетный файл.