powershell基础.note
1、基础命令:
# 命令格式:动词 + 名词
例如:get-process,start-service,remove-item
# 获取命令简介:
get-command //查看当前powershell可用的所有命令2、查看、过滤对象:
get-process //查看所有进程
(get-process)[0] //过滤第一行
(get-process)[0] | select-object id //过滤指定字段3、执行策略:
# set-executionpolicy
restricted //(windows客户端)默认设置,禁止所有脚本运行
remotesigned //(windowsserver)默认设置,本地脚本可运行,远程脚本需签名
unrestricted //所有脚本都可运行
bypass //不限制4、管道:
# 将前面的命令执行的结果交给后面的命令来处理:
## 前面命令的输出结果会被保存到 $_ 变量中:
例如:get-process | where-object {$_.id -gt 100}5、常用过滤工具:
·直接获取参数值:
get-service dns
# 将前面的命令使用括号包起来,然后使用 . 来进行获取
·select-object 过滤一列字段的内容:
#Select-Object //过滤指定对象下的一列内容
get-process | select-object id //过滤Id这一字段

·where-object 过滤指定对象的所有内容:
# Where-Object //过滤对象,类似linux的 grep
## 新语法:<命令> | Where-Object <属性> <比较运算符> <值>
## 旧语法:<命令> | Where-Object { $_.<属性> <比较运算符> <值> }
get-process | where-object {$_.id -gt 6000} //过滤 Id 大于 6000的项
或另一种写法:
get-process | where-object Id -gt 6000


·fl 格式化输出:
format-list //用于格式化输出,它不改变数据本身,只是控制显示格式
## 简写 fl
get-service spooler | fl
# fl 显示常用属性
# fl * 显示所有属性
# fl [名称] 显示指定属性

measure-object //将输出计数
·group-object 将输出分组统计:
# group-object //将输出分组统计
get-service | group-object status
6、使用powershell访问、管理文件系统:
·powershell能够自动解析大小:
1kb
1GB
(1)查看文件:
ls
ls c:\windows
# 只查看文件:
ls c:\windows\system32 -file
# 只查看目录:
ls c:\windows\system32 -directory
# 递归查找文件:
ls c:\windows -recurse
# 查找指定文件:
ls c:\windows -recurse | where-object {$_.Length -gt 500MB} //查找大于500MB的文件(2)创建文件、文件夹:
new-item -path c:\123 -itemtype file
new-item -path c:\321 -itemytpe directory
new-item -path c:\321\666 -itemytpe directory(3)复制、移动文件:
# 复制文件:
copy-item c:\321\666 -destination c:\ -recurse
# 移动文件:
mv c:\666 c:\dir7、变量与数据类型:
powershell会自动推断变量的类型
所有变量以 $ 开头# 自定义变量:
$arr = 123
$a = 1,2,3,4,5
# 创建字典变量:
$user = @{name='alice';age=18}·创建只读变量:
# 创建只读变量:
new-variable -name test -value 12345 -option readonly默认变量:
$? //上一个命令是否执行成功
$$ //上一个命令的原命令
$_ //当前管道对象的值(在 ForEach-Object 或 Where-Object 中)
# 系统变量:
ls ENV:
8、比较符:

9、if条件判断:


·练习:
# 获取服务运行状态:
# 获取 CPU使用率:
