Get-ItemProperty:无法将参数绑定到参数' Path'因为它是null

时间:2016-01-22 20:56:51

标签: powershell powershell-v2.0 powershell-v3.0 powershell-remoting

我已经阅读了很多帖子,并且已经提取了很多很棒的信息。但是我仍然遇到从注册表中获取版本号的问题。我发现这个代码可以获得IE版本,而且这似乎工作正常。

$array =@() 
$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 =@()
$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

2 个答案:

答案 0 :(得分:0)

以下适用于我,与IE代码基本相同:

Exception from Tracker afterFlush function:
TypeError: $buttons.each(...).ckTooltip is not a function
    at HTMLDocument.<anonymous> (materialNote.js:6722)
    at fire (jquery.js:3143)
    at Object.self.add [as done] (jquery.js:3189)
    at jQuery.fn.ready (jquery.js:3423)
    at createTooltip (materialNote.js:6702)
    at createLayoutByFrame (materialNote.js:6873)
    at createLayout (materialNote.js:6978)
    at HTMLDivElement.<anonymous> (materialNote.js:7270)
    at Function.jQuery.extend.each (jquery.js:384)
    at jQuery.fn.jQuery.each (jquery.js:136)

答案 1 :(得分:0)

如果我理解你的问题,你问的是如何判断计算机上安装了哪些程序,以及计算机上的IE版本是什么,这是一个特例。

首先,如果安装了应用程序&#34;并显示在Programs and Features列表中,然后您可以使用我在本文中编写的Get-InstalledApp.ps1脚本来查看已安装的应用程序:

Windows IT Pro: Auditing 32-Bit and 64-Bit Applications with PowerShell

但是,由于Internet Explorer是一个操作系统组件,因此未安装&#34;作为一个典型的程序,我写了一个不同的脚本来找到IE版本:

Get-IEVersion.ps1