Erstellt und erzwingt Codierungsregeln in Ausdrücken, Skripts und Skriptblöcken. (Set-StrictMode)

   

NAME
Set-StrictMode

# ÜBERSICHT
Erstellt und erzwingt Codierungsregeln in Ausdrücken, Skripts und Skriptblöcken.

# SYNTAX
Set-StrictMode -Off [<CommonParameters>]

Set-StrictMode -Version <Version> [<CommonParameters>]

# BESCHREIBUNG
Mit dem Cmdlet "Set-StrictMode" wird der Strict-Modus für den aktuellen Bereich (und alle untergeordneten Bereiche) aktiviert und deaktiviert. Wenn der Strict-Modus aktiviert ist, wird von Windows PowerShell ein Fehler mit Abbruch generiert, falls der Inhalt eines Ausdrucks, Skripts oder Skriptblocks gegen grundlegende empfohlene Codierungsregeln verstößt.

Mit dem Version-Parameter können Sie die Codierungsregeln bestimmen, die erzwungen werden.

Im Gegensatz zum Cmdlet "Set-PSDebug" wirkt sich Set-StrictMode nur auf den aktuellen Bereich einschließlich der untergeordneten Bereiche aus und kann deshalb in einem Skript oder in einer Funktion verwendet werden, ohne den globalen Bereich zu beeinflussen.

Wenn Set-StrictMode deaktiviert ist, wird für nicht initialisierte Variablen (Version 1) je nach Typ der Wert 0 (null) oder "$null" zugrunde gelegt. Verweise auf nicht vorhandene Eigenschaften geben "$null" zurück, und die Ergebnisse einer ungültigen Funktionssyntax sind fehlerspezifisch. Unbenannte Variablen sind nicht zulässig.

# PARAMETER
-Off [<SwitchParameter>]
Deaktiviert den Strict-Modus. Mit diesem Parameter wird auch "Set-PSDebug -Strict" deaktiviert.

Erforderlich? true
Position? named
Standardwert Keiner
Pipelineeingaben akzeptieren?false
Platzhalterzeichen akzeptieren?false

-Version <Version>
Gibt die Bedingungen an, die im Strict-Modus einen Fehler verursachen. Dieser Parameter ist erforderlich.

Die gültigen Werte sind "1.0", "2.0" und "Latest". In der folgenden Liste werden die Auswirkungen der einzelnen Werte angezeigt.

1.0
- Verhindert Verweise auf nicht initialisierte Variablen, mit Ausnahme nicht initialisierter Variablen in Zeichenfolgen.

2.0
- Verhindert Verweise auf nicht initialisierte Variablen (einschließlich nicht initialisierter Variablen in Zeichenfolgen).
- Verhindert Verweise auf nicht vorhandene Eigenschaften eines Objekts.
- Verhindert Funktionsaufrufe mit der Syntax für aufrufende Methoden.
- Verhindert eine Variable ohne Namen (${}).

Latest:
- Wählt die neueste (strengste) Version aus, die verfügbar ist. Mit diesem Wert können Sie sicherstellen, dass, auch wenn neue Versionen von Windows PowerShell hinzugefügt werden, die strengste verfügbare Version verwendet wird.

Erforderlich? true
Position? named
Standardwert Keiner
Pipelineeingaben akzeptieren?false
Platzhalterzeichen akzeptieren?false

<CommonParameters>
Dieses Cmdlet unterstützt folgende allgemeine Parameter: "Verbose", "Debug",
"ErrorAction", "ErrorVariable", "WarningAction", "WarningVariable",
"OutBuffer" und "OutVariable". Weitere Informationen
erhalten Sie mit dem Befehl "get-help about_commonparameters".

# EINGABEN
Keiner
Eingaben können nicht über die Pipeline an dieses Cmdlet übergeben werden.

# AUSGABEN
Keiner
Dieses Cmdlet gibt keine Ausgabe zurück.

# HINWEISE

Set-StrictMode ähnelt dem Strict-Parameter von Set-PSDebug. "Set-Strictmode -version 1" entspricht "Set-PSDebug -strict" mit der Ausnahme, dass sich Set-PSDebug auf alle Bereiche auswirkt. Set-StrictMode wirkt sich nur auf den festgelegten Bereich sowie auf die untergeordneten Bereiche aus. Weitere Informationen zu Bereichen in Windows PowerShell finden Sie unter "about_Scopes".

# BEISPIEL 1

C:\PS>set-strictmode -version 1.0

