コマンドラインを介してプログラムの追加/削除リスト(WinXP/Win7)に表示されるインストール済みのすべてのアプリケーションを一覧表示しようとしています。 Win7の場合、cpから「プログラムと機能」と呼ばれていることを理解しています。
私はwmicを試しましたが、MSIを使用してインストールされたプログラムのみが一覧表示されます。レジストリ(HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall&wow6432node)を照会してみました。
私はまだSpotifyをトラップできません(良い例)。追加/削除セクションには表示されますが、これらの場所には表示されません。
何かご意見は?
-ドム
これは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スタートアッププログラムが一覧表示されます。
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