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

  • 管理文件系统

  • 管理事务日志

  • 管理系统服务




管理文件系统

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

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

  • 显示文件夹内容 Get-ChildItem

  • 移动指定项Move-Item

  • 删除指定项 Remove-Item


New-Item

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

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

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

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


查看New-Item的详细用法


wKiom1gV6A7BQvJMAAGaAjGHMak428.jpg



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

wKioL1gV5qmD8RO7AAAOA23EMQ8576.png


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

wKioL1gV6iSi8ybsAAAQbv4qzOc516.png


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

wKioL1gV65zxxbEmAAANIwnFNvc407.png



Get-ChildItem:

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

  • -Include:只检索指定项

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

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

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


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

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

wKioL1gV7iGhx6egAAAmRbfPvV0218.png


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

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

wKiom1gV7puTzfh7AABD0CpTRm0197.png

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


Get-ChildItem:查找文件

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

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

wKiom1gV7-CAzi9AAAAKeaxvqYY955.png


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

例如:只检索路径

wKiom1gV8kDT1Y9lAAAFE0cfCAw863.png


递归查询

-Recurse

wKiom1gV88qg4OMIAAAU6Rxr0DQ493.png



Remove-Item:

  • -Exclude:忽略指定项

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

  • -Include:只删除指定项

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

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


例如:删除隐藏的test目录

wKiom1gV9b_xIReHAABDb4swoVM329.png

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


通过条件来删除

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

wKiom1gV9r6RbKA0AAAxU-t3Vzo072.png


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

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

Remove-Item *.tmp -Recurse




管理事件日志

  • 查看实践日志:Get-EventLog

  • 删除事件日志Clear-EventLog


Get-EventLog

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

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

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


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

wKioL1gV-JLD_XFkAAAf3Z-BEI8509.png

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


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

例如:查看系统日志

Get-EventLog -LogName System


筛选日志:

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

Get-EventLog -LogName System -Newest

wKiom1gV-s_DLgrqAABGYankzEY188.png


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

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

wKiom1gV-6WxfTHwAABE2Gj_u8A110.png



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

wKiom1gV_LPRCCK_AABIr9q1DMY500.png



根据时间Index来检索

wKioL1gV_gTzWdFZAAAPokc9O28625.png


查看报错日志的详细信息

wKiom1gV_vOwHsEwAAAfbWdwfbs749.png




清除日志:

  • -ComputerName:指定远程计算机

  • -LogName:指定事件日志


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

例如:清除应用程序日志

wKioL1gV_-2xsf7FAAA1zXcph5s608.png

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



管理系统服务:

  • 查看所有服务Get-Service

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

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

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


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

wKiom1gWAwniq4nzAAA5Zw2Vjr4350.png



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

wKiom1gWAr3wDkXYAABMulBaOp8201.png


根据DisplayName来检索服务

wKioL1gWBcTAEk-jAAANr38--Rw149.png


查看Tlntsvr服务的详细信息

wKiom1gWBlayqTqdAAAW-6hEdpw718.png


启动TlntSvr服务

wKioL1gWBnfhsyOZAAAb5YYZJ3o877.png这里无法启动,是因为该服务启动类型被设置为禁止启动了

wKioL1gWBszQQ6tXAAB2in6l_P0137.png


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

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

自动:automatic

禁用:disabled

手动:manual


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

wKioL1gWCCzB54TFAAAb0jLxwu4419.png