Powershell常用命令
1.Get-Command 得到Powshell所有命令
2.Get-Process 获取所有进程
3.Set-Alias 给指定命令重命名 如:Set-Alias aaa Get-Command
4.Set-ExecutionPolicy remotesigned 设置powershell可直接执行脚本文件 一般脚本文件以.ps1结尾 执行脚本文件直接输入文件地址即可执行 脚本文件中只写命令即可
5.Get-Help get-* 查询以get开头的命令 Get-Help *service* Get-Help Get-Command 获取Get-Command命令的基本用法
6.Get-Member 获取对象属性 如: $var | Get-Memeber 访问$var属性 直接$var.ToString()
PS中的变量定义
不需要定义或声明数据类型
在变量前加"$"
定义变量的规则
-变量可以是数字 $123
-变量可以是字符串 $abc
-变量可以是特殊字符 ${@1b}
内置的变量
-$pshome
-$home
-$profile
变量赋值: $var=123 $var="aaaaaa"
取变量值: $var
变量赋值方法:Set-Variable var 100
取值方法: Get-Variable var
清空值: Clear-Variable var
删除变量 Remove-Variable var
取多个变量如var1 var2 var3地值: Get-Variable var*
另一种赋值方法 $var1="bbb" $var2="$var $var1" 结果$var2="aaaaaa bbb"
$var2='$var $var1' 结果$var2="$var $var1"
$date=Get-Date 获取当前时间
$date.AddDays(3) 当前时间加3天
排序用法
Get-Process | Sort-Object ws 根据WS值由小到大排序
Get-Process | Sort-Object | fl Get-Process | Sort-Object | Format-List 以列表形式显示数据
导入导出文件
Get-Process > c:/aa.txt
Get-Process | Export-Clixml c:/ddd.xml 将命令执行结果导出到xml文件中
Import-Clixml c:/ddd.xml 将xml文件导出到控件台
注释使用
Get-Proccess | #这里写注释信息
sort ws
比较运算符
$var="abc"
$var -like "&b&" 返回true
$var -clike "&b&" 返回true
函数使用
案例:在一个脚本文件中有如下代码:
$var1=10
function one{"The Variable is $var1"}
function two{$var1=20;one}
one
two
one
执行结果: The Variable is 10
The Variable is 20
The Variable is 10
此示例表明,在函数中改变变量值并不影响实际值
若需改变其值请看如下代码:
$var1=10
function one{"The Variable is $var1"}
function two{$Script:var1=20;one}
one
two
one
执行结果: The Variable is 10
The Variable is 20
The Variable is 20
freach使用
$var=1..6 #定义数组
foreach($i in $var)
{
$n++
Write-Host "$i"
}
Write-Host "there were $n record"
if使用
Get-Service | foreach{
if($_.status -eq "running"){
Write-Host $_.displayname "("$_status")" -foregroundcolor "green"
}
else
{
Write-Host $_.displayname "("$_status")" -foregroundcolor "red"
}
}
error使用
function one
{
Get-Process -ea stop
Get-ChildItem ada -ErrorAction stop #此句有误
Get-Process -ErrorAction stop
}
one
-ea 定义当错误发生以后该如何继续执行
$?可以测试命令执行成功还是失败,成功则结果为true 反之为false
单步调试
先设置Set-PSDebug -step
for($i=1;$i -le 10;$i++)
{
Write-Host "loop number $i"
}
25个常用PowerShell命令总结
入门级别
1. 像文件系统那样操作Windows Registry——cd hkcu:
2. 在文件里递回地搜索某个字符串——dir –r | select string "searchforthis"
3. 使用内存找到五个进程——ps | sort –p ws | select –last 5
4. 循环(停止,然后重启)一个服务,如DHCP——Restart-Service DHCP
5. 在文件夹里列出所有条目——Get-ChildItem – Force
6. 递归一系列的目录或文件夹——Get-ChildItem –Force c:\directory –Recurse
7. 在目录里移除所有文件而不需要单个移除——Remove-Item C:\tobedeleted –Recurse
8. 重启当前计算机——(Get-WmiObject -Class Win32_OperatingSystem -ComputerName .).Win32Shutdown(2)
收集信息
9. 获取计算机组成或模型信息——Get-WmiObject -Class Win32_ComputerSystem
10. 获取当前计算机的BIOS信息——Get-WmiObject -Class Win32_BIOS -ComputerName .
11. 列出所安装的修复程序(如QFE或Windows Update文件)——Get-WmiObject -Class Win32_QuickFixEngineering -ComputerName .
12. 获取当前登录计算机的用户的用户名—— Get-WmiObject -Class Win32_ComputerSystem -Property UserName -ComputerName .
13. 获取当前计算机所安装的应用的名字——Get-WmiObject -Class Win32_Product -ComputerName . | Format-Wide -Column 1
14. 获取分配给当前计算机的IP地址——Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE -ComputerName . | Format-Table -Property IPAddress
15. 获取当前机器详细的IP配置报道——Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE -ComputerName . | Select-Object -Property [a-z]* -ExcludeProperty IPX*,WINS*
16. 找到当前计算机上使用DHCP启用的网络卡——Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter "DHCPEnabled=true" -ComputerName .
17. 在当前计算机上的所有网络适配器上启用DHCP——Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=true -ComputerName . | ForEach-Object -Process {$_.EnableDHCP()}
软件管理
18. 在远程计算机上安装MSI包——(Get-WMIObject -ComputerName TARGETMACHINE -List | Where-Object -FilterScript {$_.Name -eq "Win32_Product"}).Install(\\MACHINEWHEREMSIRESIDES\path\package.msi)
19. 使用基于MSI的应用升级包升级所安装的应用——(Get-WmiObject -Class Win32_Product -ComputerName . -Filter "Name='name_of_app_to_be_upgraded'").Upgrade(\\MACHINEWHEREMSIRESIDES\path\upgrade_package.msi)
20. 从当前计算机移除MSI包——(Get-WmiObject -Class Win32_Product -Filter "Name='product_to_remove'" -ComputerName . ).Uninstall()
机器管理
21. 一分钟后远程关闭另一台机器——Start-Sleep 60; Restart-Computer –Force –ComputerName TARGETMACHINE
22. 添加打印机——(New-Object -ComObject WScript.Network).AddWindowsPrinterConnection(\\printerserver\hplaser3)
23. 移除打印机——(New-Object -ComObject WScript.Network).RemovePrinterConnection("\\printerserver\hplaser3 ")
24. 进入PowerShell会话——invoke-command -computername machine1, machine2 -filepath c:\Script\script.ps1