使用PowerShell做系统管理主要做以下三个方面的管理
管理文件系统
管理事务日志
管理系统服务
管理文件系统
创建文件或文件夹 New-Item
复制文件或者文件夹 Copy-Item
显示文件夹内容 Get-ChildItem
移动指定项Move-Item
删除指定项 Remove-Item
New-Item
-Path:要创建的文件或文件夹路径,如果不加这个选项,则路径为PowerShell命令行的当前路径。
通常的做法是用set-location切换路径到指定目录下
-Name:要创建的文件或文件夹名称
-ItemType:指定项的类型,目录为Directory,如果是文件,则需要在文件名后面加后缀如“文件.txt”、“技术文档.docx”等
查看New-Item的详细用法
例如:在c:\路径下创建一个名为test目录
例如:先用set-location切换路径,在创建目录
例如:在当前路径下创建一个名为“文档”的word文件
Get-ChildItem:
-Force:获取隐藏文件或系统文件、
-Include:只检索指定项
-Name:只检索位置中的项的名称
-Path:指定一个或多个位置的路径
-Recurse:将指定文件夹下的所有项目复制到目的路径
例如:查看C盘下所有文件和文件夹信息
语法:Get-ChildItem -Path “file\to\path”
查看指定路径下所有文件和文件夹,包括隐藏文件
语法:Get-ChildItem -Path "file\to\path" -Force
在Mode列下,h表示该文件为隐藏文件,s表示该文件为系统文件
Get-ChildItem:查找文件
-Include:根据条件查找文件和文件夹
语法:Get-ChildItem * -Include "条件"
-Name:只检索位置中项的名称,
例如:只检索路径
递归查询
-Recurse:
Remove-Item:
-Exclude:忽略指定项
-Force:删除隐藏文件或系统文件
-Include:只删除指定项
-Path:指定项的当前位置的路径
-Recurse:删除指定位置及这些位置的所有子项中项
例如:删除隐藏的test目录
从上面的例子可以看到,隐藏的文件是不能被删除的,除非加了-Force选项,强制删除
通过条件来删除
例如删除所有后缀为txt文件
上面这条命令可以用来清楚系统盘的垃圾文件
例如:删除系统盘所有临时文件
Remove-Item *.tmp -Recurse
管理事件日志
查看实践日志:Get-EventLog
删除事件日志Clear-EventLog
Get-EventLog
-LogName:查看指定类型的事件日志,词参数是必须的
-Newest:指定检索最新的多少条日志,后面加数字
-EntryType:只获取具有指定条目类型的事件,如查看error或者warning日志
-List:获取计算机上的事件日志列表
从上图可以看到系统所有类型的日志,包括Application日志、Security日志、Windows PoweShell日志等
-LogName:查看指定类别的日志
例如:查看系统日志
Get-EventLog -LogName System
筛选日志:
例如只查看最近的十条系统日志
Get-EventLog -LogName System -Newest
上面的例子上可以用下面的方式实现
Get-EventLog -LogName System | Select-Object -First 10
查看最近十条系统的error日志
根据时间Index来检索
查看报错日志的详细信息
清除日志:
-ComputerName:指定远程计算机
-LogName:指定事件日志
-LogName:清除指定类型的日志
例如:清除应用程序日志
从上图可以看到,清除后,日志数量为0
管理系统服务:
查看所有服务Get-Service
设置服务的启动状态等属性Set-Service
启动一个或者多个已经停止的服务Start-Service
停止一个或者多个服务Stop-Service
查看本地所有服务,注意:如果是查看本机的服务,可以不用加-ComputerName 127.0.0.1选项
查看本地所有启动的服务(Status不能作为选项,所以使用通用的筛选方式来检索)
根据DisplayName来检索服务
查看Tlntsvr服务的详细信息
启动TlntSvr服务
Set-Service: 设置服务相关属性
-StartupType:设置服务的启动类型
自动:automatic
禁用:disabled
手动:manual
例如:在前面的例子中,修改telnet服务的启动类型为自动其他,并启动该服务