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

.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,就可以成功了!

时间: 2024-09-21 12:23:21

PowerShell脚本写的文件.ps1文件介绍_PowerShell的相关文章

Powershell脚本的4种执行权限介绍_PowerShell

Restricted--默认的设置, 不允许任何script运行 AllSigned--只能运行经过数字证书签名的script RemoteSigned--运行本地的script不需要数字签名,但是运行从网络上下载的script就必须要有数字签名 Unrestricted--允许所有的script运行 windows默认不允许任何脚本运行,你可以使用"Set-ExecutionPolicy"cmdlet来改变的你PowerShell环境.例如,你可以使用如下命令让PowerShell运

PowerShell脚本开发之收发TCP消息包_PowerShell

在上篇文章中,我们在PSNet包中创建了Test-TCPPort函数用于探测指定IP的指定端口是否开放,检测端口之后大多数人想到的可能就是需要通过PowerShell收发TCP消息包了,这篇文章里将会描述如何在PSNet包中创建针对TCP消息包的函数Receive-和TCPMessageSend-TCPMessage.为了承接上篇中我们创建的PSNet工具集的思路,在确定了函数的命名之后,创建上述两个函数对应的.ps1文件放置在$env:PSSpace/PSNet/TCPOp/中. 接下来在$e

PowerShell脚本开发之收发UDP消息包_PowerShell

在上篇文章中,在PSNet工具集中创建了Send-TCPMessage和Receive-TCPMessage两个函数实现了通过PowerShell收发TCP消息包的功能,有了TCP包的发送和接收,自然少不了UDP消息包的发送和接收,本文将会介绍通过PowerShell发送和接收UDP消息包的方法. 为了能跟之前的PSNet程序集匹配,继续基于此程序集进行扩展,在$env:PSSpace\PSNet下创建UDPOp目录,在其中创建Receive-UDPMessage.ps1和Send-UDPMes

PowerShell中常用的一些特殊运算符介绍_PowerShell

&,调用运算符. 语法:& <可执行文件路径> [<参数列表>] 举例: 复制代码 代码如下: $execPath="D:\Progra~1\FlashFXP\flashfxp.exe" $execArgs="-upload ftp://u:p@ip:21 " $execArgs=$execArgs+"-remotepath=`"/`" " $execArgs=$execArgs+&qu

PowerShell脚本实现创建桌面快捷方式的方法_PowerShell

本文介绍如何使用PowerShell将一个程序或文件,创建一个桌面快捷方式.在Windows系统里面,手工操作创建桌面快捷方式是很容易的,您只需要右键拖动文件到桌面,然后放开,在自动弹出的菜单中选择"在此创建快捷方式"即可完成,但要编程来实现这个效果就比较复杂了. 首先,我们要使用到COM组件,创建桌面快捷方式,最简单的办法是调用WScript.Shell这个COM组件.那么在PowerShell如何创建一个COM组件呢? 复制代码 代码如下: $shell = New-Object

PowerShell脚本中查看网卡的高级属性_PowerShell

复制代码 代码如下: PS>  Get-NetAdapterBinding  -Name 以太网 | Get-NetAdapterAdvancedProperty Name   DisplayName              DisplayValue        RegistryKeyword            RegistryValue ----   -----------              ------------        ---------------        

PowerShell脚本监控文件夹变化实例_PowerShell

本文介绍使用PowerShell来监视一个指定的文件夹,包括新建文件.删除文件.重命名文件等操作均会被监控或监视.本文使用了System.IO.FileSystemWatcher这个.NET对象.首先,我们来看看程序: 复制代码 代码如下: # 定义要监控的文件夹,这个文件夹必须先存在. $folder = 'D:\test' # 定义每次监控的间隔时间,这时定义为1000毫秒,即1秒 $timeout = 1000 # 创建文件系统监视对象 $FileSystemWatcher = New-O

PowerShell一次打开多个文件的方法_PowerShell

有时候,我们想通过PowerShell脚本一次性打开多个文件,尤其是相同后缀名的所有文件.我们来写一个函数,函数名为Open-File,通过传递一个*.后缀给此函数,实现一次性打开所有的此后缀的文件. 复制代码 代码如下: Function Open-File{    param(        [Parameter(Mandatory=$true)]        $path    )    $paths = Resolve-Path $path -ea SilentlyContinue   

传播恶意软件最有效帮手:超95%的PowerShell脚本都是恶意脚本

对很多IT专业人士来说,Powershell的确是Windows系统中一个相当强大的工具,而且微软也有意将PowerShell作为Windows系统的默认命令行工具.但赛门铁克最近的一份报告指出,超过95%的PowerShell脚本实际上都是恶意脚本. 赛门铁克在报告(传送门)中指出,绝大部分恶意PowerShell脚本都是扮演下载的角色.当然PowerShell脚本的终极目标还是要在设备上执行恶意代码,在整个网络传播恶意软件. 绝大多数PowerShell脚本是恶意脚本 由于PowerShel