-1

我希望在通过 MDT/SCCM 安装后映像序列期间使用 powershell 脚本来 WMI 查询计算机。目前有多个 VB 脚本来完成部分系统属性区域(制造商、型号、安装日期、序列号等),并希望将其合并到一个脚本中来完成所有工作。

以管理员身份运行 Powershell ISE,这样就不会导致任何权限问题;当我通过 Bootcamp 在 Windows 10 上进行测试时,模型信息会返回 Macbook。

Clear-Host
$Model = (Get-WmiObject -Class:Win32_ComputerSystem).Model
$RegKey = “HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\OEMInformation”
New-Item -Path $RegKey -Name Model -Type String -Value $Model –Force

After I ran the script, these were the results (shown below).

Name     Property
-----    --------
Model    (default) : MacBookPro11,1

但是,该值不会写入注册表。我怎样才能将信息写入注册表,同时还允许对齐多个变量?所有值(子项)都需要创建并放置在“OEMInformation”的相同注册表路径中。

旨在包括制造商、型号、名称、安装日期、系统类型。

4

2 回答 2

1

如果我理解正确,您可以写入注册表,但您不确定如何将多个项目写入同一个“路径”。

Windows 注册表由“键”和一个或多个值构成。您上面的“new-item”行实际上设置了一个值,但您没有指定一个值,因此看起来使用了“magic”默认值。为了在同一路径中设置多个,您将使用 Cmdlet Set-ItemProperty,例如使用:

Set-ItemProperty -Path $RegKey -Name "Model" -value $Model

然后,您可以使用相同的技术在该路径中拥有多个“属性”(只需为“名称”参数使用不同的值。

于 2017-10-28T19:15:00.687 回答
-1

我能够解决这个问题,感谢@Trondh 的帮助。

$Model = (Get-WmiObject -Class:Win32_ComputerSystem).Model
$RegPath = 'Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\OEMInformation'

New-Item $RegPath -Force | New-ItemProperty -Name Model -Value $Model -Force | Out-Null
于 2017-10-29T06:07:34.017 回答