about_Requires
Kurze Beschreibung
Verhindert, dass ein Skript ohne die erforderlichen Elemente ausgeführt wird.
Lange Beschreibung
Die #Requires
Anweisung verhindert, dass ein Skript ausgeführt wird, es sei denn, die PowerShell-Version, Module (und Version) oder Snap-Ins (und Version) und die Edition-Voraussetzungen sind erfüllt. Wenn die Voraussetzungen nicht erfüllt sind, führt PowerShell das Skript nicht aus oder stellt andere Laufzeitfeatures bereit, z. B. den Abschluss der Registerkarte.
Syntax
#Requires -Version <N>[.<n>]
#Requires -PSSnapin <PSSnapin-Name> [-Version <N>[.<n>]]
#Requires -Modules { <Module-Name> | <Hashtable> }
#Requires -PSEdition <PSEdition-Name>
#Requires -ShellId <ShellId> -PSSnapin <PSSnapin-Name> [-Version <N>[.<n>]]
#Requires -RunAsAdministrator
Weitere Informationen zur Syntax finden Sie unter ScriptRequirements.
Regeln für die Verwendung
Ein Skript kann mehrere #Requires
Anweisungen enthalten. Die #Requires
Anweisungen können in einer beliebigen Zeile in einem Skript angezeigt werden.
Das Platzieren einer #Requires
Anweisung in einer Funktion beschränkt den Umfang nicht. Alle #Requires
Anweisungen werden immer global angewendet und müssen erfüllt werden, bevor das Skript ausgeführt werden kann.
Warnung
Obwohl eine #Requires
Anweisung in einer zeile in einem Skript angezeigt werden kann, wirkt sich die Position in einem Skript nicht auf die Reihenfolge der Anwendung aus. Der globale Zustand, den die #Requires
Anweisung darstellt, muss vor der Skriptausführung erfüllt werden.
Beispiel:
Get-Module AzureRM.Netcore | Remove-Module
#Requires -Modules AzureRM.Netcore
Möglicherweise denken Sie, dass der obige Code nicht ausgeführt werden sollte, da das erforderliche Modul vor der #Requires
Anweisung entfernt wurde. Der Zustand musste jedoch erfüllt werden, #Requires
bevor das Skript sogar ausgeführt werden konnte. Dann hat die erste Zeile des Skripts den erforderlichen Zustand ungültig.
Parameter
-Assemblyassemblypfad <> | <. NET-Assemblyspezifikation>
Wichtig
Die -Assembly
Syntax ist veraltet. Es dient keine Funktion. Die Syntax wurde in PowerShell 5.1 hinzugefügt, der unterstützende Code wurde jedoch nie implementiert. Die Syntax wird weiterhin aus Gründen der Abwärtskompatibilität akzeptiert.
Gibt den Pfad zur Assembly-DLL-Datei oder einen .NET-Assemblynamen an. Der Assembly-Parameter wurde in PowerShell 5.0 eingeführt. Weitere Informationen zu .NET-Assemblys finden Sie unter Assemblynamen.
Zum Beispiel:
#Requires -Assembly path\to\foo.dll
#Requires -Assembly "System.Management.Automation, Version=3.0.0.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35"
-Version <N>[.<n>]
Gibt die Mindestversion von PowerShell an, die für das Skript erforderlich ist. Geben Sie eine Hauptversionsnummer und optionale Nebenversionsnummer ein.
Zum Beispiel:
#Requires -Version 5.1
-PSSnapin <PSSnapin-Name> [-Version <N>[.<n>]]
Gibt ein PowerShell-Snap-In an, das für das Skript erforderlich ist. Geben Sie den Snap-In-Namen und eine optionale Versionsnummer ein.
Zum Beispiel:
#Requires -PSSnapin DiskSnapin -Version 1.2
-Module-Modulname <> | <Hashtable>
Gibt PowerShell-Module an, die für das Skript erforderlich sind. Geben Sie den Modulnamen und eine optionale Versionsnummer ein.
Wenn sich die erforderlichen Module nicht in der aktuellen Sitzung befinden, importiert PowerShell sie. Wenn die Module nicht importiert werden können, löst PowerShell einen Beendigungsfehler aus.
Die #Requires
Anweisung lädt keine Klassen- und Enumerationsdefinitionen im Modul. Verwenden Sie die using module
Anweisung am Anfang ihres Skripts, um das Modul zu importieren, einschließlich der Klassen- und Enumerationsdefinitionen. Weitere Informationen finden Sie unter about_Using.
Geben Sie für jedes Modul den Modulnamen (<String>) oder eine Hashtabelle ein. Der Wert kann eine Kombination aus Zeichenfolgen und Hashtabellen sein. Die Hashtabelle verfügt über die folgenden Schlüssel.
ModuleName
- Erforderlich . Gibt den Modulnamen an.GUID
- Optional Gibt die GUID des Moduls an.- Es ist auch erforderlich , mindestens eine der drei folgenden Tasten anzugeben.
ModuleVersion
- Gibt eine mindestens akzeptable Version des Moduls an.MaximumVersion
- Gibt die maximal zulässige Version des Moduls an.RequiredVersion
- Gibt eine genaue, erforderliche Version des Moduls an. Dies kann nicht mit den anderen Versionsschlüsseln verwendet werden.
Hinweis
RequiredVersion
wurde in Windows PowerShell 5.0 hinzugefügt.
MaximumVersion
wurde in Windows PowerShell 5.1 hinzugefügt.
Zum Beispiel:
Erfordert, dass Hyper-V
(Version 1.1
oder höher) installiert ist.
#Requires -Modules @{ ModuleName="Hyper-V"; ModuleVersion="1.1" }
Erfordert, dass Hyper-V
(nur Version 1.1
) installiert ist.
#Requires -Modules @{ ModuleName="Hyper-V"; RequiredVersion="1.1" }
Erfordert, dass Hyper-V
(Version 1.1
oder kleiner) installiert ist.
#Requires -Modules @{ ModuleName="Hyper-V"; MaximumVersion="1.1" }
Erfordert, dass jede Version von PSScheduledJob
und PSWorkflow
, installiert ist.
#Requires -Modules PSWorkflow, PSScheduledJob
Stellen Sie bei Verwendung des RequiredVersion
Schlüssels sicher, dass die Versionszeichenfolge exakt mit der gewünschten Versionszeichenfolge übereinstimmt.
Get-Module Hyper-V
ModuleType Version Name ExportedCommands
---------- ------- ---- ------------------
Binary 2.0.0.0 hyper-v {Add-VMAssignableDevice, ...}
Das folgende Beispiel schlägt fehl, da 2.0.0 nicht exakt mit 2.0.0.0 übereinstimmt.
#Requires -Modules @{ ModuleName="Hyper-V"; RequiredVersion="2.0.0" }
-PSEdition <PSEdition-Name>
Gibt eine PowerShell-Edition an, die das Skript erfordert. Gültige Werte sind Core für PowerShell und Desktop für Windows PowerShell.
Zum Beispiel:
#Requires -PSEdition Core
-ShellId
Gibt die Shell an, die das Skript erfordert. Geben Sie die Shell-ID ein. Wenn Sie den ShellId-Parameter verwenden, müssen Sie auch den PSSnapin-Parameter einschließen.
Sie finden die aktuelle ShellId , indem Sie die $ShellId
automatische Variable abfragen.
Zum Beispiel:
#Requires -ShellId MyLocalShell -PSSnapin Microsoft.PowerShell.Core
Hinweis
Dieser Parameter ist für die Verwendung in Minishells vorgesehen, die veraltet sind.
-RunAsAdministrator
Wenn dieser Switch-Parameter Zu Ihrer #Requires
Anweisung hinzugefügt wird, gibt er an, dass die PowerShell-Sitzung, in der Sie das Skript ausführen, mit erhöhten Benutzerrechten gestartet werden muss. Der RunAsAdministrator-Parameter wird auf einem Nicht-Windows-Betriebssystem ignoriert. Der RunAsAdministrator-Parameter wurde in PowerShell 4.0 eingeführt.
Zum Beispiel:
#Requires -RunAsAdministrator
Beispiele
Das folgende Skript enthält zwei #Requires
Anweisungen. Wenn die in beiden Anweisungen angegebenen Anforderungen nicht erfüllt sind, wird das Skript nicht ausgeführt. Jede #Requires
Anweisung muss das erste Element in einer Zeile sein:
#Requires -Modules PSWorkflow
#Requires -Version 3
Param
(
[parameter(Mandatory=$true)]
[String[]]
$Path
)
...
Weitere Informationen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für