
6741
14.02.2008, aktualisiert am 18.10.2012 um 18:35:23 Uhr
Client pingbar, tu das - in Schleife ( 300x )
Hallo,
ich glaube es ist einfach ...
PCName ( abc001 - abc300 )
wenn der PCName pingbar ist soll, eine Datei kopeirt werden.
Kleines Log ( Erfolgreich kopiert ), wenn der PCName nicht erreichbar ist, gehe zum nächsten ( pcName002. Auch wenn der PC nicht pingbar ist dann kurze Info in Log. Diese Schleife soll dann 300x laufen.
Somit kann ich ein Scritp laufen lassen welches nach Änderung immer die Datei kopiert. Dies soll nur nach aktivieren der Batch passieren.
Danke
kl Edit der PCName startet immer mit abc001 und sollte durch die Schleife auf abc300 hochgezählt werden.
ich glaube es ist einfach ...
PCName ( abc001 - abc300 )
wenn der PCName pingbar ist soll, eine Datei kopeirt werden.
Kleines Log ( Erfolgreich kopiert ), wenn der PCName nicht erreichbar ist, gehe zum nächsten ( pcName002. Auch wenn der PC nicht pingbar ist dann kurze Info in Log. Diese Schleife soll dann 300x laufen.
Somit kann ich ein Scritp laufen lassen welches nach Änderung immer die Datei kopiert. Dies soll nur nach aktivieren der Batch passieren.
Danke
kl Edit der PCName startet immer mit abc001 und sollte durch die Schleife auf abc300 hochgezählt werden.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 80763
Url: https://administrator.de/forum/client-pingbar-tu-das-in-schleife-300x-80763.html
Ausgedruckt am: 10.05.2025 um 19:05 Uhr
5 Kommentare
Neuester Kommentar
Kleine PowerShell-Lösung (ungetestet):
Hier erfährst du, was die Powershell ist:
PowerShell for Runaways - Part I
Ich würde dir aber empfehlen, alle Clientnamen in ein Textfile zu schreiben (eine Zeile pro Client) und dann mittels einer Foreach-Schleife das Textfile auslesen. Ist einfacher zu warten, wenn ein neuer Client hinzukommt, muss du nur den Clientnamen in das Textfile pasten und musst am Script selbst nichts ändern.
Edit:
Den Logfilepfad ganz oben musst du natürlich noch nach deinen Bedürfnissen anpassen. Ausserdem muss du <Quellpfad> und <Zielpfad> durch deine Angaben ersetzen (Angaben ohne < oder >)
# Log vorbereiten
$Logfile = C:\temp\Log.txt
"Erfolgreich kopiert auf den PCs 'abc...':" | out-file -filepath $Logfile -encoding default
# Do It!
for ($clientnummer=1; $clientnummer -le 300; $clientnummer++) {
ping "abc"$clientnummer -n 1 | out-null
$PingErgebnis = "$lastexitcode"
if ($PingErgebnis -eq "0") {
copy-item -path <Quellpfad> -destination <Zielpfad>
$clientnummer | out-file -filepath $Logfile -encoding default -append
}
}
Hier erfährst du, was die Powershell ist:
PowerShell for Runaways - Part I
Ich würde dir aber empfehlen, alle Clientnamen in ein Textfile zu schreiben (eine Zeile pro Client) und dann mittels einer Foreach-Schleife das Textfile auslesen. Ist einfacher zu warten, wenn ein neuer Client hinzukommt, muss du nur den Clientnamen in das Textfile pasten und musst am Script selbst nichts ändern.
Edit:
Den Logfilepfad ganz oben musst du natürlich noch nach deinen Bedürfnissen anpassen. Ausserdem muss du <Quellpfad> und <Zielpfad> durch deine Angaben ersetzen (Angaben ohne < oder >)
Die Lösung mit der Foreach-Schleife sähe dann in etwa so aus (ebenfalls ungetestet):
Die dazugehörige Liste ist ein Txt-File und sieht z.B. so aus:
Bitte beachte, dass bei beiden Lösungen das Logfile jedes Mal überschrieben wird.
# Log vorbereiten
$Logfile = C:\temp\Log.txt
$Clientliste = get-content -path "C:\temp\Clientliste.txt"
"Erfolgreich kopiert auf folgenden Clients:" | out-file -filepath $Logfile -encoding default
# Do It!
foreach ($client in $Clientliste) {
ping $client -n 1 | out-null
$PingErgebnis = "$lastexitcode"
if ($PingErgebnis -eq "0") {
copy-item -path <Quellpfad> -destination <Zielpfad>
$client | out-file -filepath $Logfile -encoding default -append
}
}
Die dazugehörige Liste ist ein Txt-File und sieht z.B. so aus:
client01
client02
client03
server02
.....
Bitte beachte, dass bei beiden Lösungen das Logfile jedes Mal überschrieben wird.