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

[玩转系统] 使用 PowerShell 脚本检查 Windows 11 硬件准备情况

作者:精品下载站 日期:2024-12-14 01:52:39 浏览:14 分类:玩电脑

使用 PowerShell 脚本检查 Windows 11 硬件准备情况


在本文中,我们将了解如何使用官方 Microsoft HardwareReadiness.ps1 PowerShell 脚本在域计算机上执行批量 Windows 11 硬件兼容性检查。

此脚本检查计算机是否满足以下运行 Windows 11 的最低要求:

  • 兼容的 x64 处理器(支持的 CPU 的完整列表)

  • 4+ GB 内存

  • 最小 64 GB 硬盘大小

  • 启用 UEFI 和安全启动的设备

  • 与 DirectX 12 和 WDDM 2.0 驱动程序兼容的显卡

  • TPM 2.0模块

要手动检查特定计算机的硬件是否与 Windows 11 要求兼容:

  1. 下载 HardwareReadiness.ps1 脚本 (https://aka.ms/HWReadinessScript)。

  2. 打开提升的 Windows PowerShell 控制台(该脚本使用

    Get-WMIObject

    cmdlet,最新版本的 PowerShell Core 不支持)

  3. 在当前会话中启用 PowerShell 脚本执行:

    Set-ExecutionPolicy -Scope Process RemoteSigned
  4. 运行脚本:

    .\HardwareReadiness.ps1

[玩转系统] 使用 PowerShell 脚本检查 Windows 11 硬件准备情况

该脚本已返回代码0。这意味着您的计算机满足 Windows 11 的硬件要求(

returncode:0 , resurnresult=CAPABLE

)。

{"returnCode":0,"returnReason":"","logging":"Storage: OSDiskSize=427GB. PASS; Memory: System_Memory=32GB. PASS; TPM: TPMVersion=2.0, 0, 1.38. PASS; Processor: {AddressWidth=64; MaxClockSpeed=3901; NumberOfLogicalCores=12; Manufacturer=AuthenticAMD; Caption=AMD64 Family 25 Model 80 Stepping 0; }. PASS; SecureBoot: Capable. PASS; ","returnResult":"CAPABLE"}

假设您需要在企业计算机上执行大规模 Windows 11 兼容性检查。在这种情况下,您可以运行此 PowerShell 脚本并使用 SCCM、Intune 甚至 WSUS(也可以部署第三方软件和脚本)等工具收集信息。对于简单的情况,您可以通过组策略运行此 PowerShell 脚本,并将结果保存在 Active Directory 的计算机对象属性中。

原来的脚本代码需要稍微修改一下。

请注意,此 PowerShell 脚本文件的代码已由 Microsoft 进行数字签名。然而,签名证书已于 2022 年到期。

编辑 HardwareReadiness.ps1 文件并在末尾、#SIG # Begin 签名块: 之前添加以下代码

$outObject = $outObject | ConvertTo-Json -Compress
$computer = $env:COMPUTERNAME
$ComputerSearcher = New-Object DirectoryServices.DirectorySearcher
# Specify your domain name
$ComputerSearcher.SearchRoot = "LDAP://DC=WOSHUB,DC=LOC"
$ComputerSearcher.Filter = "(&(objectCategory=Computer)(CN=$Computer))"
$computerObj = [ADSI]$ComputerSearcher.FindOne().Path
$computerObj.Put( "Info", $outObject )
$computerObj.SetInfo()

[玩转系统] 使用 PowerShell 脚本检查 Windows 11 硬件准备情况

此 PowerShell 代码将 Windows 11 兼容性信息写入 Active Directory 中的 Info 计算机属性。

将 PS1 脚本文件复制到

\a-d.loc\Netlogon

域控制器上的文件夹。

[玩转系统] 使用 PowerShell 脚本检查 Windows 11 硬件准备情况

打开域组策略管理控制台(

gpmc.msc

),创建一个新的 GPO,并将其链接到计算机的 OU。

导航至计算机配置 -> 策略 -> Windows 设置 -> 脚本(启动/关闭)-> 启动 -> 选项卡 PowerShell 脚本,然后指定 HardwareReadiness 的 UNC 路径.ps1 脚本

[玩转系统] 使用 PowerShell 脚本检查 Windows 11 硬件准备情况

转到计算机配置 -> 管理模板 -> 系统 -> 组策略。启用策略配置登录脚本延迟并设置1 分钟脚本执行延迟。

另外,在计算机配置 -> 管理模板 -> 系统 -> 登录下启用计算机启动和登录时始终等待网络选项。

详细了解如何通过 GPO 运行登录 PowerShell 脚本。

重新启动客户端的计算机。启动 ADUC 控制台(

dsa.msc

)并打开计算机属性。转到属性编辑器选项卡,检查信息参数现在是否包含检查计算机 Windows 11 兼容性的结果。在“属性编辑器”选项卡中,检查 信息 参数现在是否包含计算机 Windows 11 兼容性检查的结果。

[玩转系统] 使用 PowerShell 脚本检查 Windows 11 硬件准备情况

在所有计算机上运行登录脚本后,您可以使用 Get-ADComputer cmdlet 从 Active Directory 快速查看有关兼容和不兼容计算机的信息:

Get-ADComputer -Filter {enabled -eq "true"} -properties *| Where-Object {$_.info -ne $null}

[玩转系统] 使用 PowerShell 脚本检查 Windows 11 硬件准备情况

有关不兼容计算机和不满足 Win 11 最低要求的特定计算机硬件的更多详细信息,请运行以下 PowerShell 脚本:

$Report = @()
$computers = Get-ADComputer -Filter {enabled -eq "true"} -properties *| Where-Object { $_.Info -match '"returnCode":1'}
foreach ($computer in $computers){
    $jsonString =$computer.info
    $object = $jsonString | ConvertFrom-Json
    $returnReasonValues = $object.returnReason -split ', '
    $CompInfo = [PSCustomObject]@{
          "Computer" = $computer.name
          "NonCompatibleItems" = $returnReasonValues
        }
    $Report += $CompInfo
}
$Report|fl

ConvertFrom-Json cmdlet 用于将数据从 JSON 格式转换。

[玩转系统] 使用 PowerShell 脚本检查 Windows 11 硬件准备情况

目前,通过使用 LabConfig 键中的多个注册表选项,您可以在全新安装 Windows 11 期间忽略对 TPM、安全启动和其他硬件要求的检查。通过 AllowUpgradesWithUnsupportedTPMorCPU 键,您甚至可以在硬件不受支持的计算机上升级到 Windows 11。

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

取消回复欢迎 发表评论:

关灯