Nachricht an mehrere PCs im Netzwerk senden
Hallo,
ich würde gerne eine Nachricht an mehrere PCs in unserem Netzwerk senden.
Und es soll so sein, dass ein Message-Fenster auf jedem Rechner erscheint, wie dieses hier:
Für einen User ist das kein Problem. Da habe ich es so gemacht:
Das funktioniert sehr gut.
Weiterhin habe ich es über eine Batch versucht (hier Nachricht an 2 User) wie folgt:
Diesen Code hatte ich im Internet gefunden.
Leider funktionierte das nicht.
Dann habe ich hier aus dem Forum einen Thread gefunden, in dem u.a. die folgende Lösung vorgeschlagen worden war:
Auch das funktionierte nicht.
Könnt Ihr mir helfen, eine solche Textnachricht - inkl. FENSTER - an mehrere User eines NW zu senden?
Danke und Grüße von
Yan
ich würde gerne eine Nachricht an mehrere PCs in unserem Netzwerk senden.
Und es soll so sein, dass ein Message-Fenster auf jedem Rechner erscheint, wie dieses hier:
Für einen User ist das kein Problem. Da habe ich es so gemacht:
msg Max-Maier /SERVER:10.20.3.22 "Hallo, das ist ein Test!"
Das funktioniert sehr gut.
Weiterhin habe ich es über eine Batch versucht (hier Nachricht an 2 User) wie folgt:
@echo off
:: Liste der Empfaenger:
set userlist=Max-Meier Katrin-Vogel
:: Hier die Nachricht eintragen:
set sMsgText=Hallo, das ist eine Test-Nachricht
echo on
for %%a in (%userlist%) do net send %%a %sMsgText%
@echo off
echo %0 beendet.
pause
Diesen Code hatte ich im Internet gefunden.
Leider funktionierte das nicht.
Dann habe ich hier aus dem Forum einen Thread gefunden, in dem u.a. die folgende Lösung vorgeschlagen worden war:
for %%i in (10.20.2.22 10.20.3.32) do msg * \\SERVER:%%i Hallo, das ist ein Test
Auch das funktionierte nicht.
Könnt Ihr mir helfen, eine solche Textnachricht - inkl. FENSTER - an mehrere User eines NW zu senden?
Danke und Grüße von
Yan
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 669511
Url: https://administrator.de/contentid/669511
Ausgedruckt am: 17.12.2024 um 05:12 Uhr
25 Kommentare
Neuester Kommentar
Naja, das was du willst und das was msg kann weicht ein wenig von einander ab.
Du willst einfach nur an USER schicken, MSG erwartet aber COMPUTERNAME( Parameter /server ) und den USER.
Wir brauchen also mehr Details zu deinem Ziel:
- Soll die Nachricht nur an bestimmte PC's oder alle gesendet werden?
- Soll die Nachricht an alle User oder nur an bestimmte geschickt werden?
Grüße
Du willst einfach nur an USER schicken, MSG erwartet aber COMPUTERNAME( Parameter /server ) und den USER.
Wir brauchen also mehr Details zu deinem Ziel:
- Soll die Nachricht nur an bestimmte PC's oder alle gesendet werden?
- Soll die Nachricht an alle User oder nur an bestimmte geschickt werden?
Grüße
Beim Servernamen bin ich aber noch nicht sicher, was ich da angeben soll.
Im Beispiel hier habe ich die IP eines Users eingetragen, was ja sicher nicht korrekt ist.
Im Beispiel hier habe ich die IP eines Users eingetragen, was ja sicher nicht korrekt ist.
Lesen UND verstehen heißt das Zauberwort!
/SERVER:Servername Server, mit dem die Verbindung hergestellt wird
(Standard ist der aktuelle Server).
Dieser Parameter wird verwendet, wenn Du Server angibst, von WELCHEM die Message gesendet werden soll.
Wenn Du die Message direkt vom File-Server (TCP/IP 10.10.102.1) sendest, brauchst Due den Parameter NICHT anzugeben.
Gruss Penny.
Es ist jetzt nicht genau dein Thema, ich habe mich bei uns über das Management auf die Powershell geschaltet und diesen Befehl ausgegeben. Vielleicht hilft es dir etwas
Invoke-Command -ScriptBlock {
$ComputerName = [System.Environment]::MachineName
$UserName = [System.Environment]::UserName
$CurrentTime = [System.DateTime]::Now.ToString("dd.MM.yyyy HH:mm:ss")
$message = "Ihr System wurde gehackt!`nComputername: $ComputerName`nBenutzername: $UserName`nAktuelle Uhrzeit: $CurrentTime"
msg * $message
}
Dabei ist die IP "10.20.3.22" die IP meines Rechners.
Du musst auch die IP des Rechners angeben, an dem der Benutzer sitzt ;)Das habe ich versucht mit meinem letzten Beitrag zu erklären
MSG funktioniert vereinfacht erklärt in zwei Stufen
1. Versand der Nachricht an den gewünscht Empfänger-PC (sogenannter SERVER, Relikt aus dem letzten Jahrtausend)
2. Der Empfänger-PC guckt für welchen der Benutzer ( an einem PC kann ja mehr als eine Person angemeldet sein)
die Nachricht ist, und öffnet bei deinem Treffer die GUI.
Guck also mal, was passiert wenn du die IP des EmpfängerUsers eingibst. Wenn keine Nachricht kommt, hast du vermutlich ein Berechtigungsproblem
Hey @Yan2021
probiers doch einfach selber mal aus ;) Und markier den Beitrag als Lösung, der die Lösung ist :D
probiers doch einfach selber mal aus ;) Und markier den Beitrag als Lösung, der die Lösung ist :D
Habs gerade nochmal gestestet. Funktioniert bei mir so wie es soll... Ich schicke eine Nachricht von meinem PC und bei Lieschen Müller am PC erscheint die Nachricht...
Was passiert genau wenn du folgenden Befehl von deinem PC eingibst:
Natürlich muss man deinen Loop danach nochmal entsprechend anpassen, aber im ersten Schritt geht es darum überhaupt eine Nachricht an einem anderen PC anzuzeigen, oder nicht?
Ein komplettes Powershell könnte später(!) wie folgt aussehen:
Was passiert genau wenn du folgenden Befehl von deinem PC eingibst:
msg DasTest /Server:IPVONDASTESTPC Test
Natürlich muss man deinen Loop danach nochmal entsprechend anpassen, aber im ersten Schritt geht es darum überhaupt eine Nachricht an einem anderen PC anzuzeigen, oder nicht?
Ein komplettes Powershell könnte später(!) wie folgt aussehen:
# IP-Liste und Benutzerliste definieren
$IPListe = @("192.168.1.1", "192.168.1.2", "192.168.1.3")
$BenutzerListe = @("Benutzer1", "Benutzer2", "Benutzer3")
# Alternativ:
#$IPList = Get-Content "IPList.txt"
#$UserList = Get-Content "UserList.txt"
# Äußere Schleife durch die IP-Liste
foreach ($IP in $IPListe) {
# Innere Schleife durch die Benutzerliste
foreach ($Benutzer in $BenutzerListe) {
# Nachricht senden
$Befehl = "msg $Benutzer /Server:$IP Test"
Write-Host "Führe aus: $Befehl"
Invoke-Expression $Befehl # Führt den Befehl aus
}
}
Also muss bei Server doch die Empfänger-IP rein... hmmm... ist für mich nicht logisch face-sad
Jap, hatte ja schon angedeutet, dass die Bezeichnung "Server" in diesem Fall aus dem letzten Jahrtausend stammt und so unter Windows heute nicht mehr verwendet werden würden. Das genauer zu erklären, würden den Rahmen sprengen, im Prinzip ist der PC der Server für den Benutzerdesktop... Falls du tiefer eintauchen willst, kannst du dir YT Video zur Funktionsweise von Desktops unter Linux erklären lassen... da taucht auch wieder Client und Server auf... aber vorsicht, ist echt harte Kost wenn man sonst eine andere Betrachtung auf "Server" gewohnt ist...Zu 1)
ja das geht
# IP-Liste und Benutzerliste definieren
$IPList = Get-Content "IPList.txt"
$UserList = Get-Content "UserList.txt"
# Nachricht aus einer Datei laden
$Nachricht = Get-Content "Message.txt"
# Äußere Schleife durch die IP-Liste
foreach ($IP in $IPListe) {
# Innere Schleife durch die Benutzerliste
foreach ($Benutzer in $BenutzerListe) {
# Nachricht senden
$Befehl = "msg $Benutzer /Server:$IP $Nachricht"
Write-Host "Führe aus: $Befehl"
Invoke-Expression $Befehl # Führt den Befehl aus
}
}
Zu 2) # solltest du nicht machen... Kommentare greifen da nicht und er wird versuchen eine Verbindung zu "#IP" herzustellen... Du könntest dir eine zweite Liste "UserList_original" anlegen und diese jedes mal kopieren und halt die Zeilen löschen, die du nicht brauchst.
Noch schicker wäre sicher eine GUI, aber das sprengt leider meine freiwillige Supportzeit :D
Grüße