windows 自带的一个组件
https://www.pstips.net/powershell-online-tutorials 信息网站
Powershell是一种命令行shell和脚本环境.通过使用powershell,用户和脚本编写者可以对windows系统进行管理.
优点:
Windows7 以上操作系统默认安装.
Powershell脚本可以运行在内存中,无需写入磁盘(文件不落地)
可以调用.net类(C#)
可以用来管理活动目录
远程下载payload来执行
Powershell的基本概念
1.ps1 文件
一个powershell就是一个简单的文本文件,这个文件中包含了一系列powershell命令,每个命令为独立的一行,对于被视为powershell脚本的文本文件,文件名需要使用.PS1作为后缀
execution_policy 执行策略
2.执行策略
Powershell基于安全性的考虑,带有一个执行策略的选项.在默认情况下,该执行策略为受限的.如果powershell无法执行,可以尝试先使用
Get-ExecutionPolicy 这个策略来获得可能的策略:
1.Restricted 脚本不能执行
2.RemoteSigned:本地创建的脚本可以执行,但从网上下载的不能(有数字证书的除外)
3.AllSigned:仅当脚本由受信任的发布者签名时才能运行
4.Unrestricted:允许所有script脚本执行
可以使用:
Set-ExecutionPolicy 来选择使用的策略
运行脚本
运行一个powershell脚本需要指定执行脚本的路径,但是如果该脚本位于系统目录中,那么直接在命令符后输入脚本文件名即可执行.
Set-ExecutionPolicy
Get-ExecutionPolicy
基本语法
Get-Help
主题 Windows PowerShell 帮助系统
Get-Alias
获取当前会话中的所有别名
获取别名之后你会发现,有很多和linux相通的命令 cd ls tee …
关于Cmdlets
powershell里重要的命令集合
以.net形式存在
Get-Command -CommandType cmdlet 命令可以获取其命令集
start-process
start-process notepad.exe
Get-Process
获取指定的进程
Get-Content
类似cat
Get-Location
类似pwd
Copy-Item
cp
Move-Item
mv
Get-Process
Get-Process chrome
alias 别名
xxxx-xxxx
start-process
基本语法2
function add_diy($a, $b){
return $a + $b;
}
add_diy 100 99;
-le ===> less than or equal
-lt ===> less than
-gt ===> greater than
-ge ====> greater than or equal
计算100以内的质数
$i,$n,$k = 0 #定义变量初值为0
for($n =2;$n -le 100;$n++){
$i =2
while($i -le $n){
if($n%$i -eq 0){
break
}
$i++
}
if($i -eq $n){
$k++
echo("$i")
}
}
运算符
· >:将输出保存到指定文件中(用法:Get-Process>output.txt)
· >>:将脚本的输出追加到指定文件中(用法:test.ps1>>output.txt)
· 2>:将错误输出到指定文件中(Get-Porcess none 2>Errors.txt)
· 2>>:将错误追加到指定文件中(Get-Process none 2>> logs-Errors.txt)
· -eq:等于运算符(用法:$var1 –eq $var2,返回真或假)
· -gt:大于运算符(用法:$var1 –gt $var2,返回真或假)
· -match:匹配运算符,搜索字符串是否在文中出现(用法:$Text –match $string返回真或假)
· -replace:替换字符串(用法:$Text –replace 被替换的字符,替换的字符,返回真或假)
· -in: