Windows: saznajte tko je gdje prijavljen

Windows: saznajte tko je gdje prijavljen
- Joj, ništa mi ne ide, pomozite!
- Ne brini, sad ćemo sve srediti. Dajte ime svom računalu...
(klasici žanra od poziva do tehničke podrške)

Dobro je ako imate alat a la BgInfo ili vaši korisnici znaju za Windows+Pause/Break prečac i znaju kako ga pritisnuti. Postoje čak i rijetki primjerci koji su uspjeli naučiti ime svog automobila. Ali često, uz svoj glavni problem, pozivatelj ima i drugi problem: saznati ime/IP adresu računala. I često je potrebno puno više vremena za rješavanje ovog drugog problema nego prvog (a samo je trebalo promijeniti pozadinu ili vratiti prečac koji nedostaje :).
Ali puno je ljepše čuti nešto poput:
- Tatjana Sergejevna, ne brini, već se povezujem...


A za ovo vam ne treba puno.
Stručnjak za tehničku podršku treba samo zapamtiti nazive strojeva i zapamtiti tko radi za koje.
Prije nego što opišem rješenje koje trenutno koristimo, ukratko ću se osvrnuti na druge opcije kako bih ih mogao do kraja kritizirati i objasniti svoj izbor.

  1. BgInfo, Informacije o radnoj površini i slično. Ako ima puno novca, ima i plaćenih. Poanta je da se tehničke informacije prikazuju na radnoj površini: naziv stroja, IP adresa, prijava itd. U Desktop Info možete čak i nagurati grafikone performansi na pola zaslona.
    Ono što mi se ne sviđa je da za isti Bginfo, na primjer, korisnik mora minimizirati prozore da vidi potrebne podatke. Moji kolege i ja također smo više puta promatrali na BgInfo karakterističan artefakt, kada se novi tekst prikazuje povrh starog.
    Nekim korisnicima smeta što administratori na licu mačke ispružene na desktopu iscrtavaju zastrašujuću 192.168.0.123, kvareći estetiku pozadinske slike, a to je, naravno, užasno demotivirajuće i potpuno ubija radni duh. .
  2. Etiketa a la "Tko sam ja" (ne pokušavajte joj dodati upitnik na kraju :). Klasični prečac na radnoj površini iza kojeg se krije zgodna ili ne tako zgodna skripta koja u obliku dijaloškog okvira prikazuje potrebne informacije. Ponekad, umjesto prečaca, stave samu skriptu na radnu površinu, što je IMHO loše ponašanje.
    Nedostatak je što za pokretanje prečaca, kao i u prvom slučaju, morate minimizirati sve otvorene prozore (ne uzimamo u obzir one miljenike sreće koji na svom radnom stroju imaju otvoren samo prozor pasijansa). Usput, znaju li vaši korisnici gdje kliknuti da minimiziraju sve prozore? Tako je, prst u oko adminu.

Kapica također sugerira da obje gore opisane metode imaju glavni nedostatak to što je korisnik uključen u dobivanje informacija, koji može biti slijep, glup ili čak lagati.
Neću razmatrati opciju povećanja računalne pismenosti, kada svi znaju gdje u Windowsima mogu potražiti naziv svog stroja: to je plemenit cilj, ali vrlo težak. A ako tvrtka ima fluktuaciju osoblja, onda je to potpuno propast. Što mogu reći, u većini slučajeva čak se i ne sjećaju svoje prijave.

Izlio sam dušu, a sad na stvar.
Ideja o stanovniku Khabrova uzeta je kao osnova srednji od ovaj članak.
Bit ideje je da kada se korisnik prijavi u Windows, skripta za prijavu unese potrebne informacije (vrijeme i naziv stroja) u određeni atribut korisničkog računa. A kada se odjavite iz sustava, izvršava se slična skripta za odjavu.

Sama ideja mi se svidjela, ali bilo je stvari s kojima nisam bio zadovoljan u realizaciji.

  1. Pravila grupe, koja određuju skripte za prijavu i odjavu za korisnike, primjenjuju se na cijelu domenu, tako da će se skripte izvoditi na bilo kojem računalu na koje se korisnici prijavljuju. Ako koristite terminalska rješenja zajedno s radnim stanicama (na primjer, Microsoft RDS ili Citrix proizvode), ovaj pristup će biti nezgodan.
  2. Podaci se unose u atribut Odjel korisničkog računa kojem prosječni korisnik ima pristup samo za čitanje. Osim atributa korisničkog računa, skripta mijenja i atribut odjela računa računala, koji prema zadanim postavkama korisnici također ne mogu mijenjati. Stoga, kako bi rješenje funkcioniralo, autor predlaže promjenu standarda sigurnosnih postavki za AD objekte.
  3. Format datuma ovisi o postavkama lokalizacije na ciljnom računalu, tako da s jednog stroja možemo dobiti 10. studenog 2018. 14:53, a s drugog 11/10/18 2:53

Da bi se ovi nedostaci uklonili, učinjeno je sljedeće.

  1. GPO nije povezan s domenom, već s OU-om sa strojevima (odvajam korisnike i strojeve u različite OU-ove i savjetujem drugima). Štoviše, za način obrade politike povratne petlje način je postavljen spojiti.
  2. Skripta će upisati podatke samo na korisnički račun u atributu Informacija, koje korisnik može samostalno mijenjati za svoj račun.
  3. Promijenjen je dio koda koji generira vrijednost atributa

Sada skripte izgledaju ovako:
SaveLogonInfoToAdUserAttrib.vbs

On Error Resume Next
Set wshShell = CreateObject("WScript.Shell")
strComputerName = wshShell.ExpandEnvironmentStrings("%COMPUTERNAME%")
Set adsinfo = CreateObject("ADSystemInfo")
Set oUser = GetObject("LDAP://" & adsinfo.UserName)
strMonth = Month(Now())
If Len(strMonth) < 2 then
  strMonth = "0" & strMonth
End If
strDay = Day(Now())
If Len(strDay) < 2 then
  strDay = "0" & strDay
End If
strTime = FormatDateTime(Now(),vbLongTime)
If Len(strTime) < 8 then
  strTime = "0" & strTime
End If
strTimeStamp = Year(Now()) & "/" & strMonth & "/" & strDay & " " & strTime
oUser.put "info", strTimeStamp & " <logon>" & " @ " & strComputerName
oUser.Setinfo

SaveLogoffInfoToAdUserAttrib.vbs

On Error Resume Next
Set wshShell = CreateObject("WScript.Shell")
strComputerName = wshShell.ExpandEnvironmentStrings("%COMPUTERNAME%")
Set adsinfo = CreateObject("ADSystemInfo")
Set oUser = GetObject("LDAP://" & adsinfo.UserName)
strMonth = Month(Now())
If Len(strMonth) < 2 then
  strMonth = "0" & strMonth
End If
strDay = Day(Now())
If Len(strDay) < 2 then
  strDay = "0" & strDay
End If
strTime = FormatDateTime(Now(),vbLongTime)
If Len(strTime) < 8 then
  strTime = "0" & strTime
End If
strTimeStamp = Year(Now()) & "/" & strMonth & "/" & strDay & " " & strTime
oUser.put "info", strTimeStamp & " <logoff>" & " @ " & strComputerName
oUser.Setinfo

Tko prvi pronađe sve razlike između Logon i Logoff skripte dobit će plus za karmu. 🙂
Također, za dobivanje vizualnih informacija, stvorena je sljedeća mala PS skripta:
Get-UsersByPCsInfo.ps1

$OU = "OU=MyUsers,DC=mydomain,DC=com"
Get-ADUser -SearchBase $OU -Properties * -Filter * | Select-Object DisplayName, SamAccountName, info | Sort DisplayName | Out-GridView -Title "Информация по логонам" -Wait

Ukupno je sve konfigurirano jedan-dva-tri:

  1. kreirajte GPO s potrebnim postavkama i povežite ga s odjelom s radnim stanicama korisnika:
    Windows: saznajte tko je gdje prijavljen
  2. idemo na čaj (ako AD ima veliki broj korisnika, onda treba puno čaja :)
  3. pokrenite PS skriptu i dobijte rezultat:
    Windows: saznajte tko je gdje prijavljen
    Na vrhu prozora nalazi se prikladan filtar u kojem možete odabrati podatke na temelju vrijednosti jednog ili više polja. Klikom na stupce tablice zapisi se sortiraju prema vrijednostima odgovarajućih polja.

Svoje rješenje možemo lijepo “upakirati”.
Windows: saznajte tko je gdje prijavljen
Da bismo to učinili, dodat ćemo prečac za pokretanje skripte za stručnjake tehničke podrške, koji će imati nešto poput ovoga u polju "objekt":
powershell.exe -NoLogo -ExecutionPolicy Bypass -File "servershareScriptsGet-UsersByPCsInfo.ps1"

Ako ima puno zaposlenika tehničke podrške, možete distribuirati prečac koristeći NIJE VAŽNO.

Nekoliko završnih komentara.

  • Modul Active Directory za PowerShell mora biti instaliran na stroju s kojeg se pokreće PS skripta (da biste to učinili, samo dodajte AD alate za administraciju u Windows komponente).
  • Prema zadanim postavkama, korisnik ne može uređivati ​​većinu atributa svog računa. Imajte to na umu ako odlučite koristiti atribut koji nije Informacija.
  • Obavijestite sve uključene kolege koji atribut ćete koristiti. Na primjer, isti Informacija koristi se za interaktivno dodavanje bilješki u korisnički poštanski sandučić u administratorskoj ploči poslužitelja Exchange i netko ga može lako prebrisati ili se rastužiti kada vaša skripta prebriše podatke koje je dodao.
  • Ako imate više stranica aktivnog imenika, uzmite u obzir kašnjenja replikacije. Na primjer, ako želite dobiti ažurne informacije o korisnicima s AD stranice A i pokrenuti skriptu sa stroja s AD stranice B, možete učiniti sljedeće:
    Get-ADUser -Server DCfromSiteA -SearchBase $OU -Properties * -Filter * | Select-Object DisplayName, SamAccountName, info | Sort DisplayName | Out-GridView -Title "Информация по логонам" -Wait

    DCfromSiteA — naziv kontrolera domene stranice A (prema zadanim postavkama cmdlet Get-AdUser povezuje se s najbližim kontrolerom domene)

Windows: saznajte tko je gdje prijavljen

Izvor slike

Bio bih vam zahvalan ako biste mogli ispuniti kratku anketu u nastavku.

U anketi mogu sudjelovati samo registrirani korisnici. Prijaviti se, molim.

Što koristite?

  • bginfo, Desktop info itd. (besplatni softver)

  • plaćeni analozi bginfo

  • Učinit ću to kao u članku

  • nije relevantno, jer Koristim VDI/RDS itd.

  • Još ništa ne koristim, ali razmišljam o tome

  • Ne trebam prikupljati takve podatke

  • ostalo (podijelite u komentarima)

Glasovalo je 112 korisnika. Suzdržano je bilo 39 korisnika.

Izvor: www.habr.com

Dodajte komentar