Powershell脚本只需运行脚本文件即可完成任务。这提供了一种易于使用的方法来反复运行相同的命令。脚本还用于轻松地与其他系统管理员共享经验。脚本有时可能需要运算符的参数。在本教程中,我们将研究Powershell脚本的不同方面和使用形式。
使用执行策略启用Powershell脚本执行
安全是当今的一个重要话题。微软从以前的错误中学到了很多东西。它为其强大的脚本引擎Powershell创建了一些安全机制。
打印当前执行策略
Get-ExecutionPolicy
用于列出执行策略的当前状态。我们会像下面这样。
PS> Get-ExecutionPolicy

我们可以看到,当前的执行策略是 Restricted
这意味着我们不能运行下载的PowerShell脚本。
启用执行策略
我们可以使用命令更改PowerShell执行策略 Set-ExecutionPolicy
通过指定新策略名称。我们将通过指定名为 Unrestricted
. 为了更改当前shell,它应该具有管理员权限。如果脚本在系统上被禁用,这将运行脚本。
PS> Set-ExecutionPolicy Unrestricted

我们只需回答 Y
确认问题。
创建简单的PowerShell脚本
为了在测试中使用它,我们将创建一个名为 helloworld.ps1
包含以下脚本。 ps1
用于指定PowerShell脚本。
echo "Hello World"
在当前目录中运行脚本
我们可以简单地运行驻留在当前目录中的脚本。在本例中,我们将运行 helloworld.ps1
. .
是当前工作目录。
PS> .helloworld.ps1
带空格的路径
空格在Powershell中有不同的含义,带有空格的路径、文件或命令名必须用双引号括起来 "
或 '
单引号。在本例中,我们有一个名为 hello world.ps1
. 我们看得出来 你好 和 世界 用空间隔开。为了调用这个Powershell脚本,我们需要使用 "
它将围绕 把名字写得一清二楚。
PS> ".hello world.ps1"
如果不使用下面的单引号或双引号,我们将得到CommandNotFound类型的“未识别的cmdlet、函数、脚本文件或可操作程序错误名称”。
PS> .hello wordl.ps1

使用Invoke命令Commandlet
Powershell提供 Invoke-Command
用于命令调用的commandlet。我们可以用这个来做脚本调用。更详细的关于 Invoke-Command
可以在下面找到。
相关文章: Linux Su命令教程及示例
使用Powershell Invoke Command Cmdlet在本地和远程系统中运行命令
使用CMD.exe运行
我们可以从Powershell调用不同的shell。例如,我们可以调用命令 python
并通过指定python解释器从Powershell编写脚本。我们也可以跑步 cmd.exe
调用下面这样的MS-DOS脚本。但请记住,MSDO只能运行 bat
文件夹。
PS> cmd.exe /C helloworld.bat
无出口运行
脚本完成后,PowerShell窗口将在进程完成时关闭。如果我们需要阻止退出命令提示符,我们可以使用或 Runcmd.exe
通过提供with选项 -noexit
.
PS> powershell -noexit .helloword.ps1
以管理员身份运行PowerShell和脚本
如果脚本需要管理员权限,我们应该使用脚本需要的管理员权限启动进程。我们可以通过右键单击现有的Powershell屏幕来启动Powershell。
