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 analyzeLogonDuration.ps1
verwenden. 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:
- Bereiten Sie relevante Skripte vor.
- Die Signatur des Skripts ist obligatorisch, wenn der Skriptaufgabe vollständiger Zugriff gewährt wird.
- Fügen Sie eine Skriptaufgabe hinzu.
- Konfigurieren Sie die Skriptaufgabe.
- Zeigen Sie den Bericht zur Aufgabenausführung an.
Vorbereitung relevanter Skripte
Bereiten Sie eine Zip-Datei vor, die die folgenden zwei Skripts enthält:
-
analyzeLogonDuration.ps1
. Sie können dieses Skript von https://www.controlup.com/script-library-posts/analyze-logon-duration/ erhalten. -
runLogonDuration.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 runLogonDuration.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: runLogonDuration.ps1
. Wir empfehlen Ihnen, ein offizielles Zertifikat zu verwenden. Wenn Sie ein offizielles Zertifikat haben, können Sie Schritt 1 bis Schritt 3ü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 validiert werden. Dabei handelt es sich in der Regel um ein vertrauenswürdiges SSL-Zertifikatsunternehmen.
Schritt 1: Erstellen Sie ein selbstsigniertes Zertifikat
- Ö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)
. - 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:
Schritt 2: Exportieren des selbstsignierten Zertifikats
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. Führen Sie den folgenden Befehl aus:
$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.
Schritt 3: Installieren des Zertifikats
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 Datei *.pfx
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-->
Schritt 4: Signieren Sie eine Datei mit dem Zertifikat
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"}
<!--NeedCopy-->
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.
Schritt 5: Ü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
runLogonDuration.ps1
-
Navigieren Sie zur ZIP-Datei, um sie hochzuladen, und legen Sie das Skript
runLogonDuration.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 Ausgabedie Einstellungen wie folgt. Legen Sie den Wert des regulären Ausdrucks fest:
((?<Key>[a-zA-Z]+\s+)+(?<value>\d+.\d+)\s) <!--NeedCopy-->
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.