2017-02-17 7 views
0

Ich habe das folgende Skript, das ich gegen mehrere Server ausführen möchtenPowershell-Befehl gegen mehrere Server

Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | 
    Select-Object DisplayName, DisplayVersion, Publisher | #InstallDate 
    Format-Table –AutoSize | 
    Out-File C:\Temp\InventoryTestScripts.txt 

Derzeit wird diese Ausgabe auf dem Server gespeichert wird es aus lief wird. Ich möchte diesen Befehl gegen 30 verschiedene Server ausführen und die Ausgabe von jedem Server in einer Datei gespeichert haben. Ich würde auch einen Weg brauchen, um anzuzeigen, welche Ergebnismenge von welchem ​​Server in der Datei kam.

+0

Werfen Sie einen Blick auf "Invoke-Command" ... Ich werde in Kürze eine vollständige Antwort geben. – JohnLBevan

+2

Suchen Sie Ihren Titel hier auf SO gibt dies zurück: http://StackOverflow.com/Questions/24009970/How-To-Run-Acommand-against-Multiple-Servers-Simultaneously-in-Powershell. Sollte ein Betrogener sein. Wahrscheinlich gibt es auch andere. – Matt

Antwort

0
[string[]]$servers = 'server1,server2,server3' -split ',' #put a list of servers into an array; you can get these however (typically read from a file; in this case splittling a comma separated string) 
$credential = Get-Credential #this will prompt you to enter your account credentials 
Invoke-Command -ComputerName $servers -Credential $credential -ScriptBlock { 
    Get-ItemProperty 'HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*' | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate 
} | Format-Table PSComputerName, DisplayName, DisplayVersion, Publisher, InstallDate 
+1

Vielen Dank! – Amicheals

Verwandte Themen