Heute und in den nächsten zwei Tagen werde ich hier ein PowerShell-Script vorstellen, das es mir erlaubt, alle PCs in unserem Netzwerk per net send mit einer Nachricht zu versorgen, obwohl sich diese in unterschiedlichen Subnets befinden. Laut diesem Beitrag in der Microsoft Knowledge Base ist das nämlich weder mit net send * noch mit net send /domain:Domäne möglich: Der Windows Nachrichtendienst.
Fangen wir zunächst einmal damit an, einen Ping an die PCs abzusetzen, um zu kontrollieren, ob diese online sind. Dazu habe ich mir eine kleine Funktion geschrieben, die genau dies tut und außerdem prüft, ob der angepingte PC überhaupt zu unserem Netzwerk gehört (oder fälschlicherweise z.B. als Internetadresse aufgelöst wurde).
# Pings the given PC to find out whether it is online.
# Checks the IP address for the correct subnet.
function PingPC($pcname)
{
trap
{
write-host ($pcname + " threw an error: " + $_.exception.message) -foregroundcolor "red";
continue;
}
# change this value to your subnet
$subnet = "192.168.";
if ($pcname.trim -ne "")
{
$pingsender = new-object system.net.networkinformation.ping;
# timeout = 500ms
$ping = $pingsender.send($pcname, 500);
if ($ping.status -ne "Success")
{
write-host ($pcname + " does not respond to ping") -foregroundcolor "red";
return $false;
}
else
{
if (!$ping.address.tostring().startswith($subnet))
{
write-host ($pcname + " is not in subnet " + $subnet) -foregroundcolor "magenta";
return $false;
}
else
{
write-host ($pcname + " is online") -foregroundcolor "green";
return $true;
}
}
}
}
Morgen geht es dann weiter mit einer Funktion, die Informationen über PCs aus einer Textdatei ausliest und diese als anonyme Objekte bereitstellt.
Pingback:NetSendAll Teil 2: PowerShell-Funktion ReadTextFile » Stefan Macke
Pingback:PowerShell: Verfügbaren Hauptspeicher (RAM) für mehrere PCs ermitteln » Stefan Macke
Hello,
I’ve merged the 3 scripts but it do not works as I would like.
The script sends to 2 or 3 PCs and sudden I get a lit of error messages.
“Threw an error…..does not respond to ping”
All the PCs with this error are not on the Pcs.txt file.
Wht’s wrong ? Below the script I use.
Thank You and best regards
Take a look at the exception message the script prints out. That should give you a hint at what’s wrong.