Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将PowerShell模式从受约束模式更改为fulllanguage模式?_Powershell_Windows 7 - Fatal编程技术网

如何将PowerShell模式从受约束模式更改为fulllanguage模式?

如何将PowerShell模式从受约束模式更改为fulllanguage模式?,powershell,windows-7,Powershell,Windows 7,我打开PS或PSISE,它们都是我不期望的解释语言模式 我不知道为什么它是受限语言。两天前,只是PSISE处于constrainedmode,PS处于fulllanguage模式。现在,在我重新启动计算机后,它们都是constrainedmode,这让我非常困扰,因为我真的需要使用完整模式 我试着以管理员的身份启动PS,但不工作。尝试创建新的环境变量_PSLockdownPolicy并将其设置为1或0,但仍不起作用 我尝试了“powershell.exe-版本2”,它是fulllanguage,

我打开PS或PSISE,它们都是我不期望的解释语言模式

我不知道为什么它是受限语言。两天前,只是PSISE处于constrainedmode,PS处于fulllanguage模式。现在,在我重新启动计算机后,它们都是constrainedmode,这让我非常困扰,因为我真的需要使用完整模式

我试着以管理员的身份启动PS,但不工作。尝试创建新的环境变量_PSLockdownPolicy并将其设置为1或0,但仍不起作用

我尝试了“powershell.exe-版本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


我希望我可以在全语言模式下打开PS。谢谢你的帮助

锁定策略在PowerShell v2中不可用。通过从管理命令提示符运行,您可以检查是否已将组策略应用于计算机:

gpresult /v 
您可以搜索PowerShell的输出,以查找系统管理员可能应用于系统的与PowerShell相关的组策略

你可以检查一下

$Env:__PSLockdownPolicy
如果已配置,则设置为8=完整语言模式。 这可以在注册表HKLM\System\CurrentControlSet\Control\SESSION MANAGER\Environment\Uuu PSLockdownPolicy中配置

如果无法找到锁定PowerShell启动的原因并设置筛选器:

  • 操作是RegQueryValue包含
  • 进程名称为PowerShell.exe Include
  • 进程名称为PowerShell_Ise.exe包括
  • 结果就是成功

然后启动PowerShell,您可以查看已加载的键,并查看“详细信息”列中的值设置。通过这种方法,您可以识别锁定PowerShell的任何注册表配置。如果锁定是由组策略应用的,您可以删除密钥以临时启用它,但一旦组策略重新应用,如果设置没有从管理级别更改,则设置将返回。

我也遇到了此问题,但在我的情况下,我是将此策略设置为测试的管理员,无法将其删除。我发现,当我将其与AppLocker脚本规则结合使用时,它将其设置为
ConstrainedLanguage
,原因如下:

自版本5以来,PowerShell自动识别是否应该 根据脚本规则切换到受限语言模式。为此,, 它创建一个模块和一个脚本(名称遵循模式) __PSSCRIPTPOLICYTEST_lqu1ame.3DD.PS1)并尝试执行它们。如果AppLocker或其他工具阻止此尝试, PowerShell以受限语言模式启动


来源:

与管理员交谈。听起来您的系统被故意配置为处于约束模式。对于任何正在寻找类似问题答案的人,我深表歉意。但我的问题不是因为系统或计算机,只是管理员将语言模式设置为约束模式,与我的计算机或系统无关。无论如何,谢谢你的帮助~ha!这是有道理的。。。谢谢你说得很清楚![grin]原来是我的管理员将语言模式设置为约束模式。这与我的电脑或系统无关。无论如何,感谢您的帮助:)是的,这就是为什么我说要检查gpresult,因为它将显示管理员是否正在配置它。如果您有本地管理员,您可以通过注册表编辑器至少暂时更改策略,但它将每隔几个小时重新应用一次,可能会被视为违反公司策略。可以为策略创建技术豁免,但这取决于管理员。