PowerShellでSet-ItemProperty
を使用してアイテムを作成しようとしていますが、これはほとんどのシステムで動作します。
New-PSDrive -name HKCR -PSProvider Registry -root HKEY_CLASSES_ROOT
Set-ItemProperty -Path HKCR:\Software\MyCompany\ -Name Level -Value 5 -ErrorAction SilentlyContinue
これにより、ほとんどのWindows 7システムでDWORD値が作成されますが、これが代わりにSTRING値を作成する1つのシステムが見つかりました。システムの動作が異なるとどうなりますか?すべてにその値が既に設定されているわけではなく、すべて同じPowershellバージョンを使用して同じベースイメージを使用します。
ところで、次のコードを使用することで、明示的に型を設定できることがわかったので、すでに問題を解決しました。
New-ItemProperty -Path HKCR:\Software\MyCompany\ -Name Level -Value 5 -ErrorAction SilentlyContinue -PropertyType DWord
しかし、好奇心だけのために、システムの動作が異なる理由を知りたいです。
私はそれがなぜ起こるかについての答えはありませんが、そのようなインスタンスを避けるために、明示的にしてください。タイプ(動的)パラメーターを使用して、 RegistryValueKind 値を指定します(New-ItemProperty
でも使用できます)。
Set-ItemProperty -Path HKCR:\Software\MyCompany -Name Level -Value 5 -Type DWord
これを試して。
[Microsoft.Win32.Registry]::SetValue("HKEY_CLASSES_ROOT\Software\MyCompany","Level",5,[Microsoft.Win32.RegistryValueKind]::DWord)