Powershell Import Computer aus csv in array und Befehl abarbeiten
Hallo zusammen,
ich möchte gerne aus einer Liste von Computern mehrere Dinge überprüfen.
$Computername = "Computername"
if(Test-Connection -ComputerName $Computername)
{
if(Get-service -name "ACMP Client" -ErrorAction SilentlyContinue)
{ Stop-Service "ACMP Client"
(Get-Content -Path "\\$Computername\C$\Program Files (x86)\ACMPClient\Client.ini") |
ForEach-Object {$_ -Replace "SERVERNAME.domäne.intra", "ACMPSRV.domäne.intra"} |
Set-Content -Path "\\SERVERNAME\C$\Program Files (x86)\ACMPClient\Client.ini"
Start-Service "ACMP Client"
}
else
{Write-Output "$Computername" | Out-File C:\NoAcmp.csv}
}
else{ echo "Verbindung nicht möglich"}
So würde es nur für einen Computer funktionieren. Ich möchte mir aber immer je einen Rechner aus einer csv ziehen und dort diese Dinge überprüfen. Danach soll der PC aus der nächsten Zeile genommen und überprüft werden. Ich denke da an eine foreach Schleife oder einen Array.
Denke ich zu kompliziert oder habt Ihr eine Idee?
ich möchte gerne aus einer Liste von Computern mehrere Dinge überprüfen.
$Computername = "Computername"
if(Test-Connection -ComputerName $Computername)
{
if(Get-service -name "ACMP Client" -ErrorAction SilentlyContinue)
{ Stop-Service "ACMP Client"
(Get-Content -Path "\\$Computername\C$\Program Files (x86)\ACMPClient\Client.ini") |
ForEach-Object {$_ -Replace "SERVERNAME.domäne.intra", "ACMPSRV.domäne.intra"} |
Set-Content -Path "\\SERVERNAME\C$\Program Files (x86)\ACMPClient\Client.ini"
Start-Service "ACMP Client"
}
else
{Write-Output "$Computername" | Out-File C:\NoAcmp.csv}
}
else{ echo "Verbindung nicht möglich"}
So würde es nur für einen Computer funktionieren. Ich möchte mir aber immer je einen Rechner aus einer csv ziehen und dort diese Dinge überprüfen. Danach soll der PC aus der nächsten Zeile genommen und überprüft werden. Ich denke da an eine foreach Schleife oder einen Array.
Denke ich zu kompliziert oder habt Ihr eine Idee?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 327327
Url: https://administrator.de/contentid/327327
Ausgedruckt am: 22.11.2024 um 11:11 Uhr
4 Kommentare
Neuester Kommentar
Hallo @Robbi666,
bei einem Import-CSV wird bereits ein Array erzeugt.
Je nachdem wie deine CSV-Datei aussieht, etwas filtern und mit einem foreachdas durchlaufen, was Du realisieren möchtest.
Gruß, Sascha
bei einem Import-CSV wird bereits ein Array erzeugt.
Je nachdem wie deine CSV-Datei aussieht, etwas filtern und mit einem foreach
foreach ($was in $aus){
hier wirds gemacht
}
Gruß, Sascha
Hallo @Robbi666,
jetzt machst Du ja ein GC auf eine Textdatei, wolltest Du nicht eine .csv-Datei verwenden?
Hier ein Quick&Dirty Beispiel:
Die .csv-Datei, dort sind enthalten Computername und die IP-Adresse, die Werte sind mit KOMMA "," von einander getrennt.
Mit dem Modul Import-csv kannst Du deine Anfrage über Powershell realisieren.
Somit werden Dir aus der .csv-Datei nur die Computernamen ausgegeben, in die ForEach-Schleife % kannst Du dann noch einbauen was gemacht werden soll.
Gruß, Sascha
jetzt machst Du ja ein GC auf eine Textdatei, wolltest Du nicht eine .csv-Datei verwenden?
Hier ein Quick&Dirty Beispiel:
Die .csv-Datei, dort sind enthalten Computername und die IP-Adresse, die Werte sind mit KOMMA "," von einander getrennt.
Computername, IP-Adresse <= Header
Dieter0815, 192.168.1.11
Heidi4715, 192.168.1.12
Heidi4815, 192.168.1.13
Rambazamba, 192.168.1.14
Kalle, 192.168.1.15
Dieter0815, 192.168.1.11
Heidi4715, 192.168.1.12
Heidi4815, 192.168.1.13
Rambazamba, 192.168.1.14
Kalle, 192.168.1.15
Mit dem Modul Import-csv kannst Du deine Anfrage über Powershell realisieren.
Import-CSV C:\Scripts\import_pcs.csv | %{$_."Computername"}
Gruß, Sascha