PowerShell脚本写的文件.ps1文件介绍

(编辑:jimmy 日期: 2025/1/2 浏览:2)

.ps1文件是PowerShell写好的脚本文件。在Windows系统中,默认情况下是不允许执行.ps1文件的,那么怎么才能让系统允许执行.ps1文件呢?

什么是“.ps1”文件?

这个是PowerShell写的脚本文本,你可以在记事本中写一段PowerShell代码,然后将其保存为“xxx.ps1”,后面要使用它的时候,双击即可运行了。这有点像批处理的“.bat”文件,也有点像VBScript的“.vbs”文件。这些都是Windows的脚本文件。

如何执行“.ps1”文件?

接下来大家会问,那我们就双击它运行好了,还有什么好说的吗?当然要说。我们想得很美,双击一下就执行了,但是Windows系统默认是不允许执行.ps1文件的,所以你得往下看。

执行不成功的解决办法

1、将PowerShell的脚本内容保存到一个.ps1为后缀的文件中。
2、双击执行此ps1文件很有可能无法执行,提示:无法加载文件 D:\PowerShell\test\myfirst1.ps1,因为在此系统中禁止执行脚本。
3、运行get-executionpolicy,如果结果是Restricted,那表示禁止执行脚本。
4、执行如下命令,降低系统的安全性,允许执行脚本:set-executionpolicy -executionpolicy unrestricted

关于执行策略

这里有一个executionpolicy,翻译过来就是执行策略。Windows对PowerShell脚本默认的执行策略是:不允许执行,即Restricted。把它改成unrestricted自然就可以执行了。但微软给出的Best Practise(“最佳实践”)是RemoteSigned,这个级别比UnRestricted要高一点,不是什么程序都能执行。据我简单的了解,RemoteSigned是要求远程下载的ps1脚本文件必须是签名的才可以执行。至于我们在本机上自写的脚本程序,那是没有区别,都可以执行的。

修改执行策略需要权限

另外需要说明的是,如果是在Win7、Win8、Windows 2008、Windows 2012等系统上,且不是使用administrator账号来执行这个set-executionpolicy语句,将会报错,错误如下:
Set-ExecutionPolicy : 对注册表项“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell”的访问被拒绝。

这时候小编很疑惑,我使用账号虽然不是administrator,但也是administrators组的,为什么会没有权限呢?不管了,在注册表中,找到这个键,然后点右键选择“权限”,然后给当前登录系统的账号加一个“完全控制”的权限(只有“只读”和“完全控制”两个权限,所以就选“完全控制”了)。然后,再重新执行set-executionpolicy -executionpolicy unrestricted,就可以成功了!

一句话新闻

高通与谷歌联手!首款骁龙PC优化Chrome浏览器发布
高通和谷歌日前宣布,推出首次面向搭载骁龙的Windows PC的优化版Chrome浏览器。
在对骁龙X Elite参考设计的初步测试中,全新的Chrome浏览器在Speedometer 2.1基准测试中实现了显著的性能提升。
预计在2024年年中之前,搭载骁龙X Elite计算平台的PC将面世。该浏览器的提前问世,有助于骁龙PC问世就获得满血表现。
谷歌高级副总裁Hiroshi Lockheimer表示,此次与高通的合作将有助于确保Chrome用户在当前ARM兼容的PC上获得最佳的浏览体验。