NET SEND i MSG, czyli okienko z wiadomością dla użytkownika


 

Świat bitów i bajtów daje całe spektrum możliwości kontaktu w sieci komputerowej. Okienko z komunikatem zdecydowanie nie należy do nowoczesnych metod i raczej nie będzie dobrym sposobem na prowadzenie dialogu, ale w niektórych sytuacjach na pewno okaże się idealną metodą do przekazania wiadomości użytkownikom. Proste rozwiązania bywają nie raz najlepsze :)

W Windowsach sprzed Visty komunikaty z treścią wysyłaliśmy poleceniem NET SEND. W nowszych wersjach, czyli od Visty w górę, mamy programik o nazwie MSG, a NET SENT już nie występuje.

NET SEND

NET SENT opiera się na usłudze Messenger. Zablokowanie go, oznacza zablokowanie komunikatów, a przyda się zwłaszcza tam, gdzie użytkownicy traktują to jako metodę na zrobienie komuś żartu.

Jeśli chcemy na zdalnym komputerze uruchomić usługę Messenger, możemy użyć na przykład opisywanego przeze mnie psexec’a:

psexec.exe \\nazwa_komputera net start messenger

Oto, jak można wysłać prosty komunikat, dla wybranego użytkownika w domenie (jeśli użytkownik jest zalogowany w kilku miejscach na raz, to komunikat pojawi się tylko na jednej maszynie):

net send “Prosimy o pilny kontakt z Helpdeskiem pod nr 666. Helpdesk. ”

Aby wysłać komunikat dla wszystkich użytkowników na danej maszynie, czyli na przykład na Terminal Serwerze, na którym wykonujemy to polecenie należy użyć polecenia:

net send /users “Uwaga, ten serwer zostanie za chwile zrestartowany. Pozdrawiamy, Dzial IT.”

Możemy też wysłać komunikat na dany komputer nie wiedząc kto akurat jest tam zalogowany:

net send \\nazwa_komputera „Drogi uzytkowniku, zadzwon pod 667 w sprawie instalacji Office. Pozdrawiam Romek, dzial IT.”

Aby wysłać komunikat wszystkim użytkownikom w domenie:

net send /domain:nazwa_Twojej_domeny „Przypominamy o corocznym spotkaniu pracowników, ktore odbedzie sie za 5 minut w Sali 123.”

Możliwości NET SEND w tym miejscu wyczerpują się. W systemach Vista/7/8/Srv2008 i Windows Srv 2012 mamy znacznie więcej możliwości.

MSG

Do działania MSG, w kluczu HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server wartość AllowRemoteRPC musi wynosić 1

Prosta wiadomość dla danego loginu wygląda podobnie jak w NET SEND. Warto jednak zaznaczyć, że tym razem komunikat trafi na wszystkie sesje, a nie tylko jedną:

msg login_użytkownika Tu Krzysiek. Zatrzasnąłem się w serwerowni. Pomożesz?

Aby wysłać komunikat na dany komputer użyjemy:

msg * /server:nazwa_serwera Proszę na chwilę wyjść z aplikacji ABC.

Oczywiście, można dokładnie sprecyzować jednocześnie login i nazwę komputera:

msg nazwa_użytkownika /server:nazwa_serwera /time:300 Świetnie dziś wyglądasz…

Możemy wysłać też komunikat na dany numer sesji

msg 2 Zadzwoń do Darka jak skończysz.

Aby wysłać komunikat na wszystkie loginy z listy użyjemy:

msg @twoja_Lista.txt Proszę się natychmiast wylogować. Trwa restart serwerów.

Aby wysłać wiadomość z pliku (tresc.txt) do wszystkich sesji użytkownika piotr12:

msg piotr12 <tresc.txt

Aby wysłać wiadomość do wszystkich użytkowników na maszynie z której wysyłamy komunikat:

msg * Uwaga, wyłączenie prądu wystąpi zgodnie z planem za 15 minut!

Można też ustawić czas po jakim komunikat zniknie (w sekundach). Na przykład:

msg * /TIME:120 Idziemy na kawę?

Mam nadzieję, że ten artykuł posłuży dobrym celom i nikt nie oskarży mnie o podrzucanie głupich pomysłów na biurowe żarty:) Tak czy siak, swoimi doświadczeniami z wysyłaniem komunikatów możecie podzielić się w komentarzach.


Podobne Tematy:

  • A co powiecie na automatyczną wiadomość out-of-office w Outlooku „Twój komputer ma problem z dostarczeniem wiadomości. Aby przywrócić funkcję wysyłania wiadomości uruchom ponownie komputer i wyślij wiadomość.” Zabawne, ile ja wiadomości dostawałam następnego dnia. :-)

  • Nie wpadłbym na tak okrutny żart, ale wierzę, że działa :) Za ten numer daję 5 pkt.

  • gajowy

    „…opiera się na serwisie Messenger”
    W polskiej wersji językowej chyba na usłudze. Niby drobiazg, ale precyzja na takim blogu byłaby wskazana.

    • Hej, dziękuję za komentarz. „serwis” jest bezpośrednim tłumaczeniem „service”, a także synonimem słowa „usługa”. Słowo „serwis” znajdziemy w wielu „profesjonalnych” instrukcjach i nawet na szkoleniach Microsoftu osoby prowadzące używają serwis/usługa na przemian :)

  • m4ko

    Kiedy próbuje wysłać wiadomość w sieci z domeną do komputera poleceniem
    C:\msg /server:domena\nazwa_komputera nazwa_użytkownika test
    wywala mi błąd następującej treści:
    Wystąpił błąd 1722 podczas uzyskiwania nazw sesji
    Dodam, że na komputerze do którego chce wysłać msg ustawiony jest dostęp RDP w rejestrze.
    Proszę o pomysły.

    • Jaką masz wersję systemu?

      Wspomniany błąd może dotyczyć np. firewall’a, który na stacjach docelowych blokuje RPC.

    • Wpisz nazwę serwera bez podawania domeny. Poza tym użytkownika podajemy PRZED serwerem, czyli jak w przykładzie:
      msg nazwa_użytkownika /server:nazwa_serwera wiadomość

  • m4ko

    System operacyjne na obu komputerach to Windows 7 Professional. Co do firewall’a, to mam go wyłączyć, czy może trzeba jakąś regułę utworzyć?

    • Tak, trzeba na zdalnej maszynie zezwolić na ruch po porcie 445. Reguła nazywa się „Allow Remote Administration Exception policy”.

      Najłatwiej:
      netsh firewall set portopening tcp 445 smb enable

  • MARK-62

    Witam,nie mogę wysłać wiadomości sieciowej błąd 1722 lub 5,zależy jak wpiszę.Oba systemy to win.7

    • Hej, napisz dokładnie jakiej składni używasz. Może z MSG.exe podajesz nazwę serwera z domeną? Spróbój bez domeny.

  • m4ko

    U mnie dzieje się to samo… Co jest nie tak?

  • marzena

    witam, probuje wyslac wiadomosc: msg komp01 prosze sie wylogowac
    i dostaje komunikat: komp01 nie istnieje lub jest odlaczony
    a wiem ze istnieje i jest zalaczony bo lacze sie z nim pulpite zdalnym..
    co robie zle?

  • A jak wysłać wiadomość z Win 8 na Win XP?

  • Anonim

    witam jak właśnie wysłać wiadomosc z win 8 na win xp ?

  • jak to zrobiłes ?

  • Rafał

    Witam,
    pracujemy w firmie w systemie terminalowym na Windows Server 2008 R2 Standard.
    Zdarza się że potrzebuję poinformować użytkowników aby zakończyli pracę ponieważ są prowadzone jakieś prace. Próbowałem używać komend „send net” ale doczytałem że w tej wersji to nie działa. Zacząłem więc męczyć msg, ale też nie działa. Albo odbija mi błąd 5 jeśli piszę na konkretnego użytkownika, albo informuje mnie, że dany komputer/ server nie istnieje. Co ciekawe kiedy zrobię test ping to pięknie wszystko wraca… AllowRemote ma wartość 1. Nie wiem już gdzie może być błąd.

    Czy mógłbym liczyć na jakąś podpowiedź?

    • Łukasz Skalikow

      Czy po zmianie klucza w rejestrze zrestartowałeś serwer?

    • Marcin

      Może wystarczy taskmgr jako admin i wyślij wiadomość.

  • Benko

    Hej, a mi nie wychodzi:
    Windows Server 2008 R2
    Wpisuje tak:
    psexec.exe msg potem nazwę użytkownika jaką mam w AD, potem nazwę serwera – próbowałem też jego adres IP potem time:300 no i tekst, wywala mi błąd: msg exited with error code 1
    Za wszelką pomoc dziękuje

    • Dariusz Góra

      Do MSG nie jest potrzebny psexec. Program sam wie jak się dostać do zdalnego komputera.

      • Benko

        Dzięki, rzeczywiście nie trzeba, tylko się zastanawiam dlaczego pojawia się komunikat: jan kowalski nie istnieje lub jest odłączony kiedy w AD dana osoba ma np. tak: Jan Kowalski to w skrócie się loguje na swoim komputerze jako jkowalski no i tą nazwę wpisuje a pojawia mi się błąd…
        jak wpisuję nazwę głównego admina na serwerze to komunikat dochodzi…kurcze…:(

        • Benko

          może, jest jakieś polecenie które sprawdza listę użytkowników?

        • Benko

          AllowRemote ma wartość 1.
          Gdzie to trzeba zmienić?

        • Benko

          sorry za bardzo chaotycznie robie…

        • Benko

          AllowRemote było ustawione na 1…choinka…

  • Anonim

    Jest może taka komenda która wyświetli listę użytkowników w sieci? Albo nazw komputerów?

  • Patriarcha

    Witam
    A w jaki sposób za pomoca msg wysłać wiadomość do komputerów w całej domenie, tak jak to było w NET SEND ?

    • Łukasz Skalikow

      Cześć,
      Możesz zapisać wszytskie nazwy komputerów w pliku txt i uruchomić MSG.exe z batcha z pętlą:
      FOR /F %%a IN (pcs.txt) DO msg * /server:%%a wiadomosc

  • KafeCraft

    Gdy włączam MSG wyłącza mi się po mniej więcej jednej setnej sekundy. Co robić?

    • Lrrr

      Wpisz w notatniku w jednej linii msg * /server:nazwa_serwera jakaś_wiadomość w drugiej PAUSE, zapisz jako plik.bat, odpal go, i na ekranie być może dojrzysz jakiś błąd, który zwraca msg.

  • lekarzpila

    Witam.
    Mam cały czas ten sam problem: „Wystąpił błąd 5 podczas uzyskiwania nazw sesji”
    Zmienilem w rejestrze wartosc na 1.
    Zapora wylaczona, antywirus tez, (nie mam domen) Sam do siebie moge wyslac komunikat:
    msg * /server:Pawel Test
    Działa.
    Próbowałem na innych kompach to samo. Probowalem na Windows XP net send – tam dziala ale tylko z kompami XP.
    Windows 7 wogole nie dziala poslaniec…
    Co moze byc nie tak?

    • Błąd numer 5 dotyczy uprawnień. Uruchom CMD jako administrator.

  • wojtess

    a jak sprawdzić nazwę bo dziala mi jak wysyłam do wszystkich „*” ale inaczej nie

  • scribe_pl

    czy MSG działa tylko na serwerze? np serwerze terminalowym.

    czy można wysłać w ramach domeny? tzn tylko na dany komputer?

    i czy klucz rejestru musi być na stacji nadającej? czy może na docelowej?

    • MSG może wysyłać wiadomości zarówno na serwery jak i PC.

      W ramach domeny, czyli na przykład na wszystkie komputery? Oczywiście da się, jak w batchu użyjesz pętli FOR i wyszukasz wszystkie komputery w domenie np DSQUERY. Zachęcam do eksperymentowania.

      Klucz rejestru dotyczy stacji docelowej.

      • MIchał

        Witaj, nie bardzo rozumiem, ” Windows serwer R2 w domenie kilkadziesiąt stacji jak korzystając z MSG wysłać natychmiast jedną wiadomość do wszystkich, z góry THX, Michał