hap*_*joo 3 powershell windows-7
我打开 PS 或 PSISE,它们都是我不期望的约束语言模式。
我不知道为什么它是 ConstrainedLanguage。两天前,只是 PSISE 处于受约束模式,而 PS 处于全语言模式。现在在我重新启动计算机后,它们都是受约束的模式,这让我很困扰,因为我真的需要使用完整模式..
我试图以管理员身份启动 PS,但不起作用。尝试创建一个新的环境变量 __PSLockdownPolicy 并将其设置为 1 或 0,仍然无法正常工作。
我试过“powershell.exe -version 2”,它是fulllanguage,但版本2太低,我不能使用一些高级模块。
PS C:\windows\system32> $ExecutionContext.SessionState.LanguageMode
ConstrainedLanguage
PS C:\windows\system32> $ExecutionContext.SessionState.LanguageMode = 'fulllanguage'
Cannot set property. Property setting is supported only on core types in this language mode.
At line:1 char:1
+ $ExecutionContext.SessionState.LanguageMode = 'fulllanguage'
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : PropertySetterNotSupportedInConstrainedLanguage
Run Code Online (Sandbox Code Playgroud)
我希望我可以在全语言模式下打开 PS。感谢你的帮助!
我也遇到了这个问题,但就我而言,我是设置此策略进行测试的管理员,并且无法将其删除。我发现当我将它与 AppLocker 脚本规则结合使用时,它会将其设置为ConstrainedLanguage,因为:
从版本 5 开始,PowerShell 会根据脚本规则自动识别是否应切换到约束语言模式。为此,它会在 $env:temp 下创建一个模块和一个脚本(名称遵循 __PSSCRIPTPOLICYTEST_LQU1DAME.3DD.PS1 模式)并尝试执行它们。如果 AppLocker 或其他工具阻止此尝试,PowerShell 将在受限语言模式下启动。
来源:https ://4sysops.com/archives/mitigating-powershell-risks-with-constrained-language-mode/
锁定策略在 PowerShell v2 中不可用。您可以通过从管理命令提示符运行来检查是否已将组策略应用于您的计算机:
gpresult /v
Run Code Online (Sandbox Code Playgroud)
您可以搜索 PowerShell 的输出以查找可能由系统管理员应用于系统的 PowerShell 相关组策略。
你可以检查是否
$Env:__PSLockdownPolicy
Run Code Online (Sandbox Code Playgroud)
如果已配置,则设置为 8 = 全语言模式。这可以在注册表 HKLM\System\CurrentControlSet\Control\SESSION MANAGER\Environment__PSLockdownPolicy 中配置
如果找不到锁定 PowerShell 的原因,请启动ProcMon并设置过滤器:
并启动 PowerShell,您可以查看加载的键,并检查详细信息列中的值设置为什么。通过这种方法,您可以识别任何锁定 PowerShell 的注册表配置。如果锁定是由组策略应用的,您可以删除密钥以暂时启用它,但是一旦组策略重新应用,如果未从管理级别更改设置,则该设置将恢复。
| 归档时间: |
|
| 查看次数: |
26595 次 |
| 最近记录: |