[英]Running bat file via powershell on multiple servers
我正在使用Powershell嘗試在多台服務器上遠程運行安裝腳本,但是有點卡住了。
以下是到目前為止的內容。 Computers.txt
包含我要在其上運行安裝的所有服務器的列表。 這些都位於同一域中。 然后,我將驅動器映射為瀏覽到腳本所在的共享,然后運行安裝腳本。
$computers = Get-Content -Path c:\temp\Computers.txt
New-PSDrive –Name “S” –PSProvider FileSystem –Root “\\dc1-app01\apps” –Persist
Start-Process -FilePath S:\createfile.bat
我希望我錯過很多時間才能正常工作嗎? bat文件本身非常復雜,因此目前我不想將其更改為powershell。
我運行的PC也是這些服務器上的受信任主機。
感謝您的輸入,我是一名Powershell新手
謝謝
我認為您錯過了貫穿服務器列表(數組)的循環:
$VerbosePreference = 'Continue'
$Computers = Get-Content -Path c:\temp\Computers.txt
Foreach ($C in $Computers) {
Write-Verbose "Start batch file as a job on $C"
Invoke-Command -ComputerName $C -ScriptBlock {
New-PSDrive –Name 'S' –PSProvider FileSystem –Root '\\dc1-app01\apps' –Persist
Start-Process -FilePath S:\createfile.bat -Wait
} -AsJob
}
Write-Verbose 'Waiting for all jobs to finish'
Wait-Job
Write-Verbose 'Showing job results:'
Get-Job | Receive-Job
我也把它做好了,因此您可以同時在多台服務器上運行它。
為了更簡化操作,您不必映射驅動器,只需在Invoke-Command
的ScriptBlock
中嘗試以下操作:
& '\\dc1-app01\apps\createfile.bat'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.