21

Set-ItemPropertyほとんどのシステムで動作する PowerShellを使用してアイテムを作成しようとしています。

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

しかし、好奇心のために、システムの動作が異なる理由を知りたいと思います。

4

2 に答える 2

33

なぜそれが起こるのかについての答えはありませんが、そのような場合を避けるために、明確にしてください。Type (動的) パラメーターを使用して、RegistryValueKind値を指定します ( で使用することもできますNew-ItemProperty) :

Set-ItemProperty -Path HKCR:\Software\MyCompany -Name Level -Value 5 -Type DWord
于 2013-05-28T11:01:32.020 に答える
6

これを試して。

[Microsoft.Win32.Registry]::SetValue("HKEY_CLASSES_ROOT\Software\MyCompany","Level",5,[Microsoft.Win32.RegistryValueKind]::DWord)
于 2014-12-18T11:09:22.497 に答える