Я пытаюсь прочитать значение из записи реестра с помощью Powershell. Это довольно просто, однако один конкретный раздел реестра дает мне проблемы.Ошибка получения значения реестра с помощью Powershell
Если я запустил следующее, я не могу получить значение (по умолчанию) «$ setting».
C:\Program Files\PowerGUI> $setting = Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping\Autorun.inf"
C:\Program Files\PowerGUI> $setting
PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\
CurrentVersion\IniFileMapping\Autorun.inf
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\
CurrentVersion\IniFileMapping
PSChildName : Autorun.inf
PSDrive : HKLM
PSProvider : Microsoft.PowerShell.Core\Registry
(default) : @SYS:DoesNotExist
Обычно я бы установил $ setting.Attribute или $ setting (по умолчанию). Тем не менее, что приводит к следующей ошибке:
C:\Program Files\PowerGUI> $setting.(default)
The term 'default' is not recognized as a cmdlet, function, operable program, or script file. Verify the term and try again.
At :line:1 char:17
+ $setting.(default <<<<)
Как получить значение «(по умолчанию)» атрибут?
Заранее спасибо.
Чтобы добавить к этому, в исходном коде() проинструктировано PowerShell для лечения текста (в данном случае «По умолчанию») в качестве отдельной команды. Когда у вас есть свойства, у которых есть такие необычные символы, вам нужно указать (и иногда использовать $()) значение, подобное JaredPar, показанное так, чтобы PowerShell не интерпретировал значение как выражение. Другие персонажи, на которые нужно обратить внимание, равны $. : '' (может быть больше, но это все, что я могу запомнить) – JasonMArcher
Использование $ setting. '(default)', чтобы избежать скобок также работает. –
Для полноты, второй пример действительно требует .Value в конце , – cristobalito