Windows 7 Powershell 配置文件不起作用-设置不受限制后

Windows 7 Powershell 配置文件不起作用-设置不受限制后

我刚刚升级到 Windows 7,我想启动并运行我的 Powershell 配置文件。

我加载了 PS,并使用“以管理员身份运行”权限将执行策略设置为不受限制,然后将我的配置文件放在适当的位置。我重新加载了 PS,但出现错误。

获取执行策略返回受限。

但是,注册表检查返回不受限制。

重启后,情况依然一样。

进一步检查后,我发现在管理员模式下,我拥有不受限制的权力,但作为普通用户,我拥有受到限制的权力。

今天在 XP 中做了一些 Powershell 工作后,我注意到在 XP 中,Powershell 始终处于管理员模式。显然它在 Win7 上变成了用户模式。啊!

如何让我的配置文件脚本在常规用户模式下执行?

答案1

我没有遇到任何问题。以下是我在一台非常干净的 Windows 7 机器上测试的结果:

  • 以管理员身份登录
  • 以管理员身份运行 PowerShell
  • Set-ExecutionPolicy RemoteSigned
  • 以访客身份登录
  • 运行 PowerShell
  • Get-ExecutionPolicy

返回RemoteSigned

答案2

我会右键单击 powershell,转到兼容性选项,选择“以管理员身份运行此程序”

如果使用脚本,你可以使用开始++的 sudo 实现。有一种方法可以在不使用工具的情况下完成此操作,但使用该工具更简单,而且它还添加了一些其他有用的工具。

答案3

您是从命令行还是从开始菜单运行它。对我来说,只有从开始菜单链接运行 powershell 时,我才会获得“不受限制”的策略。

从命令行或其他程序启动它,我只能获得“受限”策略。除了从开始菜单链接运行 powershell 之外,找不到此问题的任何解决方法...

答案4

这对我来说暂时有效,直到我重新启动计算机,那时我必须重新运行脚本。我知道作用域 CurrentUser 和 LocalMachine 写入注册表项,因此您会认为该设置是持久的/永久的,但是,在我的域上重新启动后,它似乎恢复为默认的 AllSigned。

# SetExecutionPolicyToRemoteSigned.ps1
# Not persistent.  Need to run this after every server reboot.
Write-Output "Setting local Powershell policy to RemoteSigned"
Write-Output ""

Set-ExecutionPolicy -scope CurrentUser Undefined -Force
#Set-ExecutionPolicy -scope Process Undefined -Force
Set-ExecutionPolicy -scope LocalMachine Undefined -Force

Set-ExecutionPolicy -scope CurrentUser RemoteSigned -Force
#Set-ExecutionPolicy -scope Process RemoteSigned -Force
Set-ExecutionPolicy -scope LocalMachine RemoteSigned -Force

Write-Output "Finished."

Get-ExecutionPolicy -list
Start-Sleep -s 10

相关内容