2

私の PowerShell プロファイルには、Set-StrictMode -Version 2.0. 残念ながら、strict モードを有効にすると正しく動作しないスクリプト (およびモジュール) がいくつかあります。

Set-StrictMode -Offスクリプトの先頭に配置するか、不適切な動作をするモジュールを使用するスクリプトの先頭に配置することで、これを修正しようとしました。残念ながら効果はないようです。

PowerShell で厳密モードを一時的に無効にするにはどうすればよいですか?

詳細:これは特に PsGet で発生します。57 号を参照してください。Set-StrictMode -Version 2.0プロフィールにあります。スクリプトからPsGet を使用しようとするInstall-Moduleと、「プロパティ 'Verb' がこのオブジェクトに見つかりません」というエラーが表示されます。

Set-StrictMode -Offこれは、スクリプトの先頭に置いても発生します。スクリプトを実行Set-StrictMode -Offする前にコマンド ラインで実行すると、エラーは発生せず、スクリプトは正常に動作します。

Strict モードを有効にする前に、PsGet をプロファイルにインポートします。

4

1 に答える 1

1

Matt がコメントで述べているように、この問題が再現されることはありません。詳細を教えていただけますか?

の内容StrictModeTest.ps1:

Set-StrictMode -Off

# variable $x doesn't exist, should trigger strictmode error
"Value is [$($x.Path)]"

テスト (PSv3):

PS C:\> Set-StrictMode -Version 2.0
PS C:\> .\StrictModeTest.ps1
Value is []

行をコメントアウトするとSet-StrictMode -Off、予想されるエラーが発生します。

PS C:\> .\StrictModeTest.ps1
The variable '$x' cannot be retrieved because it has not been set.
At C:\StrictModeTest.ps1:4 char:14
+ "Value is [$($x.Path)]"
+              ~~
    + CategoryInfo          : InvalidOperation: (x:String) [], RuntimeException
    + FullyQualifiedErrorId : VariableIsUndefined

Value is []
于 2013-02-26T20:58:14.560 に答える