कर रहे हैं RegistryKey गुण वास्तव में स्ट्रिंग वस्तुओं में powershell?

0

सवाल

Powershell में, यह संभव है करने के लिए मिल की एक सरणी RegistryKeys के रूप में निम्नानुसार:

$hkeys = Get-ChildItem HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

जब मैं निरीक्षण के पहले तत्व इस सरणी, यह है कि मैं क्या पाने के लिए:

    Hive: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall


Name                           Property                                                                                                                    
----                           --------                                                                                                                    
7-Zip                          DisplayName     : 7-Zip 21.03 beta (x64)                                                                                    
                               DisplayVersion  : 21.03 beta                                                                                                
                               DisplayIcon     : C:\Program Files\7-Zip\7zFM.exe                                                                           
                               InstallLocation : C:\Program Files\7-Zip\                                                                                   
                               UninstallString : "C:\Program Files\7-Zip\Uninstall.exe"                                                                    
                               NoModify        : 1                                                                                                         
                               NoRepair        : 1                                                                                                         
                               EstimatedSize   : 5237                                                                                                      
                               VersionMajor    : 21                                                                                                        
                               VersionMinor    : 3                                                                                                         
                               Publisher       : Igor Pavlov                                                                                               

Property लग रहा था थोड़ा अजीब है, तो मैं में आगे देखा है कि:

> $hkeys[0].property.gettype

IsPublic IsSerial Name                                     BaseType                                                                                        
-------- -------- ----                                     --------                                                                                        
True     True     String[]                                 System.Array                                                                                    

तत्वों में property विशेषता है, के बाद से वे कर रहे हैं द्वारा सीमांकित एक बृहदान्त्र : नहीं मालूम था तार की तरह है, तो मैं ने देखा एक सा आगे है, लेकिन पाया कि वे वास्तव में कर रहे हैं String वस्तुओं:

> $hkeys[0].property[0].gettype

IsPublic IsSerial Name                                     BaseType                                                                                        
-------- -------- ----                                     --------                                                                                        
True     True     String                                   System.Object                                                                                   

के बाद से वे दिखाई दिया जा करने के लिए स्ट्रिंग वस्तुओं, मैं करने की कोशिश की गूंज पहले से एक है । हालांकि, यह केवल पता चलता है पहली स्ट्रिंग का हिस्सा है और नहीं करने के बाद भाग बृहदान्त्र:

> $hkeys[0].property[0]
DisplayName

मुझे लगता है जैसे वहाँ कुछ मौलिक है, जो मैं समझ में नहीं आता यहाँ. कर रहे हैं के तत्वों की सरणी वास्तव में String वस्तुओं? यदि हां, तो क्यों नहीं भाग के बाद पेट दिखाई देते हैं?

arrays object powershell registry
2021-11-23 17:08:14
1

सबसे अच्छा जवाब

1

रजिस्ट्री वस्तुओं एक परिभाषित आउटपुट स्वरूप है जो powershell का उपयोग करता है जब कोई प्रारूप नहीं दिया जाता है. आप और अधिक पढ़ सकते हैं यहाँ about_Format.ps1xml

आप इस परीक्षण कर सकते हैं बुला द्वारा

$hkeys #formated with name:value, actually uses $hkeys | Out-Default

$hkeys | Format-Table Property #value won't show anymore

$hkeys | Format-List #value won't show anymore

डिफ़ॉल्ट फ़ाइल स्वरूप के लिए रजिस्ट्री (पूर्व: C:\Windows\System32\WindowsPowerShell\v1.0\Registry.format.ps1xml) प्रदर्शित करेगा संपत्ति निम्नलिखित के रूप में

$result = (Get-ItemProperty -LiteralPath $_.PSPath |
    Select * -Exclude PSPath,PSParentPath,PSChildName,PSDrive,PsProvider |
    Format-List | Out-String | Sort).Trim()
$result = $result.Substring(0, [Math]::Min($result.Length, 5000) )
if($result.Length -eq 5000) { $result += "..." }
$result

और जैसा कि आप देखा है, उत्पादन में एक string[]

प्राप्त करने के लिए वास्तविक मूल्य powershell में आप की जरूरत है कॉल करने के लिए एक विधि का उपयोग करें या Get-ItemProperty

$hkeys[0].getvalue('DisplayName') #you have to specify the property name
# or
$hkeys[0] | Get-ItemProperty
2021-11-23 21:18:45

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में