Я пытаюсь вернуть значения реестра из определенных ключей. По какой-то причине я не могу получить строковое значение ключа. Я могу получить DWordValue без проблем.
Может ли кто-нибудь сказать мне, почему строковое значение не возвращается?
Код:
function getRegistry(){
Param (
[string]$hklm = "2147483650",
[string]$key = "SOFTWARE\Microsoft\Windows\CurrentVersion\Run",
[string]$Value2 = "ConnectionCenter"
)
$credential = Get-Credential
$test | ForEach-Object {
$wmi = Get-WmiObject -List "StdRegProv" -Namespace root\default -ComputerName "compName" -Credential $credential
#($wmi.GetStringValue($hklm, $key, $value)).sValue
$wmi.GetStringValue($hklm, $key, $Value2)
}
}
getRegistry
$test
в этом коде имеет значение null. Ваша функция не должна ничего делать, поскольку в цикле нет объектов. - person Matt   schedule 02.05.2017$test
является избыточным, но цикл все еще срабатывает. В любом случае вся структура цикла бессмысленна, если только вы не разрешите использование нескольких компьютеров, на что сейчас она не похожа. Я бы рекомендовал переместить учетные данные в параметр, который вы передаете, чтобы вам не приходилось каждый раз вводить новые учетные данные. - person Matt   schedule 02.05.2017$wmi
я могу запустить следующее, чтобы увидеть все свойства и их значения:$wmi.EnumValues($hklm,$key).sNames|%{"{0} - {1}" -f $_,$wmi.GetStringValue($hklm,$key,$_).sValue}
- person TheMadTechnician   schedule 02.05.2017