В 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
объекты? Если да, то почему не появляется часть после двоеточия?