는 레지스트리 키 속성을 정말 문자열에서 객체 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                                                                                   

이후 그들이 등장하는 문자열체를 보려고 했 echo 첫 번째 하나입니다. 그러나,그것만의 첫 번째 부분은 문자열과하지 않는 부분 콜론 뒤:

> $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ý
..................................................................................................................