在这个答案,Sam 表示,为了让 Windows 信任我的 Powershell 配置文件并执行,每次我打开 PowerShell 时,我都应该能够and click "Properties." At the bottom of the dialogue box click "Unblock"
;但当我这样做时,我根本看不到任何解除阻止复选框。
我也不想通过设置来运行任何旧脚本Set-ExecutionPolicy Unrestricted
。我只想在网络上的选定计算机上打开 PowerShell 提示符时自动加载 PowerShell 配置文件中的函数。
Instead when I load it I get the following error:
. : File \\redirected.domain.org\Redirected\yy-xxx\My Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 cannot
be loaded because running scripts is disabled on this system. For more information, see about_Execution_Policies at
http://go.microsoft.com/fwlink/?LinkID=135170.
At line:1 char:3
+ . '\\redirected.domain.org\Redirected\yy-xxx\My Documents\WindowsPowerShell\Microsof ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : SecurityError: (:) [], PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
这似乎是微软阻止您知道您正在使用计算机而不是一些被美化的纸张的方式。
有没有一种方法可以只打开 Powershell 即可加载我的 powershell 配置文件,而不会暴露其他漏洞?
答案1
我认为有两个问题。
您可以使用:
Set-ExecutionPolicy RemoteSigned
它告诉 PowerShell 执行本地脚本,但不执行任何非本地脚本。
非本地脚本可以是存储在本地计算机上的脚本,但已从互联网下载,并且:Zone.Identifier:$DATA 26
在其 NTFS 备用数据流中有一个。unblock
文件属性对话框中的将删除该数据流并使文件“真正”本地化。完成此操作后,您可以在 PowerShell 中运行它。
但您的个人资料似乎位于远程服务器上,因此它永远不是本地的。
您可以将配置文件复制到本地计算机,并确保它未被阻止,您可以Unblock-File
为此使用 cmdlet。
或者,您将配置文件保存在远程但使用数字签名对其进行签名,但为此您需要工作站信任的代码签名证书。