在下面的腳本中,我調用了一個批處理文件來中斷某些dbs之間的鏡像。該批處理文件有一個用戶提示符來啓動腳本,但PS腳本正好趕上它。當我直接從powershell控制檯調用批處理文件時,它工作正常。我怎樣才能避免腳本移過調用命令塊直到批處理文件完成?批處理文件有錯誤,從Powershell腳本調用時不允許批處理文件完成
$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
編輯:我修剪了我有問題的部分代碼。當它從ps腳本運行時,我只注意到(這是一個漫長的一天......)我收到以下錯誤,並在那時通過用戶提示符運行。
PS C:\ Users \ dans> C:\ Tools \ Scripts \ test5.ps1 子目錄或文件c:\ MSSQL \ DBMaintenance \ Mirroring \ Common已存在。 + CategoryInfo:NotSpecified:(A子目錄...已經exists.:String)[],的RemoteException + FullyQualifiedErrorId:NativeCommandError
無效驅動器規格 刪除鏡像xssqlk02和ossqlk02之間RCM數據庫:繼續? y/n 0複製的文件
以下是當我直接從本地計算機上的PS控制檯運行批處理文件時的輸出結果。
PS:C:\ Documents and Settings \ DanS> c:\ MSSQL \ DBMaintenance \ Mirroring \ SERVER_Remove_Mirroring.bat xssqlk02 ossqlk02 刪除xssqlk02和ossqlk02之間的RCM數據庫的鏡像:繼續? y/n y
子目錄或文件c:\ MSSQL \ DBMaintenance \ Mirroring \ Common已存在。
\ OPFLSK02 \ SQLBackupsForTape \ DBMaintenance \鏡像\共同\ DB_Create_Snapshots.bat \ OPFLSK02 \ SQLBackupsForTape \ DBMaintenance \鏡像\共同\ DB_Force_Mirror_To_Principal.bat ....... 18文件(多個)複製
發生錯誤的原因是批處理文件沒有檢查目錄是否已經存在。我如何處理這個來自invoke命令塊的腳本以允許腳本繼續?目前我無法更改批處理文件本身。
與bat文件的所有者合作後,我們解決了多個問題,最終我們能夠從遠程上下文中引發雙跳問題。然後,我可以參與George的代碼:Start-Process -FilePath「C:\ MSSQL \ DBMaintenance \ Mirroring \ SERVER_Remove_Mirroring.bat」-ArgumentList「xssqlk02」,「ossqlk02」 - 等待並利用它。 – 2010-10-13 23:34:51