2017-10-28 18 views
-1

私は、PWShellスクリプトを使用して、MDT/SCCM経由でイメージングシーケンスのインストール後にコンピュータを照会することを検討しています。積極的に、System Properties領域(製造元、モデル、InstallDate、SerialNumberなど)の一部を達成するための複数のVBスクリプトがあり、これをすべて単一のスクリプトに統合したいと考えています。WMI情報に基づいてレジストリに書き込むPowershellスクリプト

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"に配置する必要があります。

Manufacturer、Model、Name、InstallDate、SystemTypeも含めることをお勧めします。

答えて

1

正しく理解すれば、レジストリに書き込むことはできますが、複数のアイテムを同じ「パス」に書き込む方法がわかりません。

Windowsレジストリは、「キー」と1つ以上の値によって構成されます。上の "new-item"行は実際に値を設定しますが、指定しないので、 "magic"のデフォルト値が使用されているように見えます。 同じパスで複数のものを設定するためには、使用して、たとえば、コマンドレット セットItemPropertyを使用したい:

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

をあなたはその後、(同じ技術を使用して、そのパス内の複数の「プロパティ」を持つことができますただ、「名前」パラメータに異なる値を使用します。

+0

PowerShellのリターンは、しかし見たときに、それが書かれていると述べていますレジストリで私はストライトのエントリーは見ない「モデル」または「MacBookPro11,1」の値をそれに付随させます。既に存在していない場合、 "Set-ItemProperty"も文字列キーを作成しますか(私が混乱している場合はごめんなさい)? –

+0

となります。 Googleの "Set-itemproperty" "レジストリ"とあなたは例のホストを見つける必要があります。 – Trondh

+0

最初は間違った宛先に書き込んでいたと判断できました。そのため、私はそれを見ていませんでした。しかし、 "$ model"の戻り値が空白の文字列であれば、それをどのように格納してレジストリに書き込むことができますか? '$ Model =(Get-WmiObject -Class:Win32_ComputerSystem).Model'戻り値は' HP Elitebook x360'です。 –

-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 
関連する問題