Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dieser Anhang enthält kurze Antworten auf die Rezensionsfragen, die am Ende jedes Kapitels zu finden sind. Verwenden Sie sie, um Ihr Verständnis zu überprüfen und wichtige Konzepte zu stärken.
Kapitel 1 – Erste Schritte mit PowerShell
- Verwenden Sie die
$PSVersionTableautomatische Variable. - Nur wenn Sie die Benutzerkontensteuerung (User Account Control, UAC) für Aufgaben umgehen müssen, die eine Erhöhung der Berechtigungen auf dem lokalen Computer erfordern.
- Die Standardausführungsrichtlinie für Windows Clientsysteme ist
Restricted, wodurch das Ausführen von Skripts verhindert wird. - Verwenden Sie
Get-ExecutionPolicy, um die aktuelle Ausführungsrichtlinie zu ermitteln. - Verwenden Sie
Set-ExecutionPolicy(zum BeispielSet-ExecutionPolicy -ExecutionPolicy RemoteSigned).
Kapitel 2 – Das Hilfesystem
- Nein. Der DisplayName-Parameter von
Get-Serviceist benannt, nicht positional. -
Get-Processhat sechs Parametersätze. - Verwenden Sie
Get-Command -Noun EventLog. - Verwenden Sie
Get-Process -Name powershell. - Führen Sie
Update-Helpmit erhöhten Rechten in Windows PowerShell als Administrator aus, um die neuesten Hilfeinhalte herunterzuladen und zu installieren.
Kapitel 3: Entdecken von Objekten, Eigenschaften und Methoden
-
Get-Processerzeugt einSystem.Diagnostics.ProcessObjekt. - Leiten Sie den Befehl zu
Get-Member. - Überprüfen Sie, ob das Objekt über eine Methode verfügt, die die Aktion ausführt.
- Verwenden Sie den Parameter des
PassThruBefehls, falls er über einen verfügt. - Führen Sie den Befehl einmal aus und speichern Sie die Ergebnisse in einer Variablen, um das wiederholte Erzeugen großer Mengen an Ausgaben während des Prototypings zu vermeiden.
Kapitel 4 – One-Liners und die Pipeline
- Ein PowerShell-Einzeiler ist eine einzige fortlaufende Pipeline, unabhängig davon, wie viele physische Zeilen sie umfasst.
- Natürliche Zeilenumbrüche können bei Zeichen wie dem Pipe-Zeichen (
|), Komma (,), öffnenden Klammern ([ ]), geschweiften Klammern ({ }) und runden Klammern (( )) auftreten. - Sie sollten nach links filtern, um die Leistung und Effizienz zu verbessern, indem Sie die Menge der an der Pipeline übergebenen Daten reduzieren.
- Ein Befehl kann pipelineeingaben nach Wert (nach Typ) oder nach Eigenschaftsname akzeptieren.
- Da die meisten Inhalte in der PowerShell-Katalog von der Community bereitgestellt werden und möglicherweise nicht geprüft wurden, sollten diese vor der Verwendung überprüft und getestet werden.
Kapitel 5 - Formatierung, Aliase, Provider, Vergleich
- Da Formatierungs-Cmdlets Formatobjekte erzeugen, die die Pipeline unterbrechen und von den meisten anderen Befehlen nicht verwendet werden können.
- Verwenden Sie
Get-Alias -Name %, um das tatsächliche Cmdlet zu ermitteln. - Da Aliase die Lesbarkeit und Portabilität verringern, sind Skripte für andere schwieriger zu verstehen.
- Verwenden Sie
Get-ChildItem -Path HKLM:\, HKCU:\, um Registrierungsschlüssel in beiden Hives aufzulisten. - Der
-replaceOperator unterscheidet standardmäßig nicht zwischen Groß- und Kleinschreibung, während die.Replace()Methode dies tut.
Kapitel 6 – Ablaufsteuerung
-
ForEach-Objectverarbeitet Elemente einzeln aus der Pipeline (Streaming), während dieforeachAnweisung Elemente aus einer Sammlung verarbeitet, die bereits in den Arbeitsspeicher geladen wurde. - Eine
while-Schleife wertet ihre Bedingung vor der Ausführung aus, sodass sie möglicherweise überhaupt nicht läuft, wenn die Bedingung falsch ist, im Gegensatz zudo whileunddo until, die mindestens einmal laufen. -
breakbeendet die Schleife vollständig, währendcontinuedie aktuelle Iteration überspringt und mit der nächsten fortfährt.
Kapitel 7 – Arbeiten mit WMI
- WMI-Cmdlets (z. B.
Get-WmiObject) sind älter und verwenden DCOM, während CIM-Cmdlets (z. B.Get-CimInstance) neuer sind und WSMan standardmäßig verwenden. - WSMan (Windows Remoteverwaltung).
- CIM-Sitzungen ermöglichen die Wiederverwendung von Verbindungen, unterstützen alternative Anmeldeinformationen, verbessern die Leistung und vereinfachen die Verwaltung mehrerer Remoteverbindungen.
- Erstellen Sie eine Sitzungsoption mit
New-CimSessionOption, z. B. zum Verwenden von DCOM, und übergeben Sie sie anNew-CimSession, und verwenden Sie diese Sitzung mitGet-CimInstance. - Verwenden Sie
Remove-CimSession.
Kapitel 8 – PowerShell-Remoting
- Verwenden Sie
Enable-PSRemoting. - Verwenden Sie
Enter-PSSession. - Sie können eine persistente Sitzung anstelle des Computernamens und der Anmeldeinformationen für jeden Befehl verwenden.
- Ja, Sie können eine PowerShell-Sitzung (PSSession) in einem 1:1 interaktiven Remotingszenario verwenden.
- Lokales Ausführen von Cmdlets geben Liveobjekte mit Methoden zurück, während Remotebefehle deserialisierte Objekte ohne Methoden zurückgeben.
Kapitel 9: Funktionen
- Verwenden Sie
Get-Verb. - Fügen Sie das
[CmdletBinding()]Attribut der Funktion hinzu. - Wenn die Funktion Änderungen am Systemzustand vornimmt oder potenziell betroffene Aktionen ausführt.
- Geben Sie
-ErrorAction Stopan. - So dokumentieren Sie die Nutzung der Funktion, damit Sie und andere sie leicht verstehen und auf Hilfe mit
Get-Helpzugreifen können.
Kapitel 10 – Skriptmodule
- Erstellen Sie eine
.psm1Datei, und platzieren Sie Ihre Funktionen darin. - Durch die Verwendung genehmigter Verben wird Konsistenz gewährleistet, Warnungen vermieden und die Auffindbarkeit verbessert.
- Verwenden Sie
New-ModuleManifest. - Verwenden Sie
Export-ModuleMemberin der.psm1Datei oder geben Sie Funktionen imFunctionsToExportFeld der.psd1Datei an. - Das Modul muss sich in einem Ordner mit dem Namen des Moduls befinden, der sich in einem in
$env:PSModulePathaufgeführten Pfad befindet und die entsprechende Moduldatei (.psm1oder Manifest) enthält.
Endgültige Notizen
- Diese Antworten sind absichtlich prägnant, um wichtige Konzepte zu stärken.
- Überarbeiten Sie die Kapitel, um tiefer zu verstehen.
Zusammenarbeit auf GitHub
Die Quelle für diesen Inhalt finden Sie auf GitHub, wo Sie auch Issues und Pull Requests erstellen und überprüfen können. Weitere Informationen finden Sie in unserem Leitfaden für Mitwirkende.