这个提示说明你当前系统的 PowerShell 处于受限语言模式(Constrained Language Mode),而你正在运行的脚VBS需要全语言模式(FullLanguage Mode)才能正常执行。
你可以尝试以下几种最常用的解决方法:
方法一:检查并删除环境变量(最常见原因)很多系统优化工具或安全软件会通过添加环境变量来限制 PowerShell。
同时按下键盘上的 Win + R 键,输入 sysdm.cpl,回车打开“系统属性”。
点击顶部的 高级 选项卡,然后点击右下角的 环境变量。
在下方的 系统变量 列表中,寻找名为 __PSLockdownPolicy 的变量。
如果找到了这个变量,选中它并点击 删除。
点击“确定”保存所有窗口,然后重启电脑让设置生效,再重新运行你的程序。
方法二:通过注册表解除限制如果环境变量里没有,可能是注册表或组策略进行了限制。
同时按下 Win + R 键,输入 regedit,回车打开注册表编辑器。
复制并粘贴以下路径到顶部的地址栏,然后回车:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
在右侧列表中检查是否存在 __PSLockdownPolicy 键值。
如果有,右键点击它并选择删除。
重启电脑。
方法三:临时通过命令解除(如果是由某些临时机制触发)如果上述两处都没有找到该变量,可以尝试以管理员身份打开 PowerShell,看看能否手动修改:
鼠标右键点击 Windows 开始图标,选择 终端(管理员) 或 Windows PowerShell(管理员)。
输入以下命令并回车,查看当前的语言模式:
$ExecutionContext.SessionState.LanguageMode
如果显示 ConstrainedLanguage,说明确实被限制了。
尝试在当前窗口临时将其改为全语言模式(注意:如果系统开启了 AppLocker 或 WDAC 强限制,此命令可能会报错或无效):
$ExecutionContext.SessionState.LanguageMode = "FullLanguage"
如果运行成功没有报错,可以尝试直接在这个 PowerShell 窗口中拖入并运行你的安装脚本。
补充提示如果以上方法都无法解决,说明你的电脑开启了 Windows Defender 应用程序控制 (WDAC) 或 AppLocker(应用程序控制策略)。如果是自己安装的第三方杀毒软件/安全卫士开启了“核晶防护”或“系统加固”功能,可以尝试暂时退出或关闭防病毒软件的实时保护再试。