Windows: aflați cine este conectat unde

Windows: aflați cine este conectat unde
- Oh, nimic nu merge pentru mine, ajutor!
- Nu vă faceți griji, vom rezolva totul acum. Dați numele computerului dvs....
(clasice ale genului de la apeluri la suport tehnic)

Este bine dacă aveți un instrument la BgInfo sau dacă utilizatorii dvs. știu despre comanda rapidă Windows+Pauză/Pauză și știu cum să o apese. Există chiar și exemplare rare care au reușit să afle numele mașinii lor. Dar adesea, pe lângă problema lui principală, apelantul are o a doua problemă: aflarea numelui/adresei IP a computerului. Și de multe ori este nevoie de mult mai mult timp pentru a rezolva această a doua problemă decât prima (și trebuia doar să schimbați tapetul sau să returnați comanda rapidă lipsă :).
Dar este mult mai plăcut să auzi ceva de genul:
- Tatyana Sergeevna, nu-ți face griji, deja mă conectez...


Și nu aveți nevoie de multe pentru asta.
Un specialist în asistență tehnică trebuie doar să memoreze numele mașinilor și să-și amintească cine lucrează pentru care.
Înainte de a descrie soluția pe care o folosim în prezent, mă voi uita pe scurt la alte opțiuni, astfel încât să le pot critica până la capăt și să explic alegerea mea.

  1. BgInfo, Informații desktop și altele asemenea. Dacă sunt mulți bani, sunt și plătiți. Ideea este că informațiile tehnice sunt afișate pe desktop: numele mașinii, adresa IP, autentificare etc. În Desktop Info puteți chiar să stoarce grafice de performanță pe jumătate din ecran.
    Ceea ce nu îmi place este că pentru același Bginfo, de exemplu, utilizatorul trebuie să minimizeze ferestrele pentru a vedea datele necesare. Eu și colegii mei am observat de mai multe ori la BgInfo artefact caracteristic, când textul nou este afișat deasupra celui vechi.
    Unii utilizatori sunt enervați de faptul că administratorii desenează un 192.168.0.123 înfricoșător pe fața unei pisici întinsă pe desktop, stricând estetica imaginii de fundal și, desigur, acest lucru este teribil de demotivant și ucide complet spiritul muncii .
  2. O etichetă la „Cine sunt eu” (nu încercați să adăugați un semn de întrebare la sfârșit :). O scurtătură clasică pe desktop, în spatele căreia se ascunde un script îngrijit sau nu atât de îngrijit care afișează informațiile necesare sub forma unei casete de dialog. Uneori, în loc de o comandă rapidă, pun scriptul în sine pe desktop, ceea ce, din punctul meu de vedere, este proaste maniere.
    Dezavantajul este că pentru a lansa comanda rapidă, ca în primul caz, trebuie să minimizați toate ferestrele deschise (nu luăm în considerare acei dragi ai norocului care au singura fereastră de solitaire deschisă pe mașina lor de lucru). Apropo, utilizatorii dvs. știu unde să facă clic pentru a minimiza toate ferestrele? Așa e, un deget în ochiul administratorului.

Limita sugerează, de asemenea, că ambele metode descrise mai sus au principalul dezavantaj că utilizatorul este implicat în obținerea de informații, care poate fi orb, prost sau chiar să mintă.
Nu voi lua în considerare opțiunea de creștere a alfabetizării computerului, când toată lumea știe unde în Windows să caute numele mașinii lor: este o cauză nobilă, dar foarte dificilă. Și dacă compania are o schimbare a personalului, atunci este complet ruinoasă. Ce pot să spun, în cele mai multe cazuri nici măcar nu-și amintesc de autentificare.

Mi-am revărsat sufletul, iar acum la obiect.
Ideea unui rezident din Khabrov a fost luată ca bază mediu de din acest articol.
Esența ideii este că atunci când un utilizator se conectează la Windows, scriptul de conectare introduce informațiile necesare (ora și numele mașinii) într-un anumit atribut al contului de utilizator. Și când vă deconectați din sistem, se execută un script de deconectare similar.

Mi-a plăcut ideea în sine, dar au fost unele lucruri de care nu am fost mulțumit de implementare.

  1. Politica de grup, care specifică scripturi de conectare și deconectare pentru utilizatori, se aplică întregului domeniu, astfel încât scripturile vor rula pe orice mașină la care utilizatorii se conectează. Dacă utilizați soluții terminale împreună cu stațiile de lucru (de exemplu, produse Microsoft RDS sau Citrix), această abordare va fi incomodă.
  2. Datele sunt introduse în atributul Departament al contului de utilizator, la care utilizatorul mediu are acces numai în citire. Pe lângă atributul cont de utilizator, scriptul face și modificări la atributul Departament al contului de computer, pe care, implicit, nici utilizatorii nu îl pot modifica. Prin urmare, pentru ca soluția să funcționeze, autorul sugerează modificarea standardelor de setări de securitate pentru obiectele AD.
  3. Formatul datei depinde de setările de localizare pe mașina țintă, așa că de la o mașină putem obține 10 noiembrie 2018 14:53 și de la alta 11/10/18 2:53

Pentru a elimina aceste neajunsuri, s-au făcut următoarele.

  1. GPO este legat nu de un domeniu, ci de o organizație organizatorică cu mașini (separ utilizatorii și mașinile în diferite organizații organizaționale și îi sfătuiesc pe alții). Mai mult, pentru modul de procesare a politicii de loopback modul este setat îmbina.
  2. Scriptul va scrie numai date în contul de utilizator din atribut Informație, pe care utilizatorul îl poate schimba independent pentru contul său.
  3. S-a schimbat fragmentul de cod care generează valoarea atributului

Acum scripturile arată astfel:
SalvațiLogonInfoToAdUserAttrib.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

SalvațiLogoffInfoToAdUserAttrib.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

Oricine este primul care găsește toate diferențele dintre scripturile Logon și Logoff va primi un plus pentru karma. 🙂
De asemenea, pentru a obține informații vizuale, a fost creat următorul mic script PS:
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

În total, totul este configurat unu-doi-trei:

  1. creați un GPO cu setările necesare și conectați-l la departamentul cu stațiile de lucru ale utilizatorului:
    Windows: aflați cine este conectat unde
  2. hai să bem ceai (dacă AD are un număr mare de utilizatori, atunci ai nevoie de mult ceai :)
  3. rulați scriptul PS și obțineți rezultatul:
    Windows: aflați cine este conectat unde
    În partea de sus a ferestrei există un filtru convenabil în care puteți selecta date pe baza valorilor unuia sau mai multor câmpuri. Făcând clic pe coloanele tabelului, înregistrările sunt sortate după valorile câmpurilor corespunzătoare.

Ne putem „împacheta” frumos soluția.
Windows: aflați cine este conectat unde
Pentru a face acest lucru, vom adăuga o comandă rapidă pentru a lansa scriptul pentru specialiștii de asistență tehnică, care vor avea așa ceva în câmpul „obiect”:
powershell.exe -NoLogo -ExecutionPolicy Bypass -File "servershareScriptsGet-UsersByPCsInfo.ps1"

Dacă există o mulțime de angajați de asistență tehnică, puteți distribui o comandă rapidă folosind NU CONTEAZA.

Câteva comentarii finale.

  • Modulul Active Directory pentru PowerShell trebuie instalat pe mașina de pe care este lansat scriptul PS (pentru a face acest lucru, trebuie doar să adăugați instrumente de administrare AD în componentele Windows).
  • În mod implicit, utilizatorul nu poate edita majoritatea atributelor contului său. Rețineți acest lucru dacă decideți să utilizați un alt atribut decât Informație.
  • Informați toți colegii implicați ce atribut veți folosi. De exemplu, la fel Informație este folosit pentru a adăuga interactiv note în cutia poștală a unui utilizator în panoul de administrare Exchange Server și cineva poate să o suprascrie cu ușurință sau să se întristeze când informațiile adăugate sunt suprascrise de scriptul tău.
  • Dacă aveți mai multe site-uri Active Directory, acordați întârzieri de replicare. De exemplu, dacă doriți să obțineți informații actualizate despre utilizatorii de pe site-ul AD A și să rulați scriptul de pe o mașină de pe site-ul AD B, puteți face acest lucru:
    Get-ADUser -Server DCfromSiteA -SearchBase $OU -Properties * -Filter * | Select-Object DisplayName, SamAccountName, info | Sort DisplayName | Out-GridView -Title "Информация по логонам" -Wait

    DCfromSiteA — numele controlerului de domeniu al site-ului A (în mod implicit, cmdletul Get-AdUser se conectează la cel mai apropiat controler de domeniu)

Windows: aflați cine este conectat unde

Sursa imaginii

V-aș fi recunoscător dacă ați putea participa la scurtul sondaj de mai jos.

Numai utilizatorii înregistrați pot participa la sondaj. Loghează-te, Vă rog.

Ce folosesti?

  • bginfo, informații desktop etc. (gratuit)

  • analogi plătiți pentru bginfo

  • O voi face ca in articol

  • nu este relevant, pentru că Eu folosesc VDI/RDS etc.

  • Nu folosesc încă nimic, dar mă gândesc la asta

  • Nu am nevoie să colectez astfel de date

  • altele (distribuie in comentarii)

Au votat 112 utilizatori. 39 utilizatori s-au abținut.

Sursa: www.habr.com

Adauga un comentariu