我已经阅读了很多帖子,并且拉了很多很棒的信息。但我仍然有一个问题,从注册表获取版本号。我发现这个代码得到一个IE版本,似乎工作得很好。Get-ItemProperty:无法将参数绑定到参数'Path',因为它是空的
$array [email protected]()
$keyname = 'SOFTWARE\\Microsoft\\Internet Explorer'
$computernames = Get-Content C:\scripts\test_names1.csv
foreach ($server in $computernames)
{
$reg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey('LocalMachine', $server)
$key = $reg.OpenSubkey($keyname)
$value = $key.GetValue('svcVersion')
$obj = New-Object PSObject
$obj | Add-Member -MemberType NoteProperty -Name "ComputerName" -Value $server
$obj | Add-Member -MemberType NoteProperty -Name "IEVersion" -Value $value
$array += $obj
}
$array | select ComputerName,IEVersion | export-csv C:\scripts\test1-IE_Version.csv
但是,当我修改它,试图得到它没有谷歌的Chrome版本与
**Get-ItemProperty : Cannot bind argument to parameter 'Path' because it is null.**
这里是我的修改,以试图让Chrome版本。
$array [email protected]()
$keyname = '\\SOFTWARE\\Wow6432Node\\Google\\Update\\clients\\{8A69D345-D564-463c-AFF1-A69D9E530F96}'
$computernames = Get-Content C:\scripts\test_names.csv
foreach ($server in $computernames)
{
$reg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey('LocalMachine', $server)
$regkey = $reg.OpenSubKey('SOFTWARE\\Wow6432Node\\Google\\Update\\clients\\{8A69D345-D564-463c-AFF1-A69D9E530F96}')
$value = (Get-ItemProperty -Path $regkey -Name pv).pv
$obj = New-Object PSObject
$obj | Add-Member -MemberType NoteProperty -Name "ComputerName" -Value $server
$obj | Add-Member -MemberType NoteProperty -Name "Installed" -Value $installed
$obj | Add-Member -MemberType NoteProperty -Name "ChromeVersion" -Value $value
$array += $obj
}
$array | select ComputerName,Installed,ChromeVersion | export-csv C:\scripts\1222016_Chrome_Version.csv
由于原始编辑引发更多错误,我不得不更改$ keyname和$ value变量。我在PowerShell中是全新的,所以对我来说很简单。
在此先感谢。
-S
会建议'林通过'Get-Content'获取CSV文件的端口-csv'。 –
您尝试过哪些调试?通常当你由于空值而出现错误时,这是因为你期望存在的东西不存在。 –
当我通过它时,它转储在“你无法调用一个空值表达式的方法。” 在C:\ scripts \ Get_Chrome_Version.ps1:8 char:1 + $ value = $ regkey.GetValue('pv ')“ – SeanDu