-1

これを理解しようとして、数日間壁に頭をぶつけました..次のコマンドの出力を取得しようとしています。各行の先頭にホスト名を付けて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を実行して、foreach-objectを実行しようとしました

$test = $reg1 | select DisplayName,Installdate
$test | foreach-object {"$hostname,$_"}

それは機能しますが、出力は以前のような素敵なテーブルではありません...次のようになります

PDMZ-SUPT1,@{DisplayName=PuTTY version 0.63; InstallDate=20140319}

私が探しているのはカスタムオブジェクトだと思いますが、それを機能させる方法がわかりません。ああ、ご参考までに、このコマンドは複数のコンピューターで実行され、「インストールされたアプリケーション」の 1 つのファイルが作成されます。どのコンピュータにどのソフトウェアがインストールされているかを知るために、ホスト名が追加されます。

ありがとう

4

2 に答える 2

2

これを試してください(あなたの目標を理解していれば):

$reg1 | select @{n="Hostname";e={$hostname}},DisplayName,InstallDate
于 2014-11-10T14:50:47.023 に答える
0

ホストにちなんでファイルに名前を付けるだけで十分ではないでしょうか? または、すべてのホストのすべての項目を 1 つの CSV ファイルに含める必要がありますか?

Get-ItemProperty HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | where DisplayName | 
    select DisplayName, InstallDate | Export-Csv "$(hostname).csv" -NoTypeInformation
于 2014-11-10T15:07:36.797 に答える