【发布时间】:2019-11-04 01:29:10
【问题描述】:
我的脚本收集 msi 信息,例如 ProductCode、ProductName、升级代码等。 我正在尝试获取 CLI 中读取导出 csv 文件的所有信息。
这里是一段代码,其余的也差不多
$Dir = Get-ChildItem -Path W:\MSIs\*.msi -Recurse
foreach ($item in $Dir) {
try {
$windowsInstaller = New-Object -com WindowsInstaller.Installer
$database = $windowsInstaller.GetType().InvokeMember('OpenDatabase', 'InvokeMethod', $null, $windowsInstaller, @((Get-Item -Path $item).FullName, 0))
$view = $database.GetType().InvokeMember('OpenView', 'InvokeMethod', $null, $database, ("SELECT Value FROM Property WHERE Property = 'ProductName'"))
$view.GetType().InvokeMember('Execute', 'InvokeMethod', $null, $view, $null)
$record = $view.GetType().InvokeMember('Fetch', 'InvokeMethod', $null, $view, $null)
echo "Product Name"
Write-Output -InputObject $($record.GetType().InvokeMember('StringData', 'GetProperty', $null, $record, 1))
} catch {
Write-Error -Message "Product Name" $_.ToString()s
break
}
【问题讨论】:
-
我试过这样的事情,但它不能正常工作 Get-Process | Select-Object -Property ProductName、ProductCode、ProductVersion、UpgradeCode、Manufacturer | Export-Csv -Path Import-Csv -NoTypeInformation
-
一点提示:如果您将其他信息(例如您迄今为止尝试过的内容)直接添加到问题中并进行编辑,它会更好,更具可读性。只要问题不变。
-
您应该提供一个示例,说明您希望生成的 CSV 的外观,或者架构的结构。在上面的代码示例中,我看到许多语法错误和管道问题,使我无法理解您想要完成的工作。
-
你不会得到
ProductName, ProductCode, ProductVersion, UpgradeCode, Manufacturer,因为你在这里只选择了ProductNameSELECT Value FROM Property WHERE Property = 'ProductName'
标签: powershell csv export-to-csv