Active Directory \ powiadomienia

Dostałem do rozpracowania następujący temat:

 

“Proszę o opracowanie systemu powiadomień, który będzie się wyświetlać w momencie ogłoszenia ewakuacji na monitorach pracowników zakładu.”

 

Pytanie do Was, czy macie jakieś pomysły, jak można by to rozwiązać w powiązaniu z Active Directory, które mamy w firmie? Może jakaś inna sugestia?

Na chwilę obecną nie mam żadnego pomysłu jak się za to zabrać.

 

Pamiętam z dawnych czasów, że w Novell miałem możliwość wysłania wiadomości do użytkowników z poziomu klienta, może jest taka możliwość też w AD.

Jakie masz systemy na końcówkach klienckich?

 

Można się pobawić z Usługą Posłaniec:)

 

Od Visty Business do W10. Wszystko w wersjach Pro.

 

MK

Co prawda nie jestem za bardzo doświadczony w AD i Windowsach od strony serwerowej, ale może pomocne okażą się pomysły tutaj zawarte:

To żeby tak łatwo nie było, musimy jeszcze wymyślić sposób, w jaki będziemy identyfikować osoby, które przebywają na terenie zakładu. Pracownicy są mobilni, mogą być w różnych lokalizacjach, a chcemy, żeby komunikat wyświetlał się tylko osobom, które są na terenie fabryki. W pierwszym rzucie pomyślałem o integracji z systemem kontroli dostępu, w naszym przypadku jest to AutoID postawiony na Win2000.

 

To coś czuję, że nie obejdzie się bez aplikacji lub skryptu (zapewne PowerShell). Są już w takim razie dwa źródła danych: AD skąd pobieramy użytkoników oraz AutoID skąd bierzemy pracowników, aktualnie znajdujących się w firmie.

Ale z drugiej strony istnieje jeszcze możliwość “spingowania” danego użytkownika, ewentualnie sprawdzenia czy użytkownik AD jest zalogowany na swoje konto lub czy jest online/offline. Podejrzewam, że AD ma tego typu możliwości, trzeba by poczytać. Z drugiej jednak strony problemy mogą być wtedy, gdy nieobecny pracownik pozostawi swój komputer nie wyłączony, w postaci zablokowanego systemu.

 

Tutaj przykładowo gość zrobił skrypt PowerShella z eksportem listy aktywnych użytkowników do pliku CSV (http://anandthearchitect.com/2012/03/29/powershell-list-active-computers-from-active-directory/).

 

– EDIT –

Znalazłem jeszcze kilka ciekawych linków:

 

  1. https://social.technet.microsoft.com/Forums/windowsserver/en-US/f4c9b958-ecee-4312-906e-f6af5b9ca7a0/need-to-find-active-machines-in-my-domain?forum=winserverDS

  2. http://blogs.technet.com/b/askds/archive/2010/02/04/inventorying-computers-with-ad-powershell.aspx

 

To dojdzie do tego zapewne też jakiś excel, bo np. ja jak i kilkadziesiąt innych osób wjeżdżam na teren zakładu, ale na chwilę obecną w żaden sposób nie potwierdzam tego w KD. Zapewne jestem odnotowywany w papierowej księdze wjazdów.

 

KD? To jest ten system kontroli dostępu jak rozumiem?

 

Hmm… patrząc przez pryzmat możliwości AD, raczej pominąłbym kwestię AutoID (w sensie KD). Raczej zebrałbym listę wszystkich użytkowników w domenie Active Directory, następnie przefiltrował i uzyskał listę tylko tych, którzy są zalogowani tudzież mają uruchomiony komputer, a następnie wysłał powiadomienie (np. z użyciem wymienionego wcześniej Msg.exe). Myślę, że można to zrobić z użyciem Power Shella albo innego języka skryptowego (np. Pythona).

Generalnie sieci mamy porozdzielane, więc sprawdzanie pewnego zakresu IP da mi odpowiedź o ludziach zalogowanych w konkretnej lokalizacji.

 

No to tym lepiej. W AD w sumie też chyba można porozdzielać użytkowników w zależności od lokalizacji (choćby poprzez grupy). Chyba zmierzamy ku rozwiązaniu problemu :stuck_out_tongue:

 

W AD będzie z tym ciężko, bo np ja mogę być w każdej lokalizacji. Mało jest pracowników (chyba tylko Ci pracujący na desktopach), którzy są przypisani do jednej lokalizacji. Większość ma laptopy i porusza się po kraju, bądź łączy się z firmą przez VPNy.

 

Z drugiej strony w każdej lokalizacji jest UTM, który przydziela IP wg wpisanych mu MAC, więc w każdej lokalizacji dostanę inny IP

Rozumiem. W takim razie algorytm omawianego skryptu należy rozbudować o filtrowanie w zakresie adresu IP:

 

  1. Pobranie użytkowników w domenie Active Directory wraz z podstawowymi informacjami (m. in. adres IP)

  2. Przefiltrowanie użytkowników pod kątem dostępności (np. zalogowania lub uruchomionego komputera), a następnie filtracja w oparciu o listę adresów IP przypisanych dla danej lokalizacji

  3. Wysłanie powiadomień z uzyskanej ostatecznie listy użytkowników.

 

 

Skoro masz podsieci względem budynków to wylistuj ip, połącz się z każdym i telnetem odpal im stosowny komunikat. Zakładając, że każdy klient jest konfigurowany przez ciebie - musisz im usługę włączyć.

ew https://technet.microsoft.com/en-us/magazine/gg413289.aspx

 

Mam podsieci do poszczególnych lokalizacji czyli miejsc typu fabryka, magazyn, biuro zarządu - wszystkie znajdują się w rożnych miastach.

Te podsieci mam jeszcze podzielone na : laptopy, telefony, drukarki itp.

 

Idea tego zgłoszenia jest taka, że ma to być obsługiwane przez człowieka od BHP, nie znającego się na IT, więc muszę dostarczyć rozwiązanie proste, w którym on tylko wpisze wiadomość i ją wyśle, całość procesu będzie dla niego niewidzialna a efektem końcowym będzie wyświetlenie informacji na monitorach osób będących w chwili wysyłania wiadomości na terenie jednej danej lokalizacji.

 

MK

 

W takim razie można mu zrobić prosty program, który “pod maską” będzie obsługiwał skrypt powershellowy posługujący się omawianymi przez nas wcześniej rzeczami :slight_smile:

Ewentualnie prostą webaplikację (np. w PHP) wywołującą lokalny skrypt, a tekst pobierający z formularza podanego na stronie.

Moim zdaniem to wyświetlanie komunikatu na ekranie komputera nie jest najlepszym i najpewniejszym sposobem powiadamiania uzytkowników o ewakuacji. Zwykle ewakuacje w fabrykach ogłasza sie z dosyć “dobrych” powodów, więc jeśli akurat zawiedzie sieć, BHPowiec zatrzasnie się w WC, albo wszyscy akurat będą na przerwie sniadaniowej, to będziecie czekać aż wrócą do stanowisk, a w międzyczasie trzmać kciuki, żeby nie zatruły ich na przykład opary z wycieku? :)