Analysieren der Anmeldedauer über Skriptaufgabe
Lange Anmeldezeiten verringern die Benutzerproduktivität und führen zu einer schlechten Benutzererfahrung. Als Administrator sollten Sie sich einen detaillierten Überblick über die Anmeldezeiten verschaffen, um Prozesse zu identifizieren, die langsame Anmeldungen verursachen, damit Sie entsprechende Abhilfemaßnahmen ergreifen können.
Um dieses Ziel zu erreichen, können Sie das Skript verwenden Analyze_Logon_Duration.ps1
. Es handelt sich um ein PowerShell-Skript, das das Ereignisprotokoll nach allen wichtigen Ereignissen im Zusammenhang mit dem Anmeldevorgang abfragt. Das Skript bietet die folgenden Vorteile und mehr:
- Es gibt Ihnen eine Aufschlüsselung der Anmeldedauer der letzten Anmeldung eines Benutzers.
- Es zeigt alle wichtigen sequenziellen Phasen des Anmeldevorgangs an und macht es leicht zu erkennen, welche Phase die Anmeldung verlangsamt.
- Damit können Sie überprüfen, ob zwischen dem Ende einer Phase und dem Beginn der nächsten eine Verzögerung besteht.
Weitere Vorteile finden Sie unter https://www.controlup.com/script-library-posts/analyze-logon-duration/.
Workspace Environment Management (WEM) bietet Ihnen eine Skriptaufgabenfunktion, die die Ausführung des Skripts für Sie automatisiert. Sie müssen lediglich eine Skriptaufgabe konfigurieren. Ein allgemeiner Arbeitsablauf sieht wie folgt aus:
- Vorbereitung relevanter Skripte
- Signieren Sie das Skript und überprüfen Sie die Signatur des Skripts.
- Eine Skriptaufgabe hinzufügen
- Konfigurieren Sie die Skriptaufgabe
- Bericht zur Aufgabenausführung anzeigen
Vorbereitung relevanter Skripte
Bereiten Sie eine Zip-Datei vor, die die folgenden zwei Skripts enthält:
-
Analyze_Logon_Duration-0531.ps1
. Sie können dieses Skript von https://www.controlup.com/script-library-posts/analyze-logon-duration/ erhalten. -
Run_Analyze_Logon_Duration.ps1
. Da das Skript für die Anmeldedauer den Domänennamen und den Benutzernamen erfordert, stellen wir ein Wrapper-Skript bereit, um ihm die Domäne und den Benutzernamen zu übergeben. Beispielsweise bieten wir eine Möglichkeit, den Domänennamen und den Benutzernamen unter dem Servicekonto abzurufen. Dieses Wrapper-Skript erfordert jedoch eine Benutzersitzung.
In diesem Beispiel enthält das Skript Run_Analyze_Logon_Duration.ps1
den folgenden Inhalt:
$User = tasklist /v /FI "IMAGENAME eq explorer.exe" /FO list | find "User Name:"
$User = $User.Substring(14)
$UserName = $User.Split("\")[1]
$DomainName = "$env:userdomain\$UserName"
&.\AnalyzeLogonDuration.ps1 -DomainUser $DomainUser
<!--NeedCopy-->
Unterzeichnen Sie das Skript
Die Skriptaufgabe muss mit vollem Zugriff ausgeführt werden. Sie müssen eine Signatur für das Einstiegspunktskript hinzufügen: RunAnalyzeLogonDuration.ps1
. Wir empfehlen Ihnen die Verwendung eines offiziellen Zertifikats. Wenn Sie über ein offizielles Zertifikat verfügen, können Sie die folgenden drei Schritte überspringen. Wenn Sie kein Zertifikat haben, können Sie für Ihren Test nur ein selbstsigniertes SSL-Zertifikat verwenden. Selbstsignierte SSL-Zertifikate sind riskant, da sie nicht durch eine Drittstelle (normalerweise ein vertrauenswürdiges SSL-Zertifikatsunternehmen) validiert werden.
Führen Sie beispielsweise die folgenden Schritte aus, um ein selbstsigniertes Zertifikat zu generieren und zu installieren.
-
Öffnen Sie PowerShell als Administrator. Klicken Sie mit der rechten Maustaste auf die Schaltfläche Start und wählen Sie
Windows PowerShell (Admin)
oderWindows Terminal (Admin)
. Führen Sie den Befehl aus, um ein Zertifikat zu erstellen. -
Verwenden Sie das Cmdlet
New-SelfSignedCertificate
, um ein selbstsigniertes Zertifikat zu erstellen. Geben Sie Parameter wie den Namen des Zertifikats (Anzeigename), seine Gültigkeitsdauer und seine Verwendung (KeyUsage) an.
$cert = New-SelfSignedCertificate -Type CodeSigningCert -DnsName "MyTestCertificate.com" -CertStoreLocation "cert:\LocalMachine\My" -NotAfter (Get-Date).AddYears(10) -KeyUsage DigitalSignature -FriendlyName "MyTestCertificate"
<!--NeedCopy-->
Dieser Befehl erstellt ein neues Zertifikat mit einer Gültigkeit von einem Jahr und beschriftet es als MyTestCertificate. Dieses Zertifikat wird im persönlichen Speicher des lokalen Computers gespeichert.
Wenn das Zertifikat erfolgreich erstellt wurde, werden die folgenden Details angezeigt:
- Exportieren Sie das Zertifikat bei Bedarf mit einem privaten Schlüssel. Um das Zertifikat zum Signieren zu verwenden, müssen Sie es mit seinem privaten Schlüssel exportieren. Dies ist erforderlich, um das Zertifikat auf einem anderen Computer zu verwenden oder den Schlüssel zu schützen.
$pwd = ConvertTo-SecureString -String "YourStrongPassword" -Force -AsPlainText
Export-PfxCertificate -cert $cert -FilePath "C:\MyTestCertificate.pfx" -Password $pwd
<!--NeedCopy-->
Ersetzen Sie IhrstarkesPasswort durch ein sicheres Passwort Ihrer Wahl. Dieser Befehl exportiert das Zertifikat in eine PFX-Datei, die den privaten Schlüssel enthält.
- Wenn Sie das Zertifikat bereits exportiert haben und es auf demselben oder einem anderen Computer installieren müssen, können Sie es wieder in den Zertifikatspeicher importieren. Kopieren Sie die *.pfx-Datei auf den Zielcomputer und verwenden Sie dann das Cmdlet
Import-PfxCertificate
.
$pwd = ConvertTo-SecureString -String "YourStrongPassword" -Force -AsPlainText
Import-PfxCertificate -FilePath "C:\MyTestCertificate.pfx" -CertStoreLocation "Cert:\LocalMachine\Root" -Password $pwd
<!--NeedCopy-->
- Mit Zertifikat signieren: Wenn Sie ein offizielles Zertifikat verwenden, müssen Sie den richtigen CN-Wert eingeben. In diesem Beispiel verwenden wir
MyTestCertificate.com
. Um das Zertifikat zu finden, verwenden Sie das Cmdlet$cert = ls Cert:\LocalMachine\Root| where {$_.subject -eq CN=MyTestCertificate.com"}
.
Verwenden Sie das Cmdlet Set-AuthenticodeSignature
, um ein PowerShell-Skript oder eine andere Datei zu signieren, die digitale Signaturen unterstützt.
Set-AuthenticodeSignature -FilePath "C:\logonDuration\RunLogOnduration.ps1" $cert -IncludeChain all -HashAlgorithm SHA1 -TimestampServer http://timestamp.digicert.com
<!--NeedCopy-->
Dieser Befehl wendet unter Verwendung des zuvor erstellten Zertifikats eine digitale Signatur auf RunLogOnduration.ps1
an.
- Überprüfen der Signatur: Um zu überprüfen, ob die Datei korrekt signiert wurde, können Sie den folgenden Befehl verwenden:
Get-AuthenticodeSignature -FilePath "C:\logonDuration\RunLogOnduration.ps1
<!--NeedCopy-->
Wenn die Signatur des Skripts gültig ist, werden die folgenden Details angezeigt:
Eine Skriptaufgabe hinzufügen
Die folgenden Informationen ergänzen die Anleitung unter Hinzufügen einer Skriptaufgabe. Um eine Aufgabe zu erstellen, die die Anmeldedauer analysiert, folgen Sie den allgemeinen Anweisungen in diesem Artikel und beachten Sie dabei die folgenden Details.
Fügen Sie unter Webkonsole > Skriptaufgaben die Aufgabe wie folgt hinzu:
-
Wählen Sie für Dateitypdie Option ZIPaus.
-
Erstellen Sie eine ZIP-Datei, die die folgenden beiden Skripte enthält.
AnalyzeLogonDuration.ps1
RunAnalyzeLogonDuration.ps1
-
Navigieren Sie zu der ZIP-Datei, um sie hochzuladen, und legen Sie das Skript
RunAnalyzeLogonDuration.ps1
als Einstiegspunkt fest. -
Die Option Berechtigungen gewähren wurde entwickelt, um eine zusätzliche Sicherheitsebene zum Schutz vor Angriffen von nicht vertrauenswürdigen Skripts hinzuzufügen, die andernfalls Sicherheitsrisiken darstellen könnten. Die Analyze_Logon_Duration-Aufgabe muss mit Vollzugriff ausgeführt werden.
Konfigurieren Sie die Skriptaufgabe
Die folgenden Informationen ergänzen die Anleitungen unter Konfigurieren einer Skriptaufgabe. Um die Aufgabe Analyze_Logon_Duration zu konfigurieren, folgen Sie den allgemeinen Anweisungen in diesem Artikel und beachten Sie dabei die folgenden Details.
-
Wechseln Sie zum entsprechenden Konfigurationssatz, navigieren Sie zu Einstellungen für Skriptaufgaben, und konfigurieren Sie die Aufgabe Analyze_Logon_Duration im Allgemeinen wie folgt:
- Mit WEM können Sie entscheiden, ob die Signatur vor dem Ausführen der Aufgabe überprüft werden soll. Die Signaturüberprüfung ist obligatorisch, wenn der Skriptaufgabe vollen Zugriff gewährt wird. Dies gewährleistet die Sicherheit, indem die Skripts vor einer Beeinträchtigung geschützt werden. Die Filter - und Task-Timeout-Einstellungen sind optional.
-
Konfigurieren Sie unter Trigger Trigger für die Aufgabe.
-
Verwenden Sie Trigger, um zu steuern, wann die Aufgabe ausgeführt wird. Sie können beispielsweise einen „geplanten“ Trigger erstellen, um die Ausführung der Aufgabe zu planen, und den Trigger dann mit der Aufgabe verknüpfen.
-
-
Wählen Sie unter Parameter aus, ob Parameter an die Aufgabe übergeben werden sollen. In diesem Beispiel können Sie diesen Schritt überspringen.
-
Konfigurieren Sie in Outputdie Einstellungen wie folgt:
Bericht zur Aufgabenausführung anzeigen
Nachdem der Task erfolgreich ausgeführt wurde, können Sie die Ergebnisse anzeigen, indem Sie die Berichte überprüfen. Weitere Informationen finden Sie unter Berichte. In diesem Beispiel sehen Sie den folgenden Bericht:
Sie können Filter verwenden, um Ihre Ansicht auf relevante Berichte einzugrenzen und diese dann zu exportieren. Informationen zum Exportieren von Berichten finden Sie unter Exportieren von Berichten. Basierend auf den exportierten Daten können Sie weitere Analysen durchführen.
Das Folgende ist ein Beispiel für die Visualisierung von Daten, die in Power BI von Interesse sind. Es zeigt eine Aufschlüsselung der Anmeldedauer des Benutzers.
Tipp
Die Optimierung der Anmeldeleistung ist eines der Highlights des Workspace Environment Management Service. Die Funktion kann den gesamten Anmeldeprozess ändern, um die Anmeldezeiten drastisch zu reduzieren. Weitere Informationen finden Sie unter Anmeldeoptimierung.