将已安装的域计算机应用程序版本导出为 CSV - Chrome

问题描述

我正在尝试为我们网络上的工作站导出已安装的 Chrome 版本。我已将以下脚本放在一起,但遇到了导出到 CSV 时出错的问题。 任何建议将不胜感激。

Select-Object : Cannot convert System.Diagnostics.FiLeversionInfo to one of the following types {System.String,System.Management.Automation.ScriptBlock}.
At line:22 char:14
            Select-Object $computer,$Version | export-csv -Path c:\ ...
     CategoryInfo          : InvalidArgument: (:) [Select-Object],NotSupportedException
     FullyQualifiedErrorId : DictionaryKeyUnkNownType,Microsoft.PowerShell.Commands.SelectObjectCommand

$computerlist = get-content C:\temp\computerlist.txt
foreach ($computer in $computerlist){
    $test = 1
    Write-Host "Testing connection to $computer..." -ForegroundColor magenta
    Try{
        Test-Connection -Count 1 -ComputerName $computer -ErrorAction Stop | out-null
        Write-Host "Connected!" -ForegroundColor Green
        }
    Catch{
        Write-Host "Could not connect to $computer" -BackgroundColor Red -ForegroundColor Black
        $test = 0
        $computer | out-file c:\temp\badlist.txt    
        }
    If ($test -eq 1){
        ForEach($computer in $computerlist){
            $computer = $computer 
             $Version = (Get-Item (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\chrome.exe').'(Default)').VersionInfo
             "$computer - $Version"
             Out-String -InputObject $Version
             Select-Object $computer,$Version | export-csv -Path c:\temp\Chromeversion$($date)-PS.csv   -NoTypeinformation -Append 

解决方法

Select-Object $computer,$Version

没有按预期工作,因为 Select-Object 期望属性 names(或 calculated properties)作为(位置隐含的)-Property 参数。

您正在传递被解释为名称的和一个 System.Diagnostics.FileVersionInfo 实例(存储在 {{1} }) 不被接受为 name,这是错误消息所指示的。

为了得到你想要的,构造一个 $Version 如下:

[pscustomobject]