2013-05-28 14 views
13

Ben en çok sistemlerinde çalışmaktadır PowerShell Set-ItemProperty kullanarak bir öğe oluşturmak için deneyin: Bu çoğu Windows 7 sistemlerinde bir DWORD değerini oluştururSet-ItemProperty, DWord yerine bazı sistemlerde Kayıt Defteri Değerini Dize olarak ayarlar, neden?

New-PSDrive -name HKCR -PSProvider Registry -root HKEY_CLASSES_ROOT 

Set-ItemProperty -Path HKCR:\Software\MyCompany\ -Name Level -Value 5 -ErrorAction SilentlyContinue 

, ama bu bir STRING oluşturur tek bir sistem bulduk yerine değer ve bilmek istiyorum: neden? Sistemlerin farklı davrandığı ne olabilir? Bu değerlerin hepsi önceden ayarlanmış değil, hepsi aynı Powershell sürümünü kullanarak aynı temel görüntüyü kullanır.

Btw, aşağıdaki kodu kullanarak, açıkça bir tür ayarlayabilirsiniz bulundu, bu yüzden zaten sorunu çözüldü:

New-ItemProperty -Path HKCR:\Software\MyCompany\ -Name Level -Value 5 -ErrorAction SilentlyContinue -PropertyType DWord 

Ama sadece merak için, ben sistemler farklı davranır neden bilmek istiyorum .

cevap

21

Bunun nedenine bir yanıtım yok, ancak bu tür durumlardan kaçınmak için açık olun. (Ayrıca New-ItemProperty ile kullanabilirsiniz) Tip (dinamik) Parametre kullanın ve bir RegistryValueKind değer belirtin:

Set-ItemProperty -Path HKCR:\Software\MyCompany -Name Level -Value 5 -Type DWord 
+2

'-Type 'herhangi bir yerde belgelenmiş mi? –

3

bu deneyin.

[Microsoft.Win32.Registry]::SetValue("HKEY_CLASSES_ROOT\Software\MyCompany","Level",5,[Microsoft.Win32.RegistryValueKind]::DWord) 
+1

Bu, bazı tek nedenlerden dolayı -type parametresinin mevcut olmadığı eski powershell sürümleri için iyi çalışır. –

İlgili konular