web-dev-qa-db-ja.com

コマンドラインでWinXP / Win7の追加/削除から表示されるすべてのアプリケーションを一覧表示する方法は?

コマンドラインを介してプログラムの追加/削除リスト(WinXP/Win7)に表示されるインストール済みのすべてのアプリケーションを一覧表示しようとしています。 Win7の場合、cpから「プログラムと機能」と呼ばれていることを理解しています。

私はwmicを試しましたが、MSIを使用してインストールされたプログラムのみが一覧表示されます。レジストリ(HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall&wow6432node)を照会してみました。

私はまだSpotifyをトラップできません(良い例)。追加/削除セクションには表示されますが、これらの場所には表示されません。

何かご意見は?

-ドム

5
dom9360

これはwmicコマンドから実行できるようです
これを試して:

wmic product  

コンピュータにインストールされているすべてのリストを表示します
出典:
http://www.sepago.de/d/helge/2010/01/14/how-to-list-all-installed-applications-from-the-command-line = http://technet.Microsoft.com/en-us/library/bb742610.aspx#ECAA

このページでは、Windows Vistaおよび7を対象としていますが、WindowsでwmicをテストしましたXP同様に
Windowsコマンドラインからインストール済みアプリケーションのリストを取得

また、このページでは、レジストリエントリのチェック方法が正確でない可能性があることを説明しています
http://community.spiceworks.com/how_to/show/2238-how-add-remove-programs-works

Wmicを使用して他に何ができるかについての詳細は次のとおりです。
http://betanews.com/2011/01/14/wmic-the-best-command-line-tool-you-ve-never-used/
特にあなたの問題のためのこのウェブサイトから:

プログラムは、システムの他の多くの側面に関する詳細も提供できます。次のようなコマンド:

wmic製品リストの概要

wmicサービスリストの概要

wmicプロセスリストの概要

wmicスタートアップリストの概要

たとえば、インストールされているソフトウェア、サービス、実行中のプロセス、Windowsスタートアッププログラムが一覧表示されます。

5
user13267

Cmdのアプローチは完全ではないため、満足できるとは思いません。あなたがPowershellで大丈夫なら、これは私にすべてを与えました:

If(!([Diagnostics.Process]::GetCurrentProcess(). Path -match ‘\\syswow64\\’)) {
$unistallPath = “\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\”
$unistallWow6432Path = “\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\”
@( if (Test-Path “HKLM:$unistallWow6432Path” ) { Get-ChildItem “HKLM:$unistallWow6432Path”} if (Test-Path “HKLM:$unistallPath” ) { Get-ChildItem “HKLM:$unistallPath” } if (Test-Path “HKCU:$unistallWow6432Path”) { Get-ChildItem “HKCU:$unistallWow6432Path”} if (Test-Path “HKCU:$unistallPath” ) { Get-ChildItem “HKCU:$unistallPath” } ) | ForEach-Object { Get-ItemProperty $_.PSPath } | Where-Object { $_.DisplayName -and !$_.SystemComponent -and !$_.ReleaseType -and !$_.ParentKeyName -and ($_.UninstallString -or $_.NoRemove) } | Sort-Object DisplayName | Select-Object DisplayName
}
else {
“You are running 32-bit Powershell on 64-bit system. Please run 64-bit Powershell instead.” | Write-Host -ForegroundColor Red
}

pause
0
Adrian Nielsen