C:\PS> $a -gt 5
False
The variable $a cannot be retrieved because it has not been set yet.
At line:1 char:3
+ $a <<<< -gt 5
+ CategoryInfo : InvalidOperation: (a:Token) [], RuntimeException
+ FullyQualifiedErrorId : VariableIsUndefined

Beschreibung
-----------
Mit diesem Befehl wird der Strict-Modus aktiviert und auf Version 1.0 festgelegt. Verweise auf Variablen, die nicht initialisiert wurden, schlagen daher fehl.

In der Beispielausgabe werden die Auswirkungen der Version 1.0 im Strict-Modus dargestellt.

# BEISPIEL 2

C:\PS># set-strictmode -version 2.0

# Strict mode is off by default.

C:\PS> function add ($a, $b) {$a + $b}
C:\PS> add 3 4
7
C:\PS> add(3,4)
3
4

C:\PS> set-strictmode -version 2.0

C:\PS> add(3,4)

The function or command was called like a method. Parameters should be separated by spaces, as described in 'Get-Help about_Parameter.'
At line:1 char:4
+ add <<<< (3,4)
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : StrictModeFunctionCallWithParens

C:\PS> set-strictmode -off

C:\PS> $string = "This is a string".
C:\PS> $string.Month
C:\PS>

C:\PS> set-strictmode -version 2.0

C:\PS> $string = "This is a string".
C:\PS> $string.Month
Property 'month' cannot be found on this object; make sure it exists.
At line:1 char:9
+ $string. <<<< month
+ CategoryInfo : InvalidOperation: (.:OperatorToken) [], RuntimeException
+ FullyQualifiedErrorId : PropertyNotFoundStrict

Beschreibung
-----------
Mit diesem Befehl wird der Strict-Modus aktiviert und auf Version 2.0 festgelegt. Windows PowerShell löst daher einen Fehler aus, wenn für einen Funktionsaufruf Methodensyntax (Klammern und Kommas) verwendet oder wenn auf nicht initialisierte Variablen oder nicht vorhandene Eigenschaften verwiesen wird.

In der Beispielausgabe werden die Auswirkungen der Version 2.0 im Strict-Modus dargestellt.

Ohne die Version 2.0 im Strict-Modus wird der Wert "(3,4)" als einzelnes Arrayobjekt interpretiert, dem nichts hinzugefügt wird. Mit Version 2.0 im Strict-Modus wird der Wert ordnungsgemäß als fehlerhafte Syntax zum Senden zweier Werte interpretiert.

Ohne die Version 2.0 wird durch den Verweis auf die nicht vorhandene Month-Eigenschaft einer Zeichenfolge nur NULL zurückgegeben. Mit der Version 2.0 wird der Wert ordnungsgemäß als Verweisfehler interpretiert.

VERWANDTE LINKS
Online version: http://go.microsoft.com/fwlink/?LinkID=113450 (möglicherweise auf Englisch)
about_Debuggers
about_Scopes
Set-PSDebug

C:\Windows>powershell get-help New-Module -full

ColorConsole [Version 1.7.1000] PowerShell 2.0-Export
Microsoft Windows [Version 6.1.7600]
Copyright (c) 2014 Microsoft Corporation.

OS: Windows 10, 8.1, 8, 7, Vista / Windows Server 2016, 2012, 2008
»»»» ColorConsole









... Windows-10




Windows 10 How To

... Windows 10 FAQ
... Windows 10 How To




PowerShell: Erstellt und erzwingt Codierungsregeln in Ausdrücken, Skripts und Skriptblöcken.

HTTP: ... PS_Windows/de/Set-StrictMode.htm
0.421
15404

How to use the search box in the Windows Explorer file search 8.1, 10, 11!

 /

Chrome via desktop and quick launch bar as shortcut under Windows 10/11!

 /

Windows Programm startet immer als Administrator? (Admin Modus)

 /

Add a little winter magic feeling on your Desktop!

 /

🎨 RGB Werte in die Zwischenablage kopieren!

 /

Don't open automatically after Save to PDF?

 /

Programme Starten bei Portable und Installierten Programmen?

 /

Windows-10 deaktivieren der automatischen Verbindungen zu WiFi (Wireless, WLAN)?

 /

Change the address bar in Explorer-View to Classic or modern Windows 10!

 /

Digitale Kalender-Tagesuhr hilft Menschen, die Zeitorientierung zu behalten und unabhängiger zu sein!

 /

PDF speichern Fehler unter Windows 11, 10 OS, warum?

 /

I just want to extract the images from PowerPoint and not from Excel!

 /