常见的 PowerShell 命令 |每个管理员都必须知道

Jacki

每个管理员都必须了解重要且常见的 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

有关的:Windows 10 用户应了解的最常用运行命令

$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 命令的实际效果,请观看下面的视频