— Åh, jeg kan ikke få noget til at fungere, hjælp mig!
— Bekymr dig ikke, vi retter det nu. Hvad er computerens navn…
(klassikeren fra teknisk support opkald)
Godt, hvis du har et værktøj som BgInfo, eller hvis dine brugere kender genvejen Windows+Pause/Break og kan trykke på den. Der findes endda sjældne tilfælde, der har lært deres maskines navn. Men ofte får den, der ringer, udover sit hovedproblem også et sekundært: at finde ud af computerens navn/IP-adresse. Og ofte tager det længere tid at løse dette sekundære problem end det første (selvom det blot var meningen at skifte baggrunden eller genoprette det manglende ikon :).
Det er meget mere behageligt at høre noget i stil med:
— Tatiana Sergeevna, vær ikke bekymret, jeg er allerede ved at tilslutte mig…
Og for at gøre det, kræves der ikke meget.
Det er nok for teknikeren bare at huske navnene på maskinerne og vide, hvem der arbejder med hvad.
Før jeg beskriver den løsning, som vi bruger nu, vil jeg kort gennemgå andre muligheder for at kritisere dem af grundlæggernes kendskab til dem forklare mit valg.
- , og lignende. Hvis man har mange penge, findes der også betalte versioner. Essensen er, at der vises teknisk information på skrivebordet: maskinens navn, IP-adresse, login osv. I Desktop Info kan man endda tilføje ydeevneskemaer på halvdelen af skærmen.
Det er irriterende, at brugeren for BgInfo, for eksempel, skal minimere vinduerne for at se de nødvendige data. Vi har også flere gange observeret hos BgInfo , hvor ny tekst vises ovenpå gammel tekst.
Nogle brugere bliver irriterede over, at administratorerne skriver det skræmmende 192.168.0.123 på ansigtet af en strakt kat, der ødelægger baggrundens æstetik og selvfølgelig demotiverer det frygteligt og dræber den arbejdsmæssige stemning. - Genvejen vil noget a la "Hvem er jeg" (prøv ikke at tilføje et spørgsmålstegn til slut :). En klassisk genvej på skrivebordet, der gemmer et velordnet eller ikke så velordnet script, der viser de ønskede oplysninger i form af et dialogvindue. Nogle gange placeres selve scriptet på skrivebordet i stedet for genvejen, hvilket IMO er en smule usmageligt.
Ulempe ved denne metode er, at for at kunne startegenvejen, ligesom i det første tilfælde, skal alle åbne vinduer minimeres (de heldige sjæle, der kun har ét vindue med kabale åbent på deres arbejdsstation, tæller ikke med). Forresten, ved dine brugere, hvor de skal klikke for at minimere alle vinduer? Rigtigt, med fingeren i øjet på administratoren.
Desuden påpeger kaptajnen, at begge de ovenfor beskrevne metoder har den væsentlige ulempe, at brugeren, der skal hente oplysningerne, kan være lidt blind, dum og generelt lyve.
Jeg vil ikke overveje muligheden for at forbedre computerfærdighederne, hvor alle ved, hvor man skal finde navnet på sin computer i Windows: det er en ædel, men meget svær opgave. Og hvis der er høj medarbejderudskiftning i virksomheden, er det helt umuligt. Hvad skal man sige, i de fleste tilfælde kan de endda ikke huske deres eget brugernavn.
Jeg har delt mine tanker, nu til sagen.
Idéen er taget fra en bruger på Habr. af .
Essensen af ideen er, at når brugeren logger ind i Windows, opbevarer logonscriptet de nødvendige oplysninger (tid og computernavn) i et bestemt attribut for brugerens konto. Og ved logoff udføres et lignende logoff-script.
Jeg kunne godt lide selve ideen, men implementeringen var ikke helt tilfredsstillende.
- Gruppepolitikken, der indeholder logon- og logoff-scripts for brugerne, anvendes på hele domænet, så scripts vil køre på enhver maskine, som brugerne logger ind på. Hvis du bruger terminalløsninger ved siden af arbejdsstationer (f.eks. Microsoft RDS eller Citrix-produkter), vil denne tilgang være besværlig.
- Dataene gemmes i attributten Department for brugerens konto, som almindelige brugere kun har læseadgang til. Foruden ændringer i attributten for brugerens konto opdaterer scriptet også attributten Department for computerens konto, som brugerne som standard heller ikke kan ændre. Derfor foreslår forfatteren at ændre de standard sikkerhedsindstillinger for AD-objekter for at få løsningen til at fungere.
- Datoformatet afhænger af lokaliseringsindstillingerne på den endelige maskine, så vi kan få 10. november 2018 14:53 fra én maskine, og fra en anden 11/10/18 2:53 p.m.
For at rette disse ulemper blev følgende gjort.
- GPO linkes ikke til domænet, men til OU med maskiner (jeg adskiller brugere og maskiner i forskellige OU og anbefaler andre at gøre det samme). Dette gælder for er indstillet til sammenslutte.
- Scriptet vil kun registrere data i brugerens attribut Info, som brugeren selv kan ændre til sin konto.
- En del af koden, der genererer attributværdien, er ændret
Nu ser scripts sådan ud:
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, der først finder alle forskelle mellem logon- og logoff-scriptet, får et plus i karma. 🙂
Der er også oprettet et lille PS-script for at få overskuelig information:
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 logon" -Wait
Alt kan sættes op på no time:
- opretter en GPO med de ønskede indstillinger og linker den til afdelingen med brugernes arbejdsstationer:
- vi går ud og drikker te (hvis AD har et stort antal brugere, er der brug for meget te 🙂
- vi kører PS-scriptet og får resultatet:

Øverst i vinduet er der et praktisk filter, hvor man kan sortere data efter værdierne i et eller flere felter. Klik på tabelkolonnerne for at sortere posterne efter værdierne i de tilsvarende felter.
Vi kan smukt "pakke" vores løsning.

Til dette vil vi tilføje en genvej til at køre scriptet for teknisk support, hvor "objekt"-feltet vil have noget som:
powershell.exe -NoLogo -ExecutionPolicy Bypass -File "servershareScriptsGet-UsersByPCsInfo.ps1"
Hvis der er mange supportmedarbejdere, kan der deles en genvej ved hjælp af .
Nogle bemærkninger til sidst.
- På den maskine, hvor PS-scriptet køres, skal Active Directory-modulet til PowerShell være installeret (det er tilstrækkeligt at tilføje AD-administrationsværktøjer i Windows-komponenterne).
- Brugeren kan som standard ikke redigere de fleste attributter af sin konto. Tag dette i betragtning, hvis du beslutter dig for at bruge en attribut, der adskiller sig fra Info.
- Informér alle relevante medarbejdere om, hvilken attribut du planlægger at bruge. For eksempel anvendes den samme Info til interaktivt at tilføje noter til brugerens postkasse i Exchange Server-administrationen, og nogen kan nemt slette den, eller de kan blive kede af det, når din script overskriver deres tilføjede information.
- Hvis du har flere Active Directory-websteder, skal du tage højde for replikeringsforsinkelse. For eksempel, hvis du gerne vil have aktuelt information om brugerne fra AD-websted A, men kører scriptet fra en maskine på AD-websted B, kan du gøre det sådan her:
Get-ADUser -Server DCfromSiteA -SearchBase $OU -Properties * -Filter * | Select-Object DisplayName, SamAccountName, info | Sort DisplayName | Out-GridView -Title "Information om logins" -Wait
DCfromSiteA — navnet på domænecontrolleren for websted A (som standard forbinder Get-AdUser-kommandoen til den nærmeste domænecontroller)

Jeg vil være taknemmelig, hvis du besvarer den korte undersøgelse nedenfor.
Kun registrerede brugere kan deltage i undersøgelsen. , please.
Hvad bruger du?
bginfo, Desktop info osv. (gratis software)
betalte alternativer til bginfo
jeg vil gøre det som beskrevet i artiklen
ikke relevant, da jeg bruger VDI/RDS osv.
jeg bruger ikke noget for nu, men overvejer det
jeg har ikke brug for at indsamle sådanne data
andet (del dine tanker i kommentarerne)
112 brugere har stemt. 39 brugere har undladt at stemme.
Kilde: habr.com

