使用PowerShell做系统管理主要做以下三个方面的管理

  • 管理文件系统

  • 管理事务日志

  • 管理系统服务




管理文件系统

  • 创建文件或文件夹 New-Item

  • 复制文件或者文件夹 Copy-Item

  • 显示文件夹内容 Get-ChildItem

  • 移动指定项Move-Item

  • 删除指定项 Remove-Item


New-Item

  • -Path:要创建的文件或文件夹路径,如果不加这个选项,则路径为PowerShell命令行的当前路径。

         通常的做法是用set-location切换路径到指定目录下

  • -Name:要创建的文件或文件夹名称

  • -ItemType:指定项的类型,目录为Directory,如果是文件,则需要在文件名后面加后缀如“文件.txt”、“技术文档.docx”等


查看New-Item的详细用法


PoweShell执行系统管理_powershell



例如:在c:\路径下创建一个名为test目录

PoweShell执行系统管理_powershell_02


例如:先用set-location切换路径,在创建目录

PoweShell执行系统管理_管理_03


例如:在当前路径下创建一个名为“文档”的word文件

PoweShell执行系统管理_管理_04



Get-ChildItem:

  • -Force:获取隐藏文件或系统文件、

  • -Include:只检索指定项

  • -Name:只检索位置中的项的名称

  • -Path:指定一个或多个位置的路径

  • -Recurse:将指定文件夹下的所有项目复制到目的路径


例如:查看C盘下所有文件和文件夹信息

语法:Get-ChildItem -Path “file\to\path”

PoweShell执行系统管理_powershell_05


查看指定路径下所有文件和文件夹,包括隐藏文件

语法:Get-ChildItem -Path "file\to\path" -Force

PoweShell执行系统管理_管理_06

在Mode列下,h表示该文件为隐藏文件,s表示该文件为系统文件


Get-ChildItem:查找文件

-Include:根据条件查找文件和文件夹

语法:Get-ChildItem * -Include "条件"

PoweShell执行系统管理_powershell_07


-Name:只检索位置中项的名称,

例如:只检索路径

PoweShell执行系统管理_powershell_08


递归查询

-Recurse

PoweShell执行系统管理_powershell_09



Remove-Item:

  • -Exclude:忽略指定项

  • -Force:删除隐藏文件或系统文件

  • -Include:只删除指定项

  • -Path:指定项的当前位置的路径

  • -Recurse:删除指定位置及这些位置的所有子项中项


例如:删除隐藏的test目录

PoweShell执行系统管理_管理_10

从上面的例子可以看到,隐藏的文件是不能被删除的,除非加了-Force选项,强制删除


通过条件来删除

例如删除所有后缀为txt文件

PoweShell执行系统管理_系统_11


上面这条命令可以用来清楚系统盘的垃圾文件

例如:删除系统盘所有临时文件

Remove-Item *.tmp -Recurse




管理事件日志

  • 查看实践日志:Get-EventLog

  • 删除事件日志Clear-EventLog


Get-EventLog

  • -LogName:查看指定类型的事件日志,词参数是必须的

  • -Newest:指定检索最新的多少条日志,后面加数字

  • -EntryType:只获取具有指定条目类型的事件,如查看error或者warning日志


-List:获取计算机上的事件日志列表

PoweShell执行系统管理_系统_12

从上图可以看到系统所有类型的日志,包括Application日志、Security日志、Windows PoweShell日志等


-LogName:查看指定类别的日志

例如:查看系统日志

Get-EventLog -LogName System


筛选日志:

例如只查看最近的十条系统日志

Get-EventLog -LogName System -Newest

PoweShell执行系统管理_系统_13


上面的例子上可以用下面的方式实现

Get-EventLog -LogName System | Select-Object -First 10

PoweShell执行系统管理_powershell_14



查看最近十条系统的error日志

PoweShell执行系统管理_管理_15



根据时间Index来检索

PoweShell执行系统管理_系统_16


查看报错日志的详细信息

PoweShell执行系统管理_powershell_17




清除日志:

  • -ComputerName:指定远程计算机

  • -LogName:指定事件日志


-LogName:清除指定类型的日志

例如:清除应用程序日志

PoweShell执行系统管理_管理_18

从上图可以看到,清除后,日志数量为0



管理系统服务:

  • 查看所有服务Get-Service

  • 设置服务的启动状态等属性Set-Service

  • 启动一个或者多个已经停止的服务Start-Service

  • 停止一个或者多个服务Stop-Service


查看本地所有服务,注意:如果是查看本机的服务,可以不用加-ComputerName 127.0.0.1选项

PoweShell执行系统管理_管理_19



查看本地所有启动的服务(Status不能作为选项,所以使用通用的筛选方式来检索)

PoweShell执行系统管理_powershell_20


根据DisplayName来检索服务

PoweShell执行系统管理_管理_21


查看Tlntsvr服务的详细信息

PoweShell执行系统管理_powershell_22


启动TlntSvr服务

PoweShell执行系统管理_powershell_23这里无法启动,是因为该服务启动类型被设置为禁止启动了

PoweShell执行系统管理_系统_24


Set-Service: 设置服务相关属性

-StartupType:设置服务的启动类型

自动:automatic

禁用:disabled

手动:manual


例如:在前面的例子中,修改telnet服务的启动类型为自动其他,并启动该服务

PoweShell执行系统管理_管理_25