簡體   English   中英

通過Powershell在多個服務器上運行bat文件

[英]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-CommandScriptBlock中嘗試以下操作:

& '\\dc1-app01\apps\createfile.bat'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM