在 Windows 10 和 Windows 11 中,PowerShell 提供了丰富的命令,按不同功能可以分为多个类别。以下是常见的命令类别及其描述的表格:
分类 | 命令 | 描述 |
---|---|---|
系统信息与管理 | Get-ComputerInfo |
获取计算机的系统信息 |
Get-Process |
获取当前正在运行的进程列表 | |
Get-Service |
获取计算机上的所有服务 | |
Get-EventLog |
获取事件日志 | |
Get-Command |
获取所有可用的 PowerShell 命令 | |
Get-Help |
获取命令的帮助信息 | |
Get-Module |
获取已加载的模块 | |
文件与目录管理 | Get-ChildItem |
获取指定目录中的文件和子目录 |
Set-Location |
改变当前工作目录 | |
Copy-Item |
复制文件或目录 | |
Move-Item |
移动文件或目录 | |
Remove-Item |
删除文件或目录 | |
New-Item |
创建新的文件或目录 | |
Rename-Item |
重命名文件或目录 | |
系统配置与管理 | Set-ExecutionPolicy |
设置 PowerShell 执行策略 |
Get-ExecutionPolicy |
获取当前 PowerShell 执行策略 | |
Get-WindowsFeature |
获取 Windows 功能或角色的状态 | |
Enable-WindowsOptionalFeature |
启用 Windows 可选功能 | |
网络与远程管理 | Test-Connection |
测试与远程计算机的网络连接 |
Get-NetIPAddress |
获取网络接口的 IP 地址 | |
Get-NetAdapter |
获取网络适配器的状态与信息 | |
Invoke-Command |
执行远程命令(需要远程 PowerShell) | |
Enter-PSSession |
启动与远程计算机的交互式会话 | |
用户与组管理 | Get-LocalUser |
获取本地用户的信息 |
New-LocalUser |
创建本地用户 | |
Set-LocalUser |
修改本地用户的信息 | |
Get-LocalGroup |
获取本地组的信息 | |
Add-LocalGroupMember |
将用户添加到本地组 | |
Remove-LocalGroupMember |
从本地组中删除用户 | |
任务与计划管理 | Get-ScheduledTask |
获取任务计划中的任务 |
New-ScheduledTask |
创建新的计划任务 | |
Start-ScheduledTask |
启动计划任务 | |
Stop-ScheduledTask |
停止计划任务 | |
性能与资源监控 | Get-Process |
获取计算机上的所有进程信息 |
Get-EventLog |
获取系统的事件日志 | |
Get-PerformanceCounter |
获取性能计数器的信息 | |
Get-ResourceUsage |
获取系统资源的使用情况 | |
系统修复与恢复 | Repair-WindowsImage |
修复 Windows 映像 |
SFC /scannow |
系统文件检查工具,用于扫描和修复损坏的文件 | |
DISM |
部署映像服务和管理工具,用于修复系统映像 | |
PowerShell 脚本与自动化 | Get-Content |
获取文件内容 |
Set-Content |
写入内容到文件 | |
Out-File |
将输出重定向到文件 | |
Start-Process |
启动一个新进程 | |
Invoke-Expression |
执行指定的字符串作为 PowerShell 命令 | |
安全与权限管理 | Get-ACL |
获取文件、目录或注册表项的访问控制列表(ACL) |
Set-ACL |
设置文件、目录或注册表项的访问控制列表(ACL) | |
Get-AuthenticodeSignature |
获取文件的 Authenticode 签名信息 | |
New-LocalGroup |
创建本地组 | |
Windows 更新与安装 | Get-WindowsUpdate |
检查系统更新状态 |
Install-WindowsUpdate |
安装 Windows 更新 | |
打印与扫描管理 | Get-Printer |
获取系统上安装的打印机信息 |
Add-Printer |
添加打印机 | |
Remove-Printer |
删除打印机 | |
磁盘管理 | Get-Disk |
获取磁盘的信息 |
Get-Partition |
获取磁盘分区的信息 | |
New-Partition |
创建新的磁盘分区 | |
Format-Volume |
格式化磁盘分区 | |
时间与日期管理 | Get-Date |
获取当前系统日期和时间 |
Set-Date |
设置系统日期和时间 | |
调试与测试命令 | Trace-Route |
路由跟踪工具,检查网络路径 |
Start-Job |
启动后台作业 | |
Get-Job |
获取当前正在运行的作业 | |
日志与监控管理 | Get-WinEvent |
获取 Windows 事件日志 |
Clear-WinEvent |
清除事件日志 | |
Export-WinEvent |
导出事件日志到文件 |
说明:
- 系统信息与管理:涉及系统状态、进程、服务和命令等管理功能。
- 文件与目录管理:用于管理文件和目录的创建、删除、重命名等操作。
- 系统配置与管理:用于设置和管理执行策略、Windows 功能、模块等。
- 网络与远程管理:处理与远程计算机的连接、网络适配器配置等。
- 用户与组管理:涉及本地用户和组的创建、删除和管理。
- 任务与计划管理:管理计划任务的创建和执行。
- 性能与资源监控:监控计算机的性能和资源使用情况。
- 系统修复与恢复:用于修复系统问题或恢复系统。
- PowerShell 脚本与自动化:处理文件内容操作、重定向、执行脚本等自动化功能。
- 安全与权限管理:管理文件和目录的访问权限、签名等。
- Windows 更新与安装:检查和安装 Windows 更新。
- 打印与扫描管理:管理打印机和扫描设备。
- 磁盘管理:涉及磁盘分区、格式化等操作。
- 时间与日期管理:设置和获取系统时间。
- 调试与测试命令:用于调试和测试系统或网络。
- 日志与监控管理:管理和查看 Windows 事件日志。
这些命令在 PowerShell 中非常有用,能够帮助系统管理员和高级用户高效地管理和自动化各种任务。
提供更多 PowerShell 命令的分类和详细信息。以下是一些更高级的命令类别及其描述:
分类 | 命令 | 描述 |
---|---|---|
文件和内容操作 | Get-Content |
获取文件内容 |
Set-Content |
设置文件内容 | |
Add-Content |
向文件追加内容 | |
Out-File |
将输出结果写入到文件中 | |
Copy-Item |
复制文件或文件夹 | |
Move-Item |
移动文件或文件夹 | |
Rename-Item |
重命名文件或文件夹 | |
计算与数据操作 | New-Object |
创建一个新的 .NET 对象 |
Select-Object |
选择对象的特定属性或字段 | |
Where-Object |
筛选对象中的特定值 | |
ForEach-Object |
对集合中的每个对象执行操作 | |
Group-Object |
根据特定字段对对象进行分组 | |
Sort-Object |
对对象进行排序 | |
脚本与自动化 | Invoke-Command |
在本地或远程计算机上执行命令 |
Start-Process |
启动一个新的进程 | |
Start-Sleep |
暂停脚本执行一段指定的时间(以秒为单位) | |
Wait-Process |
等待一个进程完成执行 | |
Set-Variable |
设置一个变量的值 | |
Get-Variable |
获取指定变量的值 | |
对象与集合操作 | New-Object |
创建新的对象或实例 |
Select-Object |
选择和显示对象的特定属性 | |
Where-Object |
筛选对象集合中的元素 | |
ForEach-Object |
遍历集合并对每个元素执行操作 | |
Group-Object |
将对象按指定条件分组 | |
Sort-Object |
对对象或数组进行排序 | |
文件系统与注册表管理 | Get-Item |
获取文件或注册表项的信息 |
Set-Item |
设置文件或注册表项的属性 | |
New-Item |
创建新文件或注册表项 | |
Remove-Item |
删除文件、目录或注册表项 | |
Get-ItemProperty |
获取文件或注册表项的属性值 | |
Set-ItemProperty |
设置文件或注册表项的属性值 | |
文件与系统备份 | Backup-SqlDatabase |
备份 SQL Server 数据库 |
Restore-SqlDatabase |
恢复 SQL Server 数据库 | |
进程与服务管理 | Get-Process |
获取系统上所有正在运行的进程 |
Start-Process |
启动一个新进程 | |
Stop-Process |
停止一个进程 | |
Get-Service |
获取系统中所有的服务 | |
Start-Service |
启动指定的服务 | |
Stop-Service |
停止指定的服务 | |
Restart-Service |
重启指定的服务 | |
任务和计划管理 | Get-ScheduledTask |
获取已安排的任务 |
New-ScheduledTask |
创建新的计划任务 | |
Start-ScheduledTask |
启动计划任务 | |
Stop-ScheduledTask |
停止计划任务 | |
Unregister-ScheduledTask |
注销计划任务 | |
远程管理与远程会话 | Enter-PSSession |
启动一个与远程计算机的交互式 PowerShell 会话 |
Exit-PSSession |
退出远程 PowerShell 会话 | |
Invoke-Command |
在远程计算机上运行命令 | |
New-PSSession |
创建一个新的 PowerShell 会话 | |
Active Directory 管理 | Get-ADUser |
获取 Active Directory 用户信息 |
Set-ADUser |
修改 Active Directory 用户信息 | |
Get-ADGroup |
获取 Active Directory 组的信息 | |
Add-ADGroupMember |
向 Active Directory 组添加成员 | |
Remove-ADGroupMember |
从 Active Directory 组移除成员 | |
防火墙与网络管理 | Get-NetFirewallRule |
获取 Windows 防火墙规则 |
New-NetFirewallRule |
创建新的防火墙规则 | |
Set-NetFirewallRule |
修改现有的防火墙规则 | |
Test-NetConnection |
测试网络连接 | |
事件与日志管理 | Get-WinEvent |
获取 Windows 事件日志 |
Clear-WinEvent |
清除 Windows 事件日志 | |
Export-WinEvent |
导出事件日志 | |
Get-EventLog |
获取经典事件日志(如应用程序日志、安全日志等) | |
磁盘和存储管理 | Get-Disk |
获取磁盘的状态和信息 |
New-Disk |
创建新磁盘分区 | |
Get-Volume |
获取系统中所有磁盘卷的信息 | |
Format-Volume |
格式化磁盘卷 | |
Get-Partition |
获取磁盘分区信息 | |
Set-Partition |
设置磁盘分区的属性 | |
环境变量与配置管理 | Get-EnvironmentVariable |
获取环境变量 |
Set-EnvironmentVariable |
设置环境变量 | |
Get-Command |
获取命令的帮助或命令的详细信息 | |
Get-Help |
获取命令或脚本的帮助信息 | |
资源管理与优化 | Get-Process |
查看当前系统运行的所有进程 |
Get-EventLog |
查看事件日志,监控系统异常 | |
Get-PerformanceCounter |
获取计算机的性能计数器数据 | |
Get-ResourceUsage |
获取系统资源的使用情况 |
说明:
- 文件和内容操作:操作文件内容、管理文件的输入输出、文件复制和移动等。
- 计算与数据操作:对数据进行处理、计算、筛选、分组、排序等。
- 脚本与自动化:帮助脚本自动化管理任务,包括启动进程、暂停、执行命令等。
- 对象与集合操作:处理对象集合的查询、筛选、排序、分组等。
- 文件系统与注册表管理:用于操作文件系统、注册表项、配置系统等。
- 文件与系统备份:涉及 SQL Server 数据库备份和恢复操作。
- 进程与服务管理:查看、启动、停止、重启进程和服务。
- 任务和计划管理:用于管理任务计划、创建和管理计划任务等。
- 远程管理与远程会话:通过 PowerShell 与远程计算机进行交互和管理。
- Active Directory 管理:用于查询和管理 Active Directory 用户、组等。
- 防火墙与网络管理:配置防火墙规则和网络连接测试。
- 事件与日志管理:查看、导出、清理 Windows 事件日志。
- 磁盘和存储管理:管理磁盘、分区、卷、格式化等存储任务。
- 环境变量与配置管理:设置和获取环境变量,获取 PowerShell 命令帮助信息等。
- 资源管理与优化:监控系统资源和性能,获取系统使用情况。
这些命令涉及操作系统的各个方面,包括文件管理、进程控制、远程管理、系统监控等。掌握这些命令将有助于系统管理员高效地管理和自动化任务。
提供更多 PowerShell 命令的高级分类和细节。下面是一些其他常见的 PowerShell 命令类别,以及如何通过它们来执行各种任务。
进阶 PowerShell 命令分类与示例
分类 | 命令 | 描述 |
---|---|---|
用户和组管理 | Get-LocalUser |
获取本地计算机上的所有用户信息 |
New-LocalUser |
创建一个新的本地用户 | |
Set-LocalUser |
修改本地用户的属性 | |
Remove-LocalUser |
删除本地用户 | |
Get-LocalGroup |
获取本地计算机上的所有组信息 | |
Add-LocalGroupMember |
将成员添加到本地组 | |
Remove-LocalGroupMember |
从本地组中移除成员 | |
打印机管理 | Get-Printer |
获取计算机上的所有打印机信息 |
Add-Printer |
添加新的打印机 | |
Set-Printer |
配置打印机的属性 | |
Remove-Printer |
删除指定的打印机 | |
磁盘配额管理 | Enable-Quota |
启用磁盘配额管理 |
Set-Quota |
设置磁盘配额限制 | |
Get-Quota |
查看磁盘配额设置 | |
日志管理 | Get-WinEvent |
获取 Windows 系统的事件日志 |
Clear-WinEvent |
清除指定的事件日志 | |
Export-WinEvent |
将事件日志导出到文件 | |
Get-EventLog |
获取经典事件日志(如应用程序日志、安全日志等) | |
性能监控与资源管理 | Get-Process |
获取正在运行的所有进程信息 |
Stop-Process |
停止指定的进程 | |
Get-Service |
获取所有系统服务信息 | |
Start-Service |
启动服务 | |
Stop-Service |
停止服务 | |
Get-PerformanceCounter |
获取计算机的性能计数器信息 | |
远程 PowerShell 会话 | Enter-PSSession |
启动到远程计算机的 PowerShell 会话 |
Exit-PSSession |
退出当前远程 PowerShell 会话 | |
Invoke-Command |
在远程计算机上运行指定命令 | |
New-PSSession |
创建新的 PowerShell 会话连接 | |
Windows 功能与组件 | Get-WindowsFeature |
获取 Windows 功能和角色的状态 |
Install-WindowsFeature |
安装 Windows 功能或角色 | |
Uninstall-WindowsFeature |
卸载 Windows 功能或角色 | |
网络与共享管理 | Get-NetAdapter |
获取网络适配器的配置和状态 |
Set-NetAdapter |
配置网络适配器的属性 | |
Get-NetIPAddress |
获取网络适配器的 IP 地址信息 | |
Set-NetIPAddress |
设置网络适配器的 IP 地址 | |
New-SmbShare |
创建一个新的 SMB 网络共享 | |
Get-SmbShare |
查看所有 SMB 网络共享 | |
Set-SmbShare |
配置 SMB 网络共享的属性 | |
打印管理 | Get-PrintJob |
获取打印队列中的所有任务 |
Start-PrintJob |
启动打印任务 | |
Stop-PrintJob |
停止打印任务 | |
系统配置信息 | Get-WmiObject |
获取计算机的 WMI 信息(如硬件、操作系统等) |
Get-CimInstance |
获取 CIM 实例(与 WMI 类似) | |
系统日期和时间管理 | Get-Date |
获取当前的日期和时间 |
Set-Date |
设置计算机的日期和时间 | |
Get-TimeZone |
获取当前时区信息 | |
Set-TimeZone |
设置计算机时区 | |
任务和计划任务管理 | Get-ScheduledTask |
获取计算机上的计划任务 |
New-ScheduledTask |
创建一个新的计划任务 | |
Start-ScheduledTask |
启动一个指定的计划任务 | |
Stop-ScheduledTask |
停止指定的计划任务 | |
Unregister-ScheduledTask |
注销一个计划任务 | |
SQL Server 管理 | Get-SqlDatabase |
获取 SQL Server 数据库信息 |
Backup-SqlDatabase |
备份 SQL Server 数据库 | |
Restore-SqlDatabase |
恢复 SQL Server 数据库 | |
Windows 更新管理 | Get-WindowsUpdate |
获取系统的 Windows 更新信息 |
Install-WindowsUpdate |
安装 Windows 更新 | |
Hyper-V 管理 | Get-VM |
获取虚拟机的信息 |
New-VM |
创建新的虚拟机 | |
Start-VM |
启动虚拟机 | |
Stop-VM |
停止虚拟机 | |
容器管理 | Get-Container |
获取容器的信息 |
New-Container |
创建新的容器 | |
Start-Container |
启动容器 | |
证书管理 | Get-ChildItem -Path Cert: |
获取证书存储区中的证书信息 |
New-SelfSignedCertificate |
创建自签名证书 | |
Export-Certificate |
导出证书 | |
安全和加密 | Get-FileHash |
获取文件的哈希值 |
ConvertTo-SecureString |
将字符串转换为安全字符串 | |
ConvertFrom-SecureString |
将安全字符串转换为普通字符串 | |
Windows 安全管理 | Get-LocalGroup |
获取本地组的信息 |
Add-LocalGroupMember |
向本地组中添加用户 | |
Windows 服务与防火墙 | Get-NetFirewallRule |
查看当前的防火墙规则 |
New-NetFirewallRule |
创建新的防火墙规则 | |
Set-NetFirewallRule |
设置防火墙规则的属性 | |
Get-Service |
获取计算机的服务信息 | |
Stop-Service |
停止指定服务 |
各类命令的简要说明:
- 用户和组管理:提供对本地用户和组的增删改查操作,方便进行用户管理。
- 打印机管理:管理本地和网络打印机,添加、删除、配置打印机。
- 磁盘配额管理:管理磁盘配额,可以限制用户或组的磁盘使用量。
- 日志管理:管理 Windows 系统事件和日志,可以获取、清除和导出日志。
- 性能监控与资源管理:监控系统性能和资源使用情况,可以停止进程、服务,查看性能计数器等。
- 远程 PowerShell 会话:通过 PowerShell 在远程计算机上执行命令,进行远程管理。
- Windows 功能与组件:用于安装、卸载和管理 Windows 功能和角色。
- 网络与共享管理:配置网络适配器、共享文件夹和 IP 地址。
- 打印管理:管理打印队列和打印作业。
- 系统配置信息:获取系统的硬件信息、操作系统信息等。
- 系统日期和时间管理:获取和设置计算机的日期、时间和时区。
- 任务和计划任务管理:管理计算机上的计划任务。
- SQL Server 管理:与 SQL Server 数据库进行交互,进行备份和恢复操作。
- Windows 更新管理:管理 Windows 更新安装。
- Hyper-V 管理:用于管理虚拟机,包括创建、启动、停止虚拟机。
其他 PowerShell 命令的分类和细节:
继续高级 PowerShell 命令分类与示例
分类 | 命令 | 描述 |
---|---|---|
容器管理 | Get-Container |
获取容器的信息 |
New-Container |
创建新的容器 | |
Start-Container |
启动容器 | |
Stop-Container |
停止容器 | |
证书管理 | Get-ChildItem -Path Cert: |
获取证书存储区中的证书信息 |
New-SelfSignedCertificate |
创建自签名证书 | |
Export-Certificate |
导出证书 | |
安全和加密 | Get-FileHash |
获取文件的哈希值 |
ConvertTo-SecureString |
将字符串转换为安全字符串 | |
ConvertFrom-SecureString |
将安全字符串转换为普通字符串 | |
Windows 安全管理 | Get-LocalGroup |
获取本地组的信息 |
Add-LocalGroupMember |
向本地组中添加用户 | |
Windows 服务与防火墙 | Get-NetFirewallRule |
查看当前的防火墙规则 |
New-NetFirewallRule |
创建新的防火墙规则 | |
Set-NetFirewallRule |
设置防火墙规则的属性 | |
Get-Service |
获取计算机的服务信息 | |
Stop-Service |
停止指定服务 |
各类命令的简要说明:
- 容器管理:PowerShell 提供的容器管理功能允许你在 Windows 环境下进行容器的创建、启动和停止操作,适用于 Docker 等容器平台的管理。
- 证书管理:包括了证书的创建、导出和查看等功能。通过 PowerShell 管理证书存储区可以提高系统的安全性。
- 安全和加密:PowerShell 提供了强大的加密工具,例如计算文件哈希值、转换字符串为安全字符串等,帮助保护敏感数据。
- Windows 安全管理:可以通过 PowerShell 快速管理本地用户组的成员,简化 Windows 系统的安全设置。
- Windows 服务与防火墙:PowerShell 允许你获取、创建和管理防火墙规则以及服务。它为 IT 管理员提供了自动化操作的便利。
更高级的命令与功能
-
事件订阅和日志管理:
New-WinEvent
:创建新的事件日志条目,常用于生成自定义的日志信息。Register-WmiEvent
:注册 WMI 事件订阅,支持基于系统事件的自动化响应。Get-WinEvent -FilterHashtable @{LogName="Security"; ID=4720}
:筛选事件日志中特定事件 ID(如账户创建事件)。
-
网络与安全:
Test-NetConnection
:测试网络连接性,支持测试 DNS、端口以及网络延迟等。Get-NetAdapterStatistics
:查看网络适配器的统计信息,包括数据传输量等。Get-NetTCPConnection
:列出当前 TCP 连接,查看活动连接的状态。
-
Windows 虚拟化管理:
Get-VM
:获取虚拟机的基本信息,查看虚拟机的状态。Start-VM
:启动一个或多个虚拟机。Stop-VM
:停止虚拟机运行,支持强制关闭。Set-VM
:修改虚拟机的配置参数,如内存、CPU 核心数等。Checkpoint-VM
:创建虚拟机的检查点,方便以后恢复到指定状态。
-
备份与恢复:
Get-Backup
:查看系统的备份信息。New-WbBackupTarget
:设置备份目标位置,可以指定到外部存储设备或网络共享。Restore-WBFile
:从备份恢复文件或文件夹。
-
PowerShell 脚本与自动化:
Invoke-Command -ScriptBlock {...}
:执行一个脚本块,在当前会话中运行一系列 PowerShell 命令。Start-Job
:启动一个后台作业,在后台异步执行任务。Get-Job
:获取后台作业的状态信息。Wait-Job
:等待一个或多个后台作业完成。Receive-Job
:从后台作业中获取结果。Export-ModuleMember
:用于将 PowerShell 模块中的成员导出,便于模块的封装和重用。
-
PowerShell Remoting:
Enter-PSSession -ComputerName <RemoteComputer>
:进入远程计算机的 PowerShell 会话,进行实时的远程管理。Invoke-Command -ComputerName <RemoteComputer>
:在远程计算机上执行 PowerShell 命令。New-PSSession
:创建新的 PowerShell 会话,可以通过多个会话同时管理多个远程系统。Close-PSSession
:关闭远程会话,断开与远程计算机的连接。
PowerShell 与 Windows 容器
PowerShell 在 Windows 容器环境中也发挥着重要作用,支持 Docker 和 Kubernetes 等容器平台的集成。
- 查看容器:使用
docker ps
或Get-Container
获取容器的运行状态。 - 管理容器:
Start-Container
启动容器,Stop-Container
停止容器。 - 容器内运行命令:使用
docker exec -it <container_name> <command>
在容器内部执行命令。
示例:自动化任务管理
假设我们要定期执行一个 PowerShell 脚本,并且每小时执行一次,可以使用计划任务管理工具(New-ScheduledTask
)来自动化这个过程:
$taskAction = New-ScheduledTaskAction -Execute "Powershell.exe" -Argument "C:\Scripts\MyScript.ps1"
$taskTrigger = New-ScheduledTaskTrigger -Hourly -At "1:00AM"
Register-ScheduledTask -Action $taskAction -Trigger $taskTrigger -TaskName "RunMyScriptEveryHour"
PowerShell 是一款功能强大的命令行工具,适用于各种系统管理任务。从文件操作、用户管理、网络配置到自动化任务和远程管理,PowerShell 提供了丰富的命令和功能,可以大大提升工作效率。无论你是管理员、开发人员还是 IT 专业人员,掌握 PowerShell 的高级功能都能显著提高你的自动化和脚本编写能力。
你可以利用这些命令创建定制化的解决方案,自动化重复性任务,甚至跨多个计算机和服务器进行远程管理。
深入探讨 PowerShell 的一些高级用法,包括系统管理、网络配置、任务自动化和更复杂的脚本操作。
高级 PowerShell 命令与自动化
1. 系统管理与自动化
PowerShell 作为自动化工具,对于日常的系统管理和操作任务极其有效。以下是一些常见的系统管理任务及其命令示例:
-
批量用户管理:
-
批量添加用户:
powershellCopy Code$users = @("User1", "User2", "User3") foreach ($user in $users) { New-LocalUser -Name $user -Password (ConvertTo-SecureString "P@ssw0rd" -AsPlainText -Force) -FullName "$user User" -Description "Test User" }
-
批量删除用户:
powershellCopy Code$users = @("User1", "User2", "User3") foreach ($user in $users) { Remove-LocalUser -Name $user }
-
批量添加到本地组:
powershellCopy Code$group = "Administrators" $users = @("User1", "User2", "User3") foreach ($user in $users) { Add-LocalGroupMember -Group $group -Member $user }
-
-
系统资源监控:
-
获取当前的 CPU 使用率:
powershellCopy CodeGet-WmiObject -Class Win32_Processor | Select-Object LoadPercentage
-
获取当前内存使用情况:
powershellCopy CodeGet-WmiObject -Class Win32_OperatingSystem | Select-Object TotalVisibleMemorySize, FreePhysicalMemory
-
获取磁盘空间:
powershellCopy CodeGet-WmiObject -Class Win32_LogicalDisk | Select-Object DeviceID, @{Name="FreeSpace(GB)";Expression={[math]::round($_.FreeSpace / 1GB, 2)}}, @{Name="Size(GB)";Expression={[math]::round($_.Size / 1GB, 2)}}
-
-
任务计划与调度:
-
创建一个定时任务,每天执行指定脚本:
powershellCopy Code$taskAction = New-ScheduledTaskAction -Execute "Powershell.exe" -Argument "C:\Scripts\Backup.ps1" $taskTrigger = New-ScheduledTaskTrigger -Daily -At "2:00AM" Register-ScheduledTask -Action $taskAction -Trigger $taskTrigger -TaskName "DailyBackupTask"
-
查看系统中的所有任务:
powershellCopy CodeGet-ScheduledTask
-
删除任务:
powershellCopy CodeUnregister-ScheduledTask -TaskName "DailyBackupTask"
-
2. 网络配置与管理
PowerShell 在网络配置和管理方面非常强大,可以用来查看、修改网络设置,管理 TCP 连接,甚至测试远程网络连接。
-
查看本地网络适配器:
powershellCopy CodeGet-NetAdapter
-
配置静态 IP 地址:
powershellCopy CodeNew-NetIPAddress -InterfaceAlias "Ethernet" -IPAddress "192.168.1.100" -PrefixLength 24 -DefaultGateway "192.168.1.1"
-
查看当前网络连接:
powershellCopy CodeGet-NetTCPConnection
-
测试网络连接:
powershellCopy CodeTest-NetConnection -ComputerName "google.com" -Port 443
-
修改防火墙规则:
-
启用防火墙:
powershellCopy CodeSet-NetFirewallProfile -All -Enabled True
-
禁用防火墙:
powershellCopy CodeSet-NetFirewallProfile -All -Enabled False
-
添加新的防火墙规则:
powershellCopy CodeNew-NetFirewallRule -DisplayName "Allow HTTP" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow
-
3. 数据备份与恢复
PowerShell 在数据备份与恢复方面也有很多强大的功能,可以用来自动化备份和恢复任务。
-
创建备份任务:
powershellCopy Code$backup = New-WBBackupTarget -Volume "C:\" Start-WBBackup -BackupTarget $backup
-
恢复文件:
powershellCopy CodeRestore-WBFile -BackupTarget $backup -File "C:\Backup\ImportantFile.txt"
4. PowerShell 脚本与模块管理
PowerShell 脚本和模块是自动化管理的重要工具,掌握它们的使用可以大大提升管理效率。
-
加载模块:
powershellCopy CodeImport-Module -Name "PSReadline"
-
创建自定义脚本:
-
创建一个简单的 PowerShell 脚本
powershellCopy CodeTestScript.ps1
:# TestScript.ps1 Write-Host "This is a test script"
-
执行脚本:
powershellCopy Code.\TestScript.ps1
-
脚本参数:
powershellCopy Codeparam ( [string]$Name, [int]$Age ) Write-Host "Hello, $Name. You are $Age years old."
-
执行脚本并传递参数:
powershellCopy Code.\TestScript.ps1 -Name "John" -Age 30
-
-
创建模块:
-
创建一个模块文件
powershellCopy CodeMyModule.psm1
:# MyModule.psm1 function Get-Greeting { param ( [string]$Name ) return "Hello, $Name!" }
-
导入并使用模块:
powershellCopy CodeImport-Module -Name "MyModule.psm1" Get-Greeting -Name "Alice"
-
5. PowerShell Remoting 与远程管理
PowerShell 的远程管理功能可以帮助管理员在多台计算机上同时执行命令,进行系统配置和问题排查。
-
启用远程管理:
powershellCopy CodeEnable-PSRemoting -Force
-
通过 PowerShell Remoting 执行命令:
powershellCopy CodeInvoke-Command -ComputerName "RemotePC" -ScriptBlock { Get-Process }
-
创建远程会话:
powershellCopy Code$session = New-PSSession -ComputerName "RemotePC"
-
通过远程会话执行命令:
powershellCopy CodeInvoke-Command -Session $session -ScriptBlock { Get-Service }
-
退出远程会话:
powershellCopy CodeExit-PSSession
6. 文件与目录管理
PowerShell 提供了强大的文件和目录管理功能,能够进行文件复制、移动、删除等操作。
-
复制文件:
powershellCopy CodeCopy-Item -Path "C:\source\file.txt" -Destination "C:\destination"
-
移动文件:
powershellCopy CodeMove-Item -Path "C:\source\file.txt" -Destination "C:\destination"
-
删除文件:
powershellCopy CodeRemove-Item -Path "C:\path\to\file.txt"
-
查看目录内容:
powershellCopy CodeGet-ChildItem -Path "C:\path\to\directory"
PowerShell 提供了强大的系统管理、自动化、远程管理和文件操作能力。通过学习 PowerShell,你可以高效地管理计算机和服务器,自动化常规任务,提升工作效率。无论是单台计算机管理还是大规模网络环境下的任务自动化,PowerShell 都是非常有力的工具。
标签:命令,Get,Windows,管理,获取,类别,New,PowerShell From: https://www.cnblogs.com/suv789/p/18637519