Windows: saznajte ko je gdje prijavljen

Windows: saznajte ko je gdje prijavljen
- Oh, ništa mi ne pomaže, upomoć!
- Ne brini, sada ćemo sve srediti. Dajte ime svog kompjutera...
(klasika ž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čicu i znaju kako je pritisnuti. Postoje čak i rijetki primjerci koji su uspjeli naučiti ime svog automobila. Ali često pozivalac, pored svog glavnog problema, ima i drugi: saznanje imena/IP adrese računara. I često je potrebno mnogo više vremena za rješavanje ovog drugog problema nego prvog (a vi ste samo trebali promijeniti pozadinu ili vratiti prečicu koja nedostaje :).
Ali mnogo je ljepše čuti nešto poput:
- Tatjana Sergejevna, ne brinite, već se povezujem...


A za ovo vam ne treba mnogo.
Stručnjak za tehničku podršku treba samo da zapamti nazive mašina i zapamti ko za koje radi.
Prije nego što opišem rješenje koje trenutno koristimo, ukratko ću se osvrnuti na druge opcije kako bih ih do kraja kritizirao i objasnio svoj izbor.

  1. BgInfo, Desktop Info i slično. Ako ima puno novca, ima i plaćenih. Poenta je da se na radnoj površini prikazuju tehničke informacije: naziv mašine, IP adresa, prijava itd. U Desktop Info možete čak stisnuti grafikone performansi na pola ekrana.
    Ono što mi se ne sviđa je da za isti Bginfo, na primjer, korisnik treba da minimizira prozore da bi vidio potrebne podatke. Moje kolege i ja smo takođe posmatrali više puta na BgInfo karakterističan artefakt, kada se novi tekst prikaže na vrhu starog.
    Neke korisnike nervira činjenica da administratori crtaju zastrašujući 192.168.0.123 na licu mačke ispružene na radnoj površini, kvareći estetiku pozadinske slike, i, naravno, to je užasno demotivirajuće i potpuno ubija radni duh .
  2. Oznaka a la "Ko sam ja" (ne pokušavajte da joj dodate znak pitanja na kraju :). Klasična prečica na radnoj površini iza koje se krije uredna ili ne tako uredna skripta koja prikazuje potrebne informacije u obliku dijaloškog okvira. Ponekad, umjesto prečice, stavljaju samu skriptu na radnu površinu, što je IMHO loše ponašanje.
    Nedostatak je što za pokretanje prečice, kao u prvom slučaju, morate minimizirati sve otvorene prozore (ne uzimamo u obzir one ljubimce sreće koji imaju otvoren jedini prozor pasijansa na svojoj radnoj mašini). Usput, da li vaši korisnici znaju gdje kliknuti da bi minimizirali sve prozore? Tako je, prst u oko administratora.

Ograničenje također sugerira da obje gore opisane metode imaju glavni nedostatak što je korisnik uključen u dobivanje informacija, koji može biti slijep, glup ili čak lagati.
Neću razmatrati opciju povećanja kompjuterske pismenosti, kada svako zna gde u Windows-u da potraži ime svoje mašine: to je plemenit cilj, ali veoma težak. A ako kompanija ima fluktuaciju osoblja, onda je to potpuno propalo. Šta da kažem, u većini slučajeva se ni ne sjećaju svoje prijave.

Izlio sam svoju dušu, a sada na stvar.
Za osnovu je uzeta ideja o stanovniku Khabrova srednji из ovog člana.
Suština ideje je da kada se korisnik prijavi u Windows, skripta za prijavu unosi potrebne informacije (vrijeme i naziv mašine) u određeni atribut korisničkog naloga. A kada se odjavite sa sistema, izvršava se slična skripta za odjavu.

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

  1. Politika grupe, koja specificira skripte za prijavu i odjavu za korisnike, primjenjuje se na cijelu domenu, tako da će se skripte izvoditi na bilo kojoj mašini na koju se korisnici prijavljuju. Ako koristite terminalska rješenja zajedno sa radnim stanicama (na primjer, Microsoft RDS ili Citrix proizvodi), ovaj pristup će biti nezgodan.
  2. Podaci se unose u atribut odjela korisničkog računa, kojem prosječan korisnik ima pristup samo za čitanje. Osim atributa korisničkog naloga, skripta mijenja i atribut odjela računa računala, koji ni po defaultu korisnici ne mogu promijeniti. Stoga, da bi rješenje funkcioniralo, autor predlaže promjenu standarda sigurnosnih postavki za AD objekte.
  3. Format datuma zavisi od podešavanja lokalizacije na ciljnoj mašini, tako da sa jedne mašine možemo dobiti 10 2018:14, a sa druge 53 11:10

Da bi se ovi nedostaci otklonili, urađeno je sljedeće.

  1. GPO nije povezan sa domenom, već sa OU sa mašinama (odvajam korisnike i mašine u različite OU i savetujem druge). Štaviše, za način obrade politike povratne petlje mod je postavljen spojiti.
  2. Skripta će samo upisati podatke na korisnički nalog u atribut Informacije, koji korisnik može samostalno promijeniti za svoj račun.
  3. Promijenjen dio koda koji generiše 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

Ko prvi otkrije sve razlike između Logon i Logoff skripti dobiće plus za karmu. 🙂
Takođe, za dobijanje vizuelnih informacija, kreirana je sledeć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, sve je konfigurisano jedan-dva-tri:

  1. kreirajte GPO sa potrebnim postavkama i povežite ga sa odeljenjem sa korisničkim radnim stanicama:
    Windows: saznajte ko je gdje prijavljen
  2. idemo na čaj (ako AD ima veliki broj korisnika onda ti treba puno čaja :)
  3. pokrenite PS skriptu i dobijte rezultat:
    Windows: saznajte ko je gdje prijavljen
    Na vrhu prozora nalazi se zgodan filter u kojem možete odabrati podatke na osnovu vrijednosti jednog ili više polja. Klikom na kolone tabele sortira se zapise prema vrednostima odgovarajućih polja.

Možemo lijepo "upakirati" naše rješenje.
Windows: saznajte ko je gdje prijavljen
Da bismo to učinili, dodaćemo prečicu 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 zaposlenih u tehničkoj podršci, možete distribuirati prečicu koristeći NIJE VAŽNO.

Nekoliko završnih komentara.

  • Modul Active Directory za PowerShell mora biti instaliran na mašini sa koje se pokreće PS skripta (da biste to uradili, samo dodajte alate za administraciju AD u Windows komponente).
  • Podrazumevano, korisnik ne može uređivati ​​većinu atributa svog naloga. Imajte to na umu ako odlučite koristiti atribut koji nije Informacije.
  • Obavijestite sve uključene kolege koji atribut ćete koristiti. Na primjer, isto Informacije koristi se za interaktivno dodavanje bilješki u poštansko sanduče korisnika na admin panelu Exchange Servera i neko ga može lako prepisati ili se rastužiti kada vaša skripta prepiše informacije koje su dodali.
  • Ako imate više lokacija Active Directory, onda napravite dopuštenja za kašnjenje replikacije. Na primjer, ako želite da dobijete ažurirane informacije o korisnicima sa AD lokacije A i pokrenete skriptu sa mašine sa AD lokacije B, možete da uradite ovo:
    Get-ADUser -Server DCfromSiteA -SearchBase $OU -Properties * -Filter * | Select-Object DisplayName, SamAccountName, info | Sort DisplayName | Out-GridView -Title "Информация по логонам" -Wait

    DCfromSiteA — naziv kontrolora domene stranice A (podrazumevano, cmdlet Get-AdUser se povezuje na najbliži kontroler domene)

Windows: saznajte ko je gdje prijavljen

Izvor slike

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

Samo registrovani korisnici mogu učestvovati u anketi. Prijavite semolim.

šta koristiš?

  • bginfo, informacije o radnoj površini itd. (besplatni softver)

  • plaćeni analozi bginfo

  • Uradiću kao u članku

  • nije relevantno, jer Koristim VDI/RDS itd.

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

  • Ne moram da prikupljam takve podatke

  • ostalo (podijelite u komentarima)

Glasalo je 112 korisnika. Uzdržano je bilo 39 korisnika.

izvor: www.habr.com

Dodajte komentar