问题描述
我正在尝试为我们网络上的工作站导出已安装的 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]