Windows: ta reda pÄ vem som Àr inloggad var

Windows: ta reda pÄ vem som Àr inloggad var
— Åh, inget fungerar för mig, hjĂ€lp!
— Oroa dig inte, vi fixar det nu. NĂ€mn datorns namn

(en klassiker frÄn teknisk support)

Bra, om du har verktyg som BgInfo eller om dina anvÀndare kÀnner till kortkommandot Windows+Pause/Break och kan trycka pÄ det. Det finns till och med sÀllsynta exemplar som har lÀrt sig namnet pÄ sin dator. Men ofta har den som ringer, utöver sitt huvudproblem, ett andra problem: att ta reda pÄ datorns namn/IP-adress. Och det tar ofta betydligt mer tid att lösa detta andra problem Àn det första (och allt som behövdes var att byta bakgrund eller ÄterstÀlla en förlorad genvÀg :).
Det Àr mycket trevligare att höra nÄgot i stil med:
— Tatjana Sergejevna, oroa dig inte, jag ansluter mig nu



Och för detta behövs faktiskt inte sÄ mycket.
För teknisk support rÀcker det med att kÀnna till namnen pÄ datorerna och komma ihÄg vem som jobbar med vad.
Innan jag gÄr in pÄ den lösning vi anvÀnder nu, kommer jag kort att gÄ igenom andra alternativ för att kritisera dem ordentligt förklara mitt val.

  1. BgInfo, Desktop Info och liknande. Om du har mycket pengar finns det Àven betalda alternativ. PoÀngen Àr att teknisk information visas pÄ skrivbordet: datorns namn, IP-adress, inloggning osv. I Desktop Info kan man till och med ha prestandagrafer som tar upp halva skÀrmen.
    Det Àr irriterande eftersom anvÀndaren för Bginfo, till exempel, behöver minimera fönster för att se de nödvÀndiga uppgifterna. Dessutom har vi sett flera gÄnger hos BgInfo ett typiskt artefakt, dÀr ny text visas ovanpÄ gammal.
    Vissa anvÀndare blir irriterade över att adminstratörerna skriver skrÀmmande 192.168.0.123 pÄ ansiktet av en utstrÀckt katt pÄ skrivbordet, vilket förstör estetiken av bakgrundsbilden, och det demotiverar sÄklart och dödar helt arbetsmoralen.
  2. En genvÀg som heter "Vem Àr jag" (försök inte lÀgga till ett frÄgetecken i slutet :). En klassisk genvÀg pÄ skrivbordet som döljer ett snyggt eller mindre snyggt skript som visar nödvÀndig information i form av en dialogruta. Ibland lÀgger man sjÀlva skriptet pÄ skrivbordet istÀllet för genvÀgen, vilket jag personligen anser vara smaklöst.
    Nackdelen Àr att för att starta genvÀgen, precis som i det första fallet, mÄste alla öppna fönster minimeras (vi rÀknar inte med de som bara har ett fönster med patience öppet pÄ sin arbetsstation). För övrigt, vet dina anvÀndare vart de ska klicka för att minimera alla fönster? RÀtt, med fingret i ögat pÄ administratören.

Även kaptenen pĂ„pekar att bĂ„da de ovan beskrivna metoderna har en stor nackdel, nĂ€mligen att anvĂ€ndaren, som kan vara lite blind, dum och överlag ljuga, Ă€r involverad i att hĂ€mta information.
Alternativet att öka datorvana, dÀr alla vet vart de ska kolla i Windows för att se namnet pÄ sin dator, kommer jag inte att betrakta: det Àr en Àdel sak, men mycket svÄr. Och om företaget har en hög personalomsÀttning, kan det bli helt hopplöst. Vad ska man sÀga, i de flesta fall kommer de knappt ens ihÄg sitt eget inloggningsnamn.

Jag har uttryckt mina tankar, nu till saken.
Idén var hÀmtad frÄn en skribent pÄ Habr. mittel frÄn denna artikel.
KÀrnan i idén Àr att vid anvÀndarens inloggning i Windows, sÄ registrerar inloggningsskriptet den nödvÀndiga informationen (tid och datornamn) i en viss attribut av anvÀndarkontot. Vid utloggning körs ett motsvarande utloggningsskript.

SjÀlva idén tilltalade mig, men i praktiken var det nÄgot som inte var tillfredsstÀllande.

  1. Gruppolitiken som anger inloggnings- och utloggningsskripten för anvÀndarna tillÀmpas pÄ hela domÀnen, sÄ dessa skript kommer att köras pÄ vilken maskin som helst dit anvÀndarna loggar in. Om ni anvÀnder terminallösningar (till exempel Microsoft RDS eller Citrix-produkter) tillsammans med arbetsstationer, Àr denna metod opraktisk.
  2. Data registreras i attributet Department för anvÀndarkontot, som den vanliga anvÀndaren endast har lÀsbehörighet till. Förutom att skriptet Àven gör Àndringar i attributet Department för datorns konto, som anvÀndarna som standard inte heller kan Àndra. SÄ för att lösningen ska fungera föreslÄr författaren att standard sÀkerhetsinstÀllningar för AD-objekt Àndras.
  3. Datumformatet beror pÄ lokaliseringsinstÀllningarna pÄ den slutliga maskinen, sÄ frÄn en maskin kan vi fÄ 10 november 2018 14:53, medan frÄn en annan fÄr vi 11/10/18 2:53 p.m.

För att ÄtgÀrda dessa brister har följande gjorts.

  1. GPO lÀnkas inte till domÀnen, utan till OU med maskiner (jag separerar anvÀndare och maskiner i olika OU och rÄder andra att göra detsamma). Vid detta loopback-policybearbetningslÀge Àr instÀllt pÄ merge.
  2. Skriptet kommer att registrera data endast i anvÀndarens konto i attributet Info, som anvÀndaren kan Àndra sjÀlv för sitt konto.
  3. En del av koden som genererar vÀrdet för attributet har Àndrats.

Nu ser skripten ut sÄ hÀr:
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

Den som först hittar alla skillnader mellan inloggnings- och utloggningsskriptet fĂ„r en pluspoĂ€ng i sin karma. 🙂
För att fÄ en tydlig översikt har ett litet PS-skript skapats:
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 "Information om inloggningar" -Wait

SÄ allt stÀlls in pÄ ett-tre:

  1. vi skapar GPO med de nödvÀndiga instÀllningarna och lÀnkar den till avdelningen med anvÀndarnas arbetsstationer:
    Windows: ta reda pÄ vem som Àr inloggad var
  2. vi gĂ„r och dricker te (om AD har ett stort antal anvĂ€ndare, behövs det mycket te 🙂
  3. vi kör PS-skriptet och fÄr resultatet:
    Windows: ta reda pÄ vem som Àr inloggad var
    I den övre delen av fönstret finns ett bekvÀmt filter dÀr man kan sortera data efter vÀrden i ett eller flera fÀlt. Klicka pÄ kolumnerna i tabellen sorterar posterna efter motsvarande fÀlts vÀrden.

Vi kan vackert "packa" vÄr lösning.
Windows: ta reda pÄ vem som Àr inloggad var
För detta kommer vi att lÀgga till en genvÀg för att köra skriptet för teknisk support, dÀr "objekt"-fÀltet har nÄgot liknande:
powershell.exe -NoLogo -ExecutionPolicy Bypass -File "servershareScriptsGet-UsersByPCsInfo.ps1"

Om det finns mÄnga supportmedarbetare kan du dela ut en genvÀg med hjÀlp av GPP.

NÄgra sista kommentarer.

  • PĂ„ maskinen dĂ€r PS-skriptet körs mĂ„ste modulen Active Directory för PowerShell vara installerad (det rĂ€cker med att lĂ€gga till AD-administrationsverktyg i Windows-komponenterna).
  • De flesta attribut för sitt konto kan anvĂ€ndaren som standard inte redigera. TĂ€nk pĂ„ detta om du vĂ€ljer att anvĂ€nda ett attribut som skiljer sig frĂ„n Info.
  • Informera alla berörda kollegor om vilket attribut du kommer att anvĂ€nda. Till exempel anvĂ€nds samma Info för interaktivt tillĂ€gg av anteckningar till anvĂ€ndarens lĂ„da i Exchange Servers administratörsverktyg och nĂ„gon kan lĂ€tt radera det, eller bli ledsen nĂ€r den information som de har lagt till raderas av ditt skript.
  • Om du har flera Active Directory-webbplatser, ta hĂ€nsyn till replikationsfördröjningar. Till exempel om du vill fĂ„ aktuell information om anvĂ€ndare frĂ„n AD-webbplats A och kör skriptet frĂ„n en maskin frĂ„n AD-webbplats B, kan du göra sĂ„ hĂ€r:
    Get-ADUser -Server DCfromSiteA -SearchBase $OU -Properties * -Filter * | Select-Object DisplayName, SamAccountName, info | Sort DisplayName | Out-GridView -Title "Information om inloggningar" -Wait

    DCfromSiteA — namnet pĂ„ domĂ€nkontrollanten för webbplats A (som standard kopplar cmdlet Get-AdUser till den nĂ€rmaste domĂ€nkontrollanten)

Windows: ta reda pÄ vem som Àr inloggad var

KÀlla för bilder

Jag skulle uppskatta om du skulle besvara den korta undersökningen nedan.

Endast registrerade anvÀndare kan delta i omröstningen. Logga in, tack.

Vad anvÀnder ni?

  • bginfo, Desktop info etc. (gratis mjukvara)

  • betalda motsvarigheter till bginfo

  • jag gör som i artikeln

  • inte aktuellt, eftersom jag anvĂ€nder VDI/RDS etc.

  • just nu anvĂ€nder jag inget, men funderar pĂ„ det

  • jag behöver inte samla sĂ„dan data

  • annat (dela gĂ€rna i kommentarerna)

112 anvÀndare har röstat. 39 anvÀndare avstod.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster