Powershell-skript

Computer Forum

Zurück   Computer Forum - PC Forum - ModernBoard.de > Computerprobleme > Webmaster Hilfe / Programmierer Forum

Sie betrachten gerade: Powershell-skript


Antwort
Alt 20.07.2009, 11:19 Powershell-skript #1
Erfahrener Benutzer
 
Registriert seit: 10.07.2008
Ort: Meerbusch
Beiträge: 449
Standard Powershell-skript

Hallo Liebe Community

ich habe eine frage zu einem Skript. Ich habe es im Internet gefunden und zu meinen Ansprüchen hin geändert. Allerdings funktioniert es nicht so wie es soll. Normalerweise sollen alle PC, die in der .txt-file gespeichert sind abgefragt werden und dann soll Powershell sagen, ja es geht oder nein es geht nicht. Allerdings geht so wie es jetzt ist jeder PC, auch die die aus sind.

Hier ist mein Skript:
Code:
# Variablen 
$serverliste = get-content "c:\ping\serverliste.txt" 
$datum = get-date -format d 
$zeit = get-date -format t 
$user = $env:Username 
$logfile = "c:\ping\temp\servercheck.txt" 
$tmpfolder = "c:\ping\temp" 

# Temp-Ordner leeren
$tmpfolder2 = $tmpfolder + "\*.*" 
remove-item -path $tmpfolder2 -force 

# Logfile vorbereiten 
"=================================================" | out-file -filepath $logfile -encoding default -append 
" " | out-file -filepath $logfile -encoding default -append 
" Server Ping Protokoll " | out-file -filepath $logfile -encoding default -append 
" " | out-file -filepath $logfile -encoding default -append 
"=================================================" | out-file -filepath $logfile -encoding default -append 
" " | out-file -filepath $logfile -encoding default -append 
"Startdatum" | out-file -filepath $logfile -encoding default -append 
"am: " + $datum + " um: " + $zeit | out-file -filepath $logfile -encoding default -append 
" "| out-file -filepath $logfile -encoding default -append
"von: " + $user | out-file -filepath $logfile -encoding default -append 
" " | out-file -filepath $logfile -encoding default -append 

"=========================================================" | out-file -filepath $logfile -encoding default -append 
" " | out-file -filepath $logfile -encoding default -append 
" " | out-file -filepath $logfile -encoding default -append 
"Anpingen der Server:" | out-file -filepath $logfile -encoding default -append 
" " | out-file -filepath $logfile -encoding default -append 

# Server pingen 
foreach ($server in $serverliste){ 
ping $server -n 2 | out-null 
$PingErgebnisServer = "$lastexitcode" 
if ($PingErgebnisServer -eq "0") { 
$tmp =$server + " ok" 
$tmp | out-file -filepath $logfile -encoding default -append
$tmp | Sort-Object $server

} else { 
$tmp = $server + " ist nicht ereichbar! " 
$tmp | out-file -filepath $logfile -encoding default -append 
$tmp | Sort-Object $server 

} 
}
weiß jemand wodran es liegt, dass jeder PC als ok angezeigt wird, obwohl dieser aus ist?

Alt 20.07.2009, 14:25 Powershell-skript #2
C8H10N4O2 - Geniesser
 
Benutzerbild von xandros
 
Registriert seit: 05.07.2007
Ort: Nordamerika, CA, NB
Beiträge: 18.694
xandros eine Nachricht über MSN schicken xandros eine Nachricht über Yahoo! schicken xandros eine Nachricht über Skype™ schicken
Standard

Füge in deine Serverliste mal eine IP ein, die nicht exisitiert. Wird dann auch "OK" ausgegeben?
In dem Fall schau mal auf den jeweiligen Rechnern nach, ob dort evtl. WOL für die Netzwerkkarten aktiviert ist. Dann geben die Dinger nämlich auch dann Antwort, wenn der Rechner nicht eingeschaltet ist.... (die Karten warten dann nur auf ein bestimmtes Magic-Packet, damit der Rechner gestartet wird.)
Alt 20.07.2009, 14:32 Powershell-skript #3
Erfahrener Benutzer
Themenstarter
 
Registriert seit: 10.07.2008
Ort: Meerbusch
Beiträge: 449
Standard

ich habe gerade eine IP mal eingefügt, die per cmd nicht anpingbar ist und die auch nicht zu gewiesen ist. Nur leider sagt mir das Skript, dass diese Adresse vorhanden ist und auch ereichbar.
Alt 20.07.2009, 15:07 Powershell-skript #4
C8H10N4O2 - Geniesser
 
Benutzerbild von xandros
 
Registriert seit: 05.07.2007
Ort: Nordamerika, CA, NB
Beiträge: 18.694
xandros eine Nachricht über MSN schicken xandros eine Nachricht über Yahoo! schicken xandros eine Nachricht über Skype™ schicken
Standard

Sehr merkwürdig....
Hab das script mal eben selbst getestet

Zitat:
192.168.1.1 ok
192.168.1.2 ok
192.168.2.1 ok
192.168.2.2 ist nicht ereichbar!
192.168.2.250 ok
192.168.3.1 ok
192.168.3.10 ok
192.168.3.20 ok
192.168.3.30 ok
Die 2.2 ist eine virtuelle Maschine auf dem ESX-Server, die zur Zeit gestoppt ist.
Die 3.30 existiert zwar, ist aber nicht eingeschaltet und auch nicht am Netzwerk angeschlossen....... Hier wird also irgendwas falsch ausgewertet.
Alt 20.07.2009, 15:37 Powershell-skript #5
Erfahrener Benutzer
Themenstarter
 
Registriert seit: 10.07.2008
Ort: Meerbusch
Beiträge: 449
Standard

ja das is echt voll merkwürdig das skript. bei anderen soll es aber laut deren aussage funktionieren.
Alt 20.07.2009, 15:45 Powershell-skript #6
Erfahrener Benutzer
Themenstarter
 
Registriert seit: 10.07.2008
Ort: Meerbusch
Beiträge: 449
Standard

Das kommt als Antwort aus dem Skript:



Ping wird ausgefhrt fr 192.168.0.240 mit 32 Bytes Daten:

Antwort von 192.168.0.64: Zielhost nicht erreichbar.

Antwort von 192.168.0.64: Zielhost nicht erreichbar.



Ping-Statistik fr 192.168.0.240:

Pakete: Gesendet = 2, Empfangen = 2, Verloren = 0 (0% Verlust),





Hab es jetzt mal mit einer Adresse getestet, die noch nie im Netzwerk vergeben war. Da funktioniert es. So wie es aussieht, liegt es daran, dass die Adressen evtl schonmal vergeben wurden.
Aber wie kann ich die Auswertung anpassen?
Alt 20.07.2009, 15:49 Powershell-skript #7
C8H10N4O2 - Geniesser
 
Benutzerbild von xandros
 
Registriert seit: 05.07.2007
Ort: Nordamerika, CA, NB
Beiträge: 18.694
xandros eine Nachricht über MSN schicken xandros eine Nachricht über Yahoo! schicken xandros eine Nachricht über Skype™ schicken
Standard

Hab bei mir den Fehler gefunden.
Bei mir liefert auch meine Firewall "Zielhost nicht erreichbar" zurück, was mit einem ExitCode = "0" gleichbedeutend ist....

Ping ist in diesem Zusammenhang also unzuverlässig auszuwerten.
Es ist wohl sinnvoller, an dieser Stelle auf den Win32_PingStatus zurückzugreifen.
Der liefert verschiedene Statuscodes zurück.
0 = Erfolgreich
11010 = Request Timed Out (keine Antwort innerhalb der erwarteten Zeit=nicht erreichbar)

Versuch mal folgenden Code für deine ForEach-Schleife:
Code:
foreach ($server in $serverliste){
$address = "Address='"+$server+"'"
get-wmiobject -class Win32_PingStatus -Filter $address|select-object -Property Address,ResponseTime,StatusCode|out-file -filepath $logfile -encoding default -append
}
Alt 20.07.2009, 15:56 Powershell-skript #8
Erfahrener Benutzer
Themenstarter
 
Registriert seit: 10.07.2008
Ort: Meerbusch
Beiträge: 449
Standard

danke für die Hilfe, aber bei mir funktioniert es nicht. Oder muss ich zusätzlich noch etwas ändern?
Mein Skript sieht jetzt so aus:


Code:
# Variablen 
$serverliste = get-content "c:\ping\serverliste.txt" 
$datum = get-date -format d 
$zeit = get-date -format t 
$user = $env:Username 
$logfile = "c:\ping\temp\servercheck.txt" 
$tmpfolder = "c:\ping\temp" 

# Temp-Ordner leeren
$tmpfolder2 = $tmpfolder + "\*.*" 
remove-item -path $tmpfolder2 -force 

# Logfile vorbereiten 
"=================================================" | out-file -filepath $logfile -encoding default -append 
" " | out-file -filepath $logfile -encoding default -append 
" Server Ping Protokoll " | out-file -filepath $logfile -encoding default -append 
" " | out-file -filepath $logfile -encoding default -append 
"=================================================" | out-file -filepath $logfile -encoding default -append 
" " | out-file -filepath $logfile -encoding default -append 
"Startdatum" | out-file -filepath $logfile -encoding default -append 
"am: " + $datum + " um: " + $zeit | out-file -filepath $logfile -encoding default -append 
" "| out-file -filepath $logfile -encoding default -append
"von: " + $user | out-file -filepath $logfile -encoding default -append 
" " | out-file -filepath $logfile -encoding default -append 

"=========================================================" | out-file -filepath $logfile -encoding default -append 
" " | out-file -filepath $logfile -encoding default -append 
" " | out-file -filepath $logfile -encoding default -append 
"Anpingen der Server:" | out-file -filepath $logfile -encoding default -append 
" " | out-file -filepath $logfile -encoding default -append 

# Server pingen 
foreach ($server in $serverliste){
$address = "Address='"+$server+"'"
get-wmiobject -class Win32_PingStatus -Filter $address|select-object -Property Address,ResponseTime,StatusCode|out-file -filepath $logfile -encoding default -append

if ($PingErgebnisServer -eq "0") { 
$tmp =$server + " ok" 
$tmp | out-file -filepath $logfile -encoding default -append
$tmp | Sort-Object $server

} else { 
$tmp = $server + " ist nicht ereichbar! " 
$tmp | out-file -filepath $logfile -encoding default -append 
$tmp | Sort-Object $server 

} 
}
Alt 20.07.2009, 15:58 Powershell-skript #9
C8H10N4O2 - Geniesser
 
Benutzerbild von xandros
 
Registriert seit: 05.07.2007
Ort: Nordamerika, CA, NB
Beiträge: 18.694
xandros eine Nachricht über MSN schicken xandros eine Nachricht über Yahoo! schicken xandros eine Nachricht über Skype™ schicken
Standard

Den kompletten IF-ELSE-Block kannst du in die Tonne kippen.
Die Ausgabe erfolgt direkt in das Logfile ohne Anzeige auf dem Screen.
Wenn du auch eine Ausgabe auf dem Display haben willst, dann füge vor der Zeile
get-wmiobject -class ...blabla
nochmals ein
get-wmiobject -class Win32_PingStatus -Filter $address|select-object -Property Address,ResponseTime,StatusCode
(ohne das letzte Piping!) ein. Dann siehst du auch die Ergebnisse auf dem Bildschirm.
Alt 20.07.2009, 16:00 Powershell-skript #10
Erfahrener Benutzer
Themenstarter
 
Registriert seit: 10.07.2008
Ort: Meerbusch
Beiträge: 449
Standard

danke, jetzt klappts.


Danke, danke, danke
Antwort

RB

Thema: Powershell-skript


Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Ähnliche Themen für: Powershell-skript
Thema Autor Forum Antworten Letzter Beitrag
Windows Skript Fehler
hi leute.... ich hab mir eben den neuen yahoo installiert und folgendes problem. also: ich starte den yahoo,will ein fenster zum gespräch öffnen...
xHondaWolfx Software Probleme 0 28.06.2009 20:02
News Skript für HP
Hey Leute, ich hab mal wieder ne frage^^ Also hab mir eine HP gebaut. Damit hab ich keine Probleme funzt alles. Jetzt möchte ich wissen, ob...
PhYro Webmaster Hilfe / Programmierer Forum 7 11.10.2007 21:37
Kalender Skript
Ich suche ein Kalender Skript und wollte mal nachfragen, ob jemand da etwas zu empfehlen wüsste. Ich hatte mir das so gedacht: In der Navi, oder...
Letavino Webmaster Hilfe / Programmierer Forum 3 02.04.2007 11:23
Downloadmanager oder Skript
Hallo, ich brauche einen Downloadmanager (für Win 2003 Server) der automatisch, mehrmals am Tag eine Datei (immer gleicher Name) von einer http...
symetrix Software Probleme 2 29.03.2007 10:04
Skript
Hallo, ich brauche eure Hilfe.. Ich brauch ein Skript, dass um 18 Uhr meine Website von schwarz auf weiß umschaltet. Kann mir jemand helfen? ...
Florian Webmaster Hilfe / Programmierer Forum 11 18.09.2006 17:31

Zurück   Computer Forum - PC Forum - ModernBoard.de > Computerprobleme > Webmaster Hilfe / Programmierer Forum

Besucher kamen mit folgenden Begriffen auf die Seite

powershell ping auswerten

,
powershell script get ausgeben
,
powershell alle server durchpingen
,
powershell log auswerten
,
powershell status fenster ausgeben
,
$lastexitcode
,
powershell compuer erreichbar
,
powershell erreichbarkeit pc
,
powershell computer erreichbar
,
powershell computer eingeschaltet
,
powershell eingeschaltete computer
,
powershell ping auswerten win32_pingstatus
,
powershell ping $LASTEXITCODE
,
powershell $Env:USERNAME aus pc liste
,
powershell filepath
,
format powershell ping
,
powershell ping server ergebnis erreichbare server
,
powershell exit code
Powered by vBadvanced CMPS v3.2.2


Sie betrachten gerade: Powershell-skript