我需要在300多個服務器中應用SQL Server修補程序,所以,我在下面創建了代碼並將其保存爲Apply_SQL_Patch.ps1。Powershell應用SQL修補程序多個服務器
我正在閱讀包含所有服務器名稱的txt文件,並且想要連接到它們,提取並應用修補程序。
的問題是,當我執行它,將它連接到服務器,但它不改變目錄到d:\ SOFTWARE \補丁,從而對未來行錯誤:
$output = foreach ($cluster in GC "D:\Software\Patch\Servers_List.txt")
{
Enter-PSSession -ComputerName $cluster
cd D:\Software\Patch\
.\SQLServer2014-KB4037356-x64.exe /X:D:\Software\Patch
.\setup.exe /action=patch /instancename=SQL2014 /quiet /IAcceptSQLServerLicenseTerms
}
$output | Out-File -Append D:\Software\Patch\Patch_Result.txt
錯誤如下:
\ SQLServer2014-KB4037356-x64.exe程序:術語 不被識別爲一個 cmdlet,函數的名稱,腳本文件或可操作的程序 '\ SQLServer2014-KB4037356-x64.exe程序。'。檢查名稱的拼寫 ,或者如果包含路徑,請確認路徑爲 正確,然後重試。在D:\ software \ patch \ Apply_SQL_Patch.ps1:5 char:2 +。\ SQLServer2014-KB4037356-x64.exe/X:D:\ Software \ Patch + ~~~~~~~~~~~ (。\ SQLServer2014-KB4037356-x64.exe:String)[], CommandNotFoundException + FullyQualifiedErrorId: CommandNotFoundException
。\ setup.exe:術語'。\ setup.exe'不被識別爲名稱爲 的cmdlet,函數,腳本文件或可操作程序。檢查名稱的拼寫,或者如果包含路徑,請確認路徑 是正確的,然後重試。在D:\ software \ patch \ Apply_SQL_Patch.ps1:7 char:2 +。\ setup.exe/action = patch/instancename = SQL2014/quiet/IAcceptSQLServerLicense ... + ~~~~~~~~~ ~~ + CategoryInfo:ObjectNotFound:(\ SETUP.EXE:字符串)[],CommandNotFoundException + FullyQualifiedErrorId:CommandNotFoundException
感謝您的幫助!
補丁300 + Sql Server實例肯定聽起來像你真的需要一個配置管理解決方案。話雖如此,你是否已將補丁文件複製到遠程服務器呢? – vonPryz
Hi @ vonPryz!感謝回覆!是的,補丁存在於名爲:( – AdemirP