Windows: wir finden heraus, wer wo eingeloggt ist

Windows: wir finden heraus, wer wo eingeloggt ist
— Oh, bei mir funktioniert nichts, helfen Sie mir!
— Keine Sorge, wir werden das gleich in Ordnung bringen. Nennen Sie mir den Namen des Computers…
(ein Klassiker unter den Anrufen beim technischen Support)

Gut, wenn Sie ein Tool wie BgInfo haben oder Ihre Benutzer über die Windows+Pause/Break-Taste Bescheid wissen und wissen, wie man sie drückt. Es gibt sogar seltene Exemplare, die den Namen ihres Computers gelernt haben. Oft hat der Anrufer jedoch zusätzlich zu seinem Hauptproblem ein zweites: den Namen/IP-Adresse des Computers herauszufinden. Und oft benötigt man deutlich mehr Zeit, um dieses zweite Problem zu lösen, als das erste (auch wenn es nur darum ging, die Hintergrundbilder zu ändern oder ein verschwundenes Symbol wiederherzustellen :).
Es wäre viel angenehmer zu hören, etwas in der Art:
— Tatjana Sergejewna, machen Sie sich keine Sorgen, ich verbinde mich schon…


Und dafür braucht man nicht allzu viel.
Es reicht dem technischen Supportmitarbeiter, die Namen der Maschinen auswendig zu lernen und zu wissen, wer auf welchem arbeitet.
Bevor ich die Lösung beschreibe, die wir derzeit verwenden, werde ich kurz andere Optionen überdenken, um sie zu kritisieren und meine Wahl zu erklären.

  1. BgInfo, Desktop Info und dergleichen. Wenn viel Geld vorhanden ist, gibt es auch kostenpflichtige Optionen. Im Wesentlichen wird auf dem Desktop technische Information angezeigt: Name des Geräts, IP-Adresse, Login usw. In Desktop Info kann man sogar Leistungsdiagramme auf der Hälfte des Bildschirms integrieren.
    Es stört, dass der Benutzer bei Bginfo z.B. Fenster minimieren muss, um die benötigten Daten zu sehen. Auch haben meine Kollegen und ich mehrfach bei BgInfo beobachtet ein typisches Artefakt, wenn neuer Text über den alten angezeigt wird.
    Manche Benutzer empfinden es als störend, dass Administratoren ängstigende 192.168.0.123 auf das Bild eines Katzenmodes auf dem Desktop projizieren, was die Ästhetik des Hintergrundbildes ruiniert und natürlich die Motivation extrem senkt und die Arbeitsstimmung völlig tötet.
  2. Ein Shortcut à la „Wer bin ich“ (versuchen Sie nicht, am Ende ein Fragezeichen hinzuzufügen :). Ein klassisches Desktop-Icon, hinter dem sich ein ordentliches oder weniger ordentliches Skript versteckt, das die benötigten Informationen in einem Dialogfenster anzeigt. Manchmal wird anstelle des Icons das Skript direkt auf den Desktop gelegt, was ich persönlich als unhöflich empfinde.
    Ein Nachteil ist, dass zum Starten des Shortcuts, wie im ersten Fall, alle offenen Fenster minimiert werden müssen (wir lassen die Glückspilze außer Acht, die nur ein einziges Fenster mit Solitär auf ihrem Arbeitsplatz geöffnet haben). Übrigens, wissen Ihre Nutzer, wo sie klicken müssen, um alle Fenster zu minimieren? Richtig, mit dem Finger ins Auge des Administrators.

Der Kapitän weist auch darauf hin, dass bei beiden oben beschriebenen Methoden der Hauptnachteil darin liegt, dass der Benutzer, der möglicherweise blind, dumm und überhaupt unehrlich sein kann, in den Informationsbeschaffungsprozess einbezogen wird.
Ich werde die Option, die Computerkenntnisse zu verbessern, bei der alle wissen, wo sie in Windows den Namen ihres Computers nachschauen können, nicht in Betracht ziehen: Es ist eine noble, aber sehr schwierige Aufgabe. Und wenn es in der Firma einen hohen Personalwechsel gibt, ist das sogar ganz aussichtslos. Ganz zu schweigen davon, dass die meisten in den meisten Fällen nicht einmal ihren eigenen Login wissen.

Ich habe meine Gedanken ausgeschüttet, nun zurück zur Sache.
Die Idee stammt von einem Habr-Nutzer. mittel von dieses Artikels.
Die Grundidee ist, dass beim Anmelden eines Benutzers in Windows ein Logon-Skript die benötigten Informationen (Zeit und Computername) in ein bestimmtes Attribut des Benutzerkontos einträgt. Und beim Abmelden wird ein entsprechendes Logoff-Skript ausgeführt.

