Windows: zbulojmë kush ku është loguar

Windows: zbulojmë kush ku është loguar
— Oh, nothing is working for me, help!
— Don't worry, we'll fix everything right now. Please tell me the computer name

(a classic from tech support calls)

It's good if you have a tool like BgInfo or if your users know about the Windows+Pause/Break shortcut and can press it. There are even rare instances of users who have learned the name of their machine. But often, in addition to their main problem, the caller has a second issue: finding out the name/IP address of their computer. And often, it takes much longer to solve this second problem than the first (when all they needed was to change their wallpaper or restore a missing shortcut :)).
It's much nicer to hear something like:
— Tatiana Sergeevna, don't worry, I'm connecting now...


And it doesn't require much for that.
A support specialist just needs to memorize the machine names and remember who works on which.
Before describing the solution that we are currently using, I will briefly review other options to explain my choice critically.

  1. BgInfo, Desktop Info and similar tools. If you have more money, there are also paid options. The essence is that technical information is displayed on the desktop: machine name, IP address, login, etc. In Desktop Info, you can even create performance graphs covering half the screen.
    What is unsatisfactory is that for BgInfo, for example, users need to minimize windows to see the needed data. My colleagues and I have repeatedly observed with BgInfo a characteristic artifact, where new text is displayed over the old one.
    Some users are annoyed by the fact that admins draw a frightening 192.168.0.123 on the face of a cat stretched out on the desktop, ruining the aesthetics of the wallpaper, which, of course, is hugely demotivating and completely kills the work mood.
  2. A shortcut like "Who am I" (don't try to add a question mark at the end :). A classic desktop shortcut that hides a neat or not-so-neat script that outputs the necessary information in a dialog window. Sometimes, instead of a desktop shortcut, the script itself is placed on the desktop, which IMO is a bad practice.
    Këtu është një problem: për të hapur ikonicën, ashtu si në rastin e parë, duhet të minimizosh të gjitha dritaret e hapura (nuk e kemi parasysh fatin e atyre që kanë hapur vetëm një dritare me një lojë pasijanse). A e dinë përdoruesit tuaj se ku duhet të klikojnë për të minimizuar të gjitha dritaret? E saktë, me gishtin në syrin e administratorit.

Po ashtu, ai i njohur na tregon se të dy metodat e përshkruara më sipër kanë një mangësi kryesore, që është se në marrjen e informacionit merr pjesë përdoruesi, i cili mund të jetë paksa verbë, budalla dhe për më tepër të gënjejë.
Nuk do ta shqyrtoj opsionin e rritjes sĂ« shkrimit kompjuterik, kur tĂ« gjithĂ« dinĂ« se ku nĂ« Windows duhet tĂ« shikojnĂ« emrin e kompjuterit, duke qenĂ« se Ă«shtĂ« njĂ« punĂ« fisnike, por shumĂ« e vĂ«shtirĂ«. Dhe nĂ«se nĂ« kompani ka rotacion pune, atĂ«herĂ« kjo Ă«shtĂ« krejtĂ«sisht e pamundur. ÇfarĂ« tĂ« them, nĂ« shumicĂ«n e rasteve ata as nuk e kujtojnĂ« emrin e pĂ«rdoruesit tĂ« tyre.

Kam shprehur shpirtin tim, tani le të kalojmë në punë.
Ideja është marrë nga një banor i Habr. mittel nga ky artikull.
Esenia e ideës është se kur përdoruesi hyn në Windows, skripta e logon e regjistron informacionet e nevojshme (koha dhe emri i kompjuterit) në një atribut të caktuar të llogarisë së përdoruesit. Dhe kur del nga sistemi, përpunon një skript të ngjashëm të logoff-it.

Mua më pëlqeu vetë idea, por përkundrejt realizimit, disa gjëra nuk më kënaqin.

  1. Grup politika, ku janë shkruar skriptat e logon dhe logoff për përdoruesit, aplikohet në të gjithë domenin, prandaj skriptat do të funksionojnë në çdo makinë në të cilën kyçen përdoruesit. Nëse përveç stacioneve të punës përdoren zgjidhje terminali (p.sh., Microsoft RDS ose produktet Citrix), qasja e tillë do të ishte e papërshtatshme.
  2. Të dhënat regjistrohen në atributin Departamenti të llogarisë së përdoruesit, për të cilin përdoruesi ka akses vetëm për lexim. Përveç atributit të llogarisë së përdoruesit, skripta gjithashtu bën ndryshime në atributin Departamenti të llogarisë së kompjuterit, i cili për default përdoruesit gjithashtu nuk mund ta ndryshojnë. Prandaj, në mënyrë që zgjidhja të funksionojë, autori sugjeron të ndryshohen cilësimet standarde të sigurisë për objektet AD.
  3. Formati i datës varet nga cilësimet e lokalizimit në makinën përfundimtare, prandaj nga një makinë mund të marrim 10 nëntor 2018 14:53, dhe nga tjetra 11/10/18 2:53 p.m.

Për të eliminuar këto mangësi, u bë kjo.

  1. GPO lidhet jo me domainin, por me OU me pajisje (unë ndaj përdoruesit dhe pajisjet në OU të ndryshme dhe u rekomandoj edhe të tjerëve). Në të njëjtën kohë, për modo i procesit të politikave të loopback është vendosur moda merge.
  2. Scripti do të regjistrojë të dhënat vetëm në llogarinë e përdoruesit në atributin Info, të cilin përdoruesi mund ta ndryshojë vetë për llogarinë e tij.
  3. Pjesa e kodit që gjeneron vlerën e atributit është modifikuar.

Tani skriptet duken kështu:
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 & " " & " @ " & 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 & " " & " @ " & strComputerName
oUser.Setinfo

Kushdo qĂ« do tĂ« gjejĂ« tĂ« gjitha dallimet mes skriptit tĂ« logon dhe logoff, do tĂ« ketĂ« njĂ« plus nĂ« karma. 🙂
Po ashtu, për të marrë informacion të qartë është krijuar një skript të vogël 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 "Informacion rreth logonave" -Wait

Pra, gjithçka konfigurhet shumë lehtë:

  1. krijojmë GPO me cilësimet e nevojshme dhe e lidhemi me njësi administrative me stacionet e punës të përdoruesve:
    Windows: zbulojmë kush ku është loguar
  2. shkoi tĂ« pijĂ« çaj (nĂ«se AD ka njĂ« numĂ«r tĂ« madh pĂ«rdoruesish, atĂ«herĂ« nevojitet shumĂ« çaj 🙂
  3. nisim skriptin PS dhe marrim rezultatin:
    Windows: zbulojmë kush ku është loguar
    Në pjesën e sipërme të dritares ka një filtrues të përshtatshëm, ku mund të filtrojmë të dhënat sipas vlerave të një ose më shumë fushave. Klikimi mbi kolonat e tabelës rendit të dhënat sipas vlerave të fushave përkatëse.

Mund ta "paketojmë" bukur zgjidhjen tonë.
Windows: zbulojmë kush ku është loguar
Për këtë do të shtojmë një shkurtesë për ekzekutimin e skriptit për specialistët e mbështetjes teknike, ku në fushën "objekti" do të ketë diçka të tillë:
powershell.exe -NoLogo -ExecutionPolicy Bypass -File "servershareScriptsGet-UsersByPCsInfo.ps1"

Nëse ka shumë staf mbështetjeje teknike, mund të shpërndani një shkurtesë me anë të GPP.

Disa vërejtje përfundimtare.

  • NĂ« makinĂ«n nga e cila Ă«shtĂ« nisur skripti PS, duhet tĂ« jetĂ« e instaluar moduli Active Directory pĂ«r PowerShell (mjafton tĂ« shtoni mjetet e administratĂ«s AD nĂ« komponentĂ«t e Windows).
  • ShumicĂ«n e atributeve tĂ« llogarisĂ« sĂ« tij, pĂ«rdoruesi nuk mund ta redaktojĂ« automatikisht. KĂ«tĂ« duhet ta keni parasysh, nĂ«se vendosni tĂ« pĂ«rdorni njĂ« atribut tjetĂ«r nga Info.
  • Informoni tĂ« gjithĂ« kolegĂ«t e pĂ«rfshirĂ« pĂ«r atributin qĂ« do tĂ« pĂ«rdorni. PĂ«r shembull, i njĂ«jti Info pĂ«rdoret pĂ«r tĂ« shtuar shĂ«nime interaktive nĂ« kutinĂ« e pĂ«rdoruesit nĂ« administratĂ«n e Exchange Server dhe dikush mund ta fshijĂ« lehtĂ«sisht atĂ«, ose tĂ« mendonte me keqardhje kur informacioni qĂ« ai shtoi do tĂ« fshihet nga skripti juaj.
  • NĂ«se keni disa faqe Active Directory, atĂ«herĂ« merrni parasysh vonesat e replikimit. PĂ«r shembull, nĂ«se dĂ«shironi tĂ« merrni informacion tĂ« saktĂ« pĂ«r pĂ«rdoruesit nga faqja AD A, por e nisni skriptin nga makina nĂ« faqen AD B, mund ta bĂ«ni kĂ«shtu:
    Get-ADUser -Server DCfromSiteA -SearchBase $OU -Properties * -Filter * | Select-Object DisplayName, SamAccountName, info | Sort DisplayName | Out-GridView -Title "Informacion mbi loginat" -Wait

    DCfromSiteA — emri i kontrolluesit tĂ« domain-it tĂ« faqes A (normalisht komandleti Get-AdUser lidhet me kontrolluesin mĂ« tĂ« afĂ«rt tĂ« domain-it)

Windows: zbulojmë kush ku është loguar

Burimi i imazheve

Do të isha mirënjohës nëse do të plotësonit anketën e shkurtër më poshtë.

Vetëm përdoruesit e regjistruar mund të marrin pjesë në anketë. Hyni, ju lutem.

ÇfarĂ« pĂ«rdorni?

  • bginfo, Desktop info etj. (softuer falas)

  • analoge paguese tĂ« bginfo

  • do ta bĂ«j ashtu siç Ă«shtĂ« nĂ« artikull

  • nuk Ă«shtĂ« aktualizuar, pasi pĂ«rdor VDI/RDS etj.

  • deri tani nuk po pĂ«rdor asgjĂ«, por po mendoj

  • nuk kam nevojĂ« tĂ« mbledh kĂ«to tĂ« dhĂ«na

  • tjetĂ«r (ndani nĂ« komentet)

112 përdorues kanë votuar. 39 përdorues e kanë mbajtur veten.

Burimi: habr.com

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster