Powershellで制約付き言語モードはデフォルトで有効になっていますか?最新のWindows 10 FCUビルド、最新
__PSLockdownPolicy環境変数を使用してこれを制御することもできます。値が0の場合はFullLanguageになり、値が4の場合はConstrainedLanguageにシフトします。
いいえ、プロパティを設定するだけで、PowerShellセッションを制約付き言語モードにすることができます。
PS C:\> $ExecutionContext.SessionState.LanguageMode
FullLanguage
PS C:\> $ExecutionContext.SessionState.LanguageMode = "ConstrainedLanguage"
PS C:\> $ExecutionContext.SessionState.LanguageMode
ConstrainedLanguage
PS C:\> [System.Console]::WriteLine("Hello")
Cannot invoke method. Method invocation is supported only on core types in this language mode.
At line:1 char:1
+ [System.Console]::WriteLine("Hello")
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : MethodInvocationNotSupportedInConstrainedLanguage
詳細については、次の公式ドキュメントをご覧ください:PowerShell制約付き言語とは? https://blogs.msdn.Microsoft.com/powershell/2017/11/02/powershell-constrained-language-mode/