我已经把头撞到了墙上几天试图弄清楚这个...我试图获取以下命令的输出,将其导出为主机名为CSV的CSV每行的开头
$reg1 = Get-ItemProperty HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Where {$_.DisplayName -ne $null }
$reg1 | select DisplayName,InstallDate
最终的CSV输出看起来像这样,但对于卸载密钥中的每个项目
Office_Computer,PuTTY version 0.63,20140319
我尝试过做一个foreach-object,首先选择我想看的字段,然后对新数组做一个foreach
$test = $reg1 | select DisplayName,Installdate
$test | foreach-object {"$hostname,$_"}
有效,但输出不像以前那样漂亮的表......看起来像这样
PDMZ-SUPT1,@{DisplayName=PuTTY version 0.63; InstallDate=20140319}
我想我正在寻找的是一个自定义对象,但我不知道如何做到这一点。哦,如果你想知道,这个命令将在多台计算机上运行,以构建一个"已安装的应用程序"的单个文件。要知道哪台计算机安装了哪些软件,请添加主机名。
由于
答案 0 :(得分:2)
试试这个(如果我理解你的目标):
$reg1 | select @{n="Hostname";e={$hostname}},DisplayName,InstallDate
答案 1 :(得分:0)
在主机之后命名文件是不够的?或者您是否必须将所有主机中的所有项目包含在一个CSV文件中?
Get-ItemProperty HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | where DisplayName |
select DisplayName, InstallDate | Export-Csv "$(hostname).csv" -NoTypeInformation