常见的 PowerShell 命令 |每个管理员都必须知道
每个管理员都必须了解重要且常见的 PowerShell 命令来管理其 IT 内容
获取重要 PowerShell 命令的集合非常重要,以便您可以在需要时使用它们。
无论您是初学者还是想提高技能。
本文将帮助您介绍管理系统的最常用命令
就像在 Active Directory 中创建用户、列出用户和组、列出组策略、将结果导出到 CSV 文件或将其作为附件通过电子邮件发送一样。
在本文中,我们将探讨大约 30 个重要且常见的 PowerShell 命令,这些命令有助于管理与 Windows Server 2025 域控制器连接的网络中的系统。
用于在 AD 中创建、修改和列出用户的 PowerShell 命令
要列出 Active Directory 中的所有用户,您可以使用以下 cmdlet
Get-ADUser -Filter *
如果您希望将这些结果导出到 CSV 文件中,请运行以下 cmdlet。
Get-ADUser -Filter * | Export-Csv -Path c:reportsusers.csv
注意:确保您在 C: 驱动器中创建了一个名为 reports 的文件夹,以提供正确的路径。

因此,要在 Active Directory 中创建名为 Peter 的新用户,请使用以下 PowerShell cmdlet
$splat = @{
Name = 'Peter'
AccountPassword = (Read-Host -AsSecureString 'AccountPassword')
Enabled = $true
}
New-ADUser @splat
您只需输入用户的密码,它就会创建并启用名为 Peter 的用户。
来修改用户的广告属性,你必须使用cmdlet
这会将用户 Peter 的头衔设置为 IT 经理
Set-ADUser -Identity Peter -Title "IT Manager"


要禁用 Active Directory 中的用户,请运行以下 cmdlet
Disable-ADAccount -Identity peter
因此,要启用 AD 用户,请运行以下 cmdlet
Enable-ADAccount -Identity peter
要从 Active Directory 解锁锁定的用户帐户,请运行以下 cmdlet
Unlock-ADAccount -Identity peter
用于获取和列出 AD 组、计算机和 OU 的 PowerShell Cmdlet
如果您想获取 AD 组的完整列表,请运行以下 cmdlet
Get-ADGroup -Filter *
因此,如果您想获取任何特定 AD 组(例如“IT-Helpdesk”)中的成员列表,请运行以下 cmdlet
Get-ADGroupMember -Identity "IT-Helpdesk"


另外,如果您想列出加入域的所有计算机,请运行以下 cmdlet
Get-ADComputer -Filter *
但是,如果您需要从 AD 中删除任何特定计算机(例如 PC01),请运行以下 cmdlet
这将从您的 Active Directory 计算机中删除计算机名称 PC01。
Remove-ADComputer -Identity "PC01"
此外,如果您想按操作系统列出计算机,请运行以下 cmdlet
查找 Windows 10 计算机
Get-ADComputer -Filter {OperatingSystem -like "*Windows 10*"}
列出 Windows 11 计算机
Get-ADComputer -Filter {OperatingSystem -like "*Windows 11*"}
获取 Windows Server 2025 等
Get-ADComputer -Filter {OperatingSystem -like "*Windows Server 2025*"}


现在,如果您想查找 Active Directory 中的所有 OU,请运行以下 cmdlet
Get-ADOrganizationalUnit -Filter *
用于组策略和 DNS 的 PowerShell Cmdlet
要列出应用于 Active Directory 的所有组策略,请运行以下 cmdlet
Get-GPO -All
因此,如果要将其导出到 CSV 文件,请运行以下 cmdlet。
Get-GPO -All | Export-Csv -Path c:reportsgpo.csv
注意:确保您拥有报告文件夹已经在C:


现在,要获取 DNS 服务器区域列表,请运行以下 cmdlet
Get-DnsServerZone
此外,要添加 DNS 服务器资源 A 记录,请运行以下 cmdlet
这将在我们的区域 Techijack.local 中创建一个名为 App 的主机 A 记录,指向 IP 192.168.2.10
Add-DnsServerResourceRecordA -Name "App" -ZoneName "techijack.local" -Ipv4Address "192.168.2.10"


如果您想从 DNS 区域中删除任何主机 A 记录,可以运行以下 cmdlet。
这将从 DNS 区域 Techijack.local 中删除应用程序名称的主机 A 记录
Remove-DnsServerResourceRecord -ZoneName "techijack.local" -RRType "A" -Name "app"
Windows 服务的常见 PowerShell 命令
要列出计算机上的所有服务,请运行以下 cmdlet
Get-Service
因此,如果您想停止任何服务,例如我们示例中的后台处理程序,我们运行以下 cmdlet
Stop-Service -Name "Spooler"
停止后,如果您想查看同一服务的状态,请运行以下 cmdlet
Get-service -Name "spooler"
现在,它会显示为已停止
要启动相同的服务,请运行以下 cmdlet
Start-Service -Name "Spooler"
如果您想直接重新启动服务而不停止它,请运行 cmlet
Restart-Service -Name "Spooler"
用于获取事件日志、测试网络连接的 PowerShell 命令
事件日志是一个非常重要的方面,您应该不时地检查它们。
因此,要获取最新 50 个事件日志的列表,请运行 cmdlet
Get-EventLog -LogName System -Newest 50
因此,要检查互联网连接以及端口 443 是否打开,请运行以下 cmdlet
Test-NetConnection -ComputerName google.com -port 443
如果互联网连接正确,这将表明连接测试成功。


AD中远程重启和关闭客户端PC的命令
您应该知道要重新启动的客户端 PC 的名称。要重新启动客户端 PC,请运行以下 cmdlet
这将重新启动名为 PC01 的客户端计算机
Restart-Computer -ComputerName "PC01" -Force
同样,如果您想关闭计算机,请运行以下 cmdlet
这将关闭名为 PC01 的客户端计算机
Restart-Computer -ComputerName "PC01" -Force
将 PowerShell 结果作为附件报告通过电子邮件发送
假设您想要获取每日用户上次登录报告的电子邮件警报。
您可以设置PowerShell脚本并安排它,这样您就可以每天获取所有用户上次登录的报告。
您可以运行并安排下面的脚本以获取最后一次登录报告作为附件。
$Date = Get-Date -Format "yyyy-MM-dd"
$ReportFile = "C:ReportsDailyReport.csv"
# Export AD Users
$Users = Get-ADUser -Filter * -Property SamAccountName,
DisplayName, Enabled, LastLogonDate
$Users | Export-Csv $ReportFile -NoTypeInformation
# Send Email with Report Attachment
$sendMailMessageSplat = @{
From = 'Administrator <[email protected]>'
To = 'Jack <[email protected]>'
Subject = 'Daily User Report'
Body = 'Pls find the attached user daily report'
smtpServer = 'mail.techijack.net'
Attachments = 'c:reportsDailyReport.csv'
}
Send-MailMessage @sendMailMessageSplat
注意:确保根据您的配置设置正确的报告和 SMTP 服务器路径


结论
每个系统管理员都应该熟悉这些常见的 PowerShell 命令,以便在 Active Directory 环境中管理其系统。
最佳做法是在一处记下有用的 PowerShell 命令,以便在需要时使用它们。
通过自动化 PowerShell cmdlet 并对其进行调度。
因此,您可以配置每日电子邮件警报,以帮助管理组织中的系统。
如果对本文有任何疑问,请随时联系。
我希望您还会喜欢更多 Active Directory 教程
此外,如果您想查看上述所有 PowerShell 命令的实际效果,请观看下面的视频
