Oh, ich kann nichts machen, helfen Sie mir!
Keine Sorge, wir werden das gleich beheben. Nennen Sie den Namen des Computers…
(ein Klassiker unter den Anrufen beim technischen Support)
Es ist gut, wenn Sie ein Tool wie BgInfo haben oder Ihre Benutzer wissen, wie sie die Windows+Pause/Brechen-Taste verwenden. Manchmal gibt es sogar seltene Exemplare, die den Namen ihres Computers gelernt haben. Doch oft hat der Anrufer zusätzlich zu seinem Hauptproblem ein zweites: Den Namen/IP-Adresse des Computers herauszufinden. Und oft benötigt man für die Lösung dieses zweiten Problems viel mehr Zeit als für das erste (es hätte nur darum gehen sollen, den Hintergrund zu ändern oder eine verlorene Verknüpfung zurückzubringen :).
Es wäre jedoch viel angenehmer, so etwas zu hören:
Tatjana Sergejewna, machen Sie sich keine Sorgen, ich verbinde mich bereits…
Es braucht dafür eigentlich nicht viel.
Für den technischen Support-Spezialisten reicht es aus, die Namen der Maschinen auswendig zu lernen und zu wissen, wer an welcher arbeitet.
Bevor ich die Lösung beschreibe, die wir gerade verwenden, werde ich kurz andere Optionen behandeln, um sie zu kritisieren und meine Wahl zu erklären.
- , und ähnliche. Wenn man viel Geld hat, gibt es auch kostenpflichtige. Der Punkt ist, dass technische Informationen auf dem Desktop angezeigt werden: Maschinenname, IP-Adresse, Login usw. Bei Desktop Info kann man sogar Leistungsdiagramme auf die Hälfte des Bildschirms anzeigen.
Was stört, ist, dass der Benutzer bei Bginfo beispielsweise die Fenster minimieren muss, um die benötigten Daten zu sehen. Ich habe auch mit meinen Kollegen bei BgInfo oft gesehen, , wenn neuer Text über alten ausgegeben wird.
Einige Benutzer sind genervt von der Tatsache, dass Administratoren beängstigende 192.168.0.123 auf das Gesicht eines katzenhaften Bildes auf ihrem Desktop zeichnen, was die Ästhetik des Hintergrundbilds stört, und das demotiviert natürlich zutiefst und ruiniert die Arbeitsatmosphäre. - Ein „Wer bin ich“-Schnellzugriff (versuchen Sie nicht, ihm ein Fragezeichen am Ende hinzuzufügen :). Eine klassische Verknüpfung auf dem Desktop, hinter der sich ein ordentliches oder weniger ordentliches Skript verbirgt, das die benötigten Informationen in Form eines Dialogfensters anzeigt. Manchmal wird anstelle der Verknüpfung direkt das Skript auf den Desktop gelegt, was meiner Meinung nach ein Fauxpas ist.
Der Nachteil ist, dass man, um das Shortcut zu starten, wie im ersten Fall, alle offenen Fenster minimieren muss (wir berücksichtigen nicht die Glücklichen, die nur ein Fenster mit Solitär auf ihrem Desktop geöffnet haben). Übrigens, wissen Ihre Benutzer, wo sie klicken müssen, um alle Fenster zu minimieren? Genau, mit dem Finger ins Auge des Admins.
Außerdem weist der Chef darauf hin, dass bei beiden oben beschriebenen Methoden der Hauptnachteil darin besteht, dass der Nutzer, der möglicherweise blind, dumm und überhaupt unehrlich sein kann, an der Informationsbeschaffung beteiligt ist.
Die Option, die Computerkenntnisse zu erhöhen, sodass jeder weiß, wo man unter Windows den Namen seines Computers finden kann, werde ich nicht behandeln: es ist eine edle, aber sehr schwierige Aufgabe. Und wenn es in der Firma eine hohe Fluktuation gibt, dann ist das ganz und gar aussichtslos. Was soll ich sagen, in den meisten Fällen wissen sie nicht einmal ihren eigenen Benutzernamen.
Ich habe meine Seele ausgeschüttet, nun kommen wir zur Sache.
Die Idee stammt von einem Habr-User. aus .
Der Kern der Idee ist, dass beim Anmelden des Benutzers in Windows ein Login-Skript die erforderlichen Informationen (Zeit und Maschinenname) in ein bestimmtes Attribut des Benutzerkontos einträgt. Und beim Abmelden wird ein entsprechendes Logout-Skript ausgeführt.
Die Idee selbst hat mir gefallen, aber bei der Umsetzung gab es einige Unzufriedenheiten.
- Die Gruppenrichtlinie, in der die Login- und Logout-Skripte für die Benutzer definiert sind, wird auf die gesamte Domäne angewendet, daher werden die Skripte auf jedem Rechner ausgeführt, auf den sich die Benutzer einloggen. Wenn Sie neben Arbeitsstationen auch Terminallösungen verwenden (z.B. Microsoft RDS oder Citrix-Produkte), wird dieser Ansatz unpraktisch.
- Die Daten werden im Attribut Department des Benutzerkontos gespeichert, auf das der normale Benutzer nur Leserechte hat. Neben dem Attribut des Benutzerkontos nimmt das Skript auch Änderungen am Attribut Department des Computer-Kontos vor, das Benutzer standardmäßig ebenfalls nicht ändern können. Daher schlägt der Autor vor, die Standardeinstellungen der Sicherheit für AD-Objekte zu ändern, damit die Lösung funktioniert.
- Das Datumsformat hängt von den Lokalisierungseinstellungen auf dem Endgerät ab, deshalb können wir von einem Computer den 10. November 2018 um 14:53 erhalten, und von einem anderen den 11/10/18 um 2:53 p.m.
Um diese Nachteile zu beheben, wurde Folgendes unternommen.
- Die GPO wird nicht mit der Domäne, sondern mit der OU der Maschinen verknüpft (ich teile Benutzer und Maschinen in verschiedene OUs und empfehle das auch anderen). Dabei ist für der Modus eingestellt , also Merge-Vorgänge..
- Das Skript wird Daten nur in das Benutzerkonto im Attribut eintragen Info, welches der Benutzer selbst für sein Konto ändern kann.
- Ein Teil des Codes wurde geändert, der den Wert des Attributs generiert
Jetzt sehen die Skripte so aus:
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
Wer zuerst alle Unterschiede zwischen dem Anmelde- und Abmeldeskript findet, dem winkt ein Karma-Punkt. 🙂
Außerdem wurde ein kleines PS-Skript erstellt, um anschauliche Informationen zu erhalten:
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 "Anmeldeinformationen" -Wait
Alles lässt sich im Handumdrehen einrichten:
- Wir erstellen eine GPO mit den erforderlichen Einstellungen und verknüpfen sie mit der Abteilung der Arbeitsstationen der Benutzer:
- Wir gehen eine Tasse Tee trinken (wenn AD viele Benutzer hat, braucht man viel Tee 🙂
- starten das PS-Skript und erhalten das Ergebnis:

Oben im Fenster gibt es einen praktischen Filter, mit dem Daten nach einem oder mehreren Feldwerten gefiltert werden können. Ein Klick auf die Tabellenspalten sortiert die Einträge nach den Werten der entsprechenden Felder.
Wir können unsere Lösung schön "verpacken".

Dazu fügen wir einen Shortcut zum Ausführen des Skripts für die Techniker hinzu, bei dem im Feld "Objekt" etwas in dieser Art steht:
powershell.exe -NoLogo -ExecutionPolicy Bypass -File "servershareScriptsGet-UsersByPCsInfo.ps1"
Wenn viele Supportmitarbeiter vorhanden sind, kann das Kürzel übergeben werden mit .
Einige abschließende Anmerkungen.
- Auf dem Computer, von dem aus das PS-Skript ausgeführt wird, muss das Active Directory-Modul für PowerShell installiert sein (es reicht aus, die AD-Verwaltungstools in den Windows-Komponenten hinzuzufügen).
- Die meisten Attribute ihres Kontos kann der Benutzer standardmäßig nicht bearbeiten. Berücksichtigen Sie dies, wenn Sie ein anderes Attribut als Info.
- Informieren Sie alle beteiligten Kollegen darüber, welches Attribut Sie verwenden werden. Zum Beispiel das gleiche Info wird für die interaktive Hinzufügung von Notizen zum Benutzerpostfach in der Exchange Server-Verwaltung verwendet, und jemand könnte es leicht überschreiben oder traurig sein, wenn die von ihm hinzugefügten Informationen von Ihrem Skript überschrieben werden.
- Wenn Sie mehrere Active Directory-Websites haben, berücksichtigen Sie die Replikationsverzögerungen. Wenn Sie beispielsweise aktuelle Informationen über Benutzer von der AD-Website A erhalten möchten und das Skript von einem Computer der AD-Website B aus ausführen, können Sie Folgendes tun:
Get-ADUser -Server DCfromSiteA -SearchBase $OU -Properties * -Filter * | Select-Object DisplayName, SamAccountName, info | Sort DisplayName | Out-GridView -Title "Information zu Logins" -Wait
DCfromSiteA — der Name des Domänensteuerers der Website A (standardmäßig verbindet sich das Cmdlet Get-AdUser mit dem nächstgelegenen Domänencontroller)

Ich wäre dankbar, wenn Sie die kurze Umfrage unten ausfüllen.
Nur registrierte Benutzer können an der Umfrage teilnehmen. .
Was verwenden Sie?
bginfo, Desktop-Info etc. (kostenlose Software)
kostenpflichtige Alternativen zu bginfo
Ich werde es so machen, wie im Artikel
nicht relevant, da ich VDI/RDS etc. verwende.
Ich benutze derzeit nichts, denke aber nach
ich muss solche Daten nicht sammeln
sonstiges (teilen Sie es in den Kommentaren)
112 Benutzer haben abgestimmt. 39 Benutzer haben sich enthalten.
Quelle: habr.com

