当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 如何使用 PowerShell 运行最佳实践分析器

作者:精品下载站 日期:2024-12-14 22:09:12 浏览:11 分类:玩电脑

如何使用 PowerShell 运行最佳实践分析器


在本教程中,您将学习如何使用 PowerShell 运行和查看最佳实践分析器结果。此外,我将向您展示如何将结果输出到可搜索的表中。

最佳实践分析器是什么?

最佳实践分析器是一款 Microsoft 工具,最初在 Windows Server 2008 R2 中提供。该工具扫描服务器上的角色并报告任何最佳实践违规行为。这些最佳实践是由 Microsoft 专家定义的,例如,定期备份 Active Directory 是最佳实践。最佳实践分析器可以扫描 Active Directory 并报告您的 Active Directory 最近是否未备份。

最佳实践分析器 (BPA) 工具可以从 GUI 或使用 PowerShell 运行。我发现 GUI 工具使用起来非常慢,这就是为什么我更喜欢使用 PowerShell 运行它。

最佳实践分析器的优点

  • 查找服务器上的最佳实践违规行为
  • 提高安全性
  • 查找性能和可靠性问题
  • 查找配置问题

最佳实践分析器 PowerShell Cmdlet

将使用三种不同的 PowerShell cmdlet 来运行和查看 BPA 结果。

获取 BPAmodel

此 cmdlet 获取并显示可以在系统上运行的 BPA 测试的列表。此 cmdlet 还将显示上次运行扫描的时间。

调用BPA模型

此 cmdlet 将启动特定测试(角色)的 BPA 扫描。

获取 BPAResult

显示最近 BPA 扫描的结果。

现在我将介绍一些示例。

步骤 1:列出可用的最佳实践分析器测试(模型)

第一步是列出您的服务器上可用的最佳实践分析器测试。这可以通过以下命令来完成。

get-bpamodel | select ID, Name, lastscantime

[玩转系统] 如何使用 PowerShell 运行最佳实践分析器

正如您所看到的,此 cmdlet 将列出可用的 BPA 测试(Microsoft 称之为模型)和上次扫描时间。测试列表取决于您在服务器上安装的角色。

第 2 步:运行 BPA 扫描

接下来,您获取步骤 1 中的 Id 并使用 Invoke-BPAModel 命令运行扫描。我将对 DirectoryServices(即 Active Directory)运行扫描。这是通过 Invoke-BPAModel 命令 + Id 完成的。 Active Directory 的 ID 是“Microsoft/Windows/DirectoryServices”,因此完整的命令如下:

Invoke-BPAModel “Microsoft/Windows/DirectoryServices”

如果我想在 DNS 上运行 BPA 扫描,命令将是:

Invoke-BPAModel “Microsoft/Windows/DNSServer”

这是 DirectoryServices 扫描的屏幕截图。这不显示结果,仅显示扫描的状态。

[玩转系统] 如何使用 PowerShell 运行最佳实践分析器

第 3 步:查看 BPA 扫描结果

此时,我刚刚对 Active Directory 和 DNS 运行了 BPA 扫描。现在是时候查看这些扫描的结果了。这是通过 Get-BpaResult 命令加上测试 ID 来完成的。

Get-BpaResult “Microsoft/Windows/DirectoryServices”

以下是命令的输出。

[玩转系统] 如何使用 PowerShell 运行最佳实践分析器

正如您所看到的,它的格式并不易于阅读,并且可以输出大量数据。有几种方法可以清理它并使其更易于阅读。

首先是过滤掉一些你不想要的字段。有几个我不需要,例如 ResultNumber、Excluded、RuleID、SubModelID 等。所以你可以做的是使用format-table命令,然后列出你想要显示的字段。

在下面的示例中,我只想显示严重性、类别、问题和影响。

Get-BpaResult -ModelId Microsoft/Windows/DirectoryServices | format-table Severity,Category,Problem,Impact

下面是命令的结果。

[玩转系统] 如何使用 PowerShell 运行最佳实践分析器

这看起来更好,但有几行是空白的。由于我只是想查找任何问题,因此我可以删除显示的信息结果。

这可以通过显示严重性不等于“信息”的结果来完成

Get-BpaResult -ModelId Microsoft/Windows/DirectoryServices | where severity -ne Information | format-table Severity,Category,Problem,Impact

这是命令的结果。

[玩转系统] 如何使用 PowerShell 运行最佳实践分析器

现在我有了一个更清晰的报告,仅显示我需要的详细信息。

在网格中显示 BPA 扫描结果

查看 BPA 扫描的一个更简单的选择是将其输出到网格。这是通过将结果传送到 OGV 来完成的。 OGV 是 Out-GridView 的缩写。

Get-BpaResult -ModelId Microsoft/Windows/DirectoryServices | OGV

输出如下所示。

[玩转系统] 如何使用 PowerShell 运行最佳实践分析器

更容易阅读吧?

您还可以通过输入过滤器来过滤结果。例如,如果我输入警告,它会过滤结果以仅显示那些包含警告的结果。您还可以重新排列列。

[玩转系统] 如何使用 PowerShell 运行最佳实践分析器

将 BPA 扫描导出到文件(CSV 或 HTM)

如果要将扫描结果保存到文件中,请使用以下选项之一。

  • 导出-CSV
  • 转换为Html

以下是导出到 CSV 文件的示例。

Get-BpaResult -ModelId Microsoft/Windows/DirectoryServices | export-csv c:\it\scan.csv

这是结果的屏幕截图。

[玩转系统] 如何使用 PowerShell 运行最佳实践分析器

以下是将扫描结果导出到 html 文件的示例

Get-BPAResult Microsoft/Windows/DirectoryServices | convertTo-Html | Set-Content C:\BPAResults\DirectoryServices.htm

概括

最佳实践分析器是内置于 Microsoft 服务器中的一个很棒的工具,我认为没有多少人知道或使用它。我建议根据 Microsoft 的最佳实践时常运行它,看看您的服务器是否存在任何重大问题或配置错误。虽然您可以从 GUI 运行扫描,但我发现 PowerShell 扫描速度更快且更易于使用。

资料来源:

  • 运行最佳实践分析器扫描并管理扫描结果
  • 转换为 HTML
  • 导出-CSV

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