Die Grundidee hat mir gefallen, aber die Umsetzung ließ in einigen Punkten zu wünschen übrig.

  1. Die Gruppenrichtlinie, die die Anmelde- und Abmeldeskripte für die Benutzer festlegt, gilt für die gesamte Domain. Daher werden die Skripte auf jedem Gerät ausgeführt, auf dem sich die Benutzer anmelden. Wenn neben Arbeitsstationen auch terminalbasierte Lösungen (z. B. Microsoft RDS oder Citrix-Produkte) verwendet werden, kann dieser Ansatz unpraktisch sein.
  2. Die Daten werden in das Attribut Department des Benutzerkontos eingetragen, auf das der normale Benutzer nur Lesezugriff hat. Neben dem Attribut des Benutzerkontos nimmt das Skript auch Änderungen am Attribut Department des Computerkontos vor, das standardmäßig von den Benutzern ebenfalls nicht geändert werden kann. Damit die Lösung funktioniert, schlägt der Autor vor, die Standardeinstellungen für die Sicherheitsrichtlinien von AD-Objekten zu ändern.
  3. Das Datumsformat hängt von den Lokalisierungseinstellungen des Endgeräts ab, sodass wir von einem Gerät den 10. November 2018 um 14:53 Uhr erhalten können, während von einem anderen Gerät 11/10/18 um 14:53 Uhr ausgegeben wird.

Um diese Mängel zu beheben, wurden folgende Schritte unternommen.

  1. GPO wird nicht mit einer Domäne, sondern mit einer OU für Maschinen verknüpft (ich teile Benutzer und Maschinen in verschiedene OUs und empfehle dies auch anderen). Dabei wird für den Loopback-Richtlinienverarbeitungsmodus der Modus eingestellt auf Zusammenführen.
  2. Das Skript wird Daten nur in das Benutzerkonto im Attribut Info, das der Benutzer selbst für sein Konto ändern kann, eintragen.
  3. Ein Teil des Codes, der den Attributwert generiert, wurde geändert.

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 dem Abmeldeskript findet, dem wird Karma gutgeschrieben. 🙂
Um eine anschauliche Information zu erhalten, wurde dieses kleine PS-Skript erstellt:
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 "Informationen zu Anmeldungen" -Wait

Alles lässt sich in drei Schritten einrichten:

  1. Wir erstellen eine GPO mit den notwendigen Einstellungen und verlinken sie mit der Abteilung, die die Arbeitsstationen der Benutzer hat:
    Windows: wir finden heraus, wer wo eingeloggt ist
  2. Dann gehen wir Tee trinken (wenn das AD viele Benutzer hat, braucht man viel Tee 🙂)
  3. Wir führen das PS-Skript aus und erhalten das Ergebnis:
    Windows: wir finden heraus, wer wo eingeloggt ist
    Oben im Fenster finden Sie einen benutzerfreundlichen Filter, mit dem Sie Daten nach Werten eines oder mehrerer Felder filtern können. Ein Klick auf die Tabellenspalten sortiert die Einträge nach den Werten der jeweiligen Felder.

Wir können unsere Lösung ansprechend "verpacken".
Windows: wir finden heraus, wer wo eingeloggt ist
Dazu fügen wir ein Shortcut für den Start des Skripts für die Support-Mitarbeiter hinzu, das im Feld "Objekt" etwa so aussehen wird:
powershell.exe -NoLogo -ExecutionPolicy Bypass -File "servershareScriptsGet-UsersByPCsInfo.ps1"

Wenn viele Support-Mitarbeiter vorhanden sind, kann das Shortcut über GPP.

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 genügt, 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 wird derselbe Info für die interaktive Hinzufügung von Notizen zum Benutzerpostfach im Exchange Server Admin verwendet, und jemand kann es leicht überschreiben oder sich darüber ärgern, dass die von ihnen hinzugefügten Informationen von Ihrem Skript überschrieben werden.
  • Wenn Sie mehrere Active Directory-Websites haben, berücksichtigen Sie bitte die Replikationsverzögerungen. Wenn Sie beispielsweise aktuelle Informationen zu Benutzern von der AD-Website A wünschen und das Skript von einem Computer in der AD-Website B 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 "Informationen zu Logins" -Wait

    DCfromSiteA — der Name des Domänencontrollers der Website A (standardmäßig verbindet sich das Cmdlet Get-AdUser mit dem nächstgelegenen Domänencontroller)

Windows: wir finden heraus, wer wo eingeloggt ist

Bildquelle

Ich wäre Ihnen dankbar, wenn Sie die kurze Umfrage unten ausfüllen.

Nur registrierte Benutzer können an der Umfrage teilnehmen. Bitte melden Sie sich an.Sind Sie an Contour interessiert?

Was verwenden Sie?

  • bginfo, Desktopinfo usw. (kostenlose Software)

  • bezahlte Alternativen zu bginfo

  • ich werde es so machen, wie im Artikel

  • nicht relevant, da ich VDI/RDS usw. verwende

  • ich verwende noch nichts, denke aber darüber nach

  • ich muss solche Daten nicht sammeln

  • anderes (teilen Sie Ihre Meinung in den Kommentaren mit)

112 Benutzer haben abgestimmt. 39 Benutzer haben sich enthalten.

Quelle: habr.com

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster