Windowsに組み込まれているもので、コンピューターにインストールされているすべてのソフトウェアを、スプレッドシートにコピー/貼り付けできる形式で一覧表示できるものはありますか?これを実行できるソフトウェアがあることは知っていますが、何もインストールできません。可能な場合はバッチファイルを使用しない方が良いと思いますが、それが唯一の方法になると思います。理想的には、[アプリケーションの追加と削除]フォームの(展開されていない)ビューに表示されるのと同じ情報を出力できるようになります。
Windowsに組み込まれているもので、コンピューターにインストールされているすべてのソフトウェアを、スプレッドシートにコピー/貼り付けできる形式で一覧表示できるものはありますか?これを実行できるソフトウェアがあることは知っていますが、何もインストールできません。可能な場合はバッチファイルを使用しない方が良いと思いますが、それが唯一の方法になると思います。理想的には、[アプリケーションの追加と削除]フォームの(展開されていない)ビューに表示されるのと同じ情報を出力できるようになります。
回答:
コンソールを起動して、次を入力します。
wmic product get name,version
しばらく時間がかかりますが、インストールされているプログラムの完全なリストが表示されます。WMICはWindows Management Instrumentationのコンソールバージョンであり、Windows 2000以降で利用可能です。こことここの手順に従って、WMICにXML形式で出力するように指示することができます。これは、もう少し便利かもしれません。ただし、呼び出すだけwmic product get name
でアプリケーション名のリストが表示され、簡単にテキストエディタに貼り付けてスプレッドシート形式に変換できます。
または、次を入力します。
wmic /output:C:\InstallList.txt product get name,version
これにより、プログラムのリストを含むTXTファイルが出力されます。必要に応じて、スプレッドシートに貼り付けることができます。
ソース:http : //helpdeskgeek.com/how-to/generate-a-list-of-installed-programs-in-windows/
また、csv.xslファイルを使用して、出力を結果のCSVリストにフォーマットできます。
wmic /output:C:\InstallList.csv product get /format:csv.xsl
または、結果のHTMLテーブルを作成するhtable.xslファイル:
wmic /output:C:\InstallList.htm product get /format:hform.xsl
wmic
リストに表示されないアイテム:インストール済みのSteamゲーム、Notepad ++、Winmerge、Googleのミュージックマネージャー。[プログラムと機能]に表示されませんアイテム:Javaの自動アップデータ、CAPICOM用セキュリティ更新プログラム(KB931906) 。管理者CMDから実行しようとしましたが、生成されたリストは同じでした。
Invalid Class 0x80041010 Error
、あなたがに行くことができるAdd/Remove Windows Components
とチェックManagement and Monitoring Tools
実行wmic product get
して、インストールされているソフトウェアのリストを取得します。これは、プログラムの追加/削除とまったく同じリストである必要があります。
おそらく特定の形式で出力することができますが、私は試していません。
(wmic product get /?
出力の書式設定を含むパラメータを確認するために使用します。ここに含めようとしましたが、書式設定は正しくありませんでした。)
他の人が述べたように、Win32_ProductオブジェクトのWMIクエリでこの情報を取得できます。PowerShellは、必要に応じてCSVファイルにダンプします。
Get-WmiObject -Class "Win32_Product" | Export-CSV (Join-Path $home "Win32_Product.csv")
ただし、Win32_Productの問題を検索する必要があります。すべてのガムドロップやロリポップではありません。
Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table
メニューで明示的にインストールManagement and Monitoring Tools
しAdd/Remove Windows Components
ていない限り、WMICはサーバー上で動作しません。
別の解決策は、レジストリに移動し、次のようにしてすべてのアンインストール可能なプログラムを確認することです。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
値を表示するには、それぞれ個別にクリックする必要があるため、代わりに、Uninstall
フォルダーを右クリックして[ エクスポート ]を選択できます。エクスポート範囲が選択されたブランチのみを含むように設定されていることを確認します。
その後.reg
、notepad ++でファイルを開くことができますが、各アプリケーションに関する多くの追加情報を取得することになります。
次の正規表現と照合することで、開始しない すべての行を削除できます。"DisplayName"
^(?!"DisplayName").+
次に、あなたが削除することができますいずれかの文字列 "DisplayName"
または"
上のマッチングにより、次の正規表現を:
("DisplayName"="|")
その後、次の正規表現で一致させることにより、重複する行を削除できます。
^(.*)(\r?\n\1)+$
または、行をアルファベット順に並べ替えてから、空白の行を削除することができます
Windows 7では、PowerShellスクリプトを使用できます。
Start
ボタンをクリックpowershell
して検索フィールドに入力して、PowerShellを開きます。
次に、PowerShellウィンドウで次のコマンドを入力します。
Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table –AutoSize
不要な場合は、DisplayName、DisplayVersionなどのフィールドを削除できます。
出力をファイルに保存する場合は、リダイレクトを使用します。
Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table –AutoSize > C:\temp\AllInstalledPrograms.txt
以前に言及されていない他の2つの非コマンドラインソリューションは次のとおりです。
MyUninstaller-NirSoftのフリーウェアプログラムで、アンインストールのほかに、インストールされたすべてのソフトウェアの包括的なリストをHTMLにエクスポートし、多くの追加情報を含めることができます。ポータブルであるという利点があります。「組み込み」ではありませんが、USBドライブから実行できます。ここで見つけることができます。
Belarc Advisor-コンピューターのハードウェアとソフトウェアのセキュリティ分析と包括的なインベントリを行うフリーウェア(個人用)プログラム。こちらから入手できます。残念ながら、インストールする必要があるため、OPのニーズを完全に満たすわけではありませんが、同じ質問を持ち、インストールできる他の人のニーズを満たすことができます。
C#でエンコードされたバージョンは、レジストリを介してプログラムをインストールしました
using Microsoft.Win32;
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
namespace SoftwareInventory
{
class Program
{
static void Main(string[] args)
{
//!!!!! Must be launched with a domain administrator user!!!!!
Console.ForegroundColor = ConsoleColor.Green;
StringBuilder sbOutFile = new StringBuilder();
Console.WriteLine("DisplayName;IdentifyingNumber");
sbOutFile.AppendLine("Machine;DisplayName;Version");
//Retrieve machine name from the file :File_In/collectionMachines.txt
//string[] lines = new string[] { "NameMachine" };
string[] lines = File.ReadAllLines(@"File_In/collectionMachines.txt");
foreach (var machine in lines)
{
//Retrieve the list of installed programs for each extrapolated machine name
var registry_key = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";
using (Microsoft.Win32.RegistryKey key = RegistryKey.OpenRemoteBaseKey(RegistryHive.LocalMachine, machine).OpenSubKey(registry_key))
{
foreach (string subkey_name in key.GetSubKeyNames())
{
using (RegistryKey subkey = key.OpenSubKey(subkey_name))
{
//Console.WriteLine(subkey.GetValue("DisplayName"));
//Console.WriteLine(subkey.GetValue("IdentifyingNumber"));
if (subkey.GetValue("DisplayName") != null && subkey.GetValue("DisplayName").ToString().Contains("Visual Studio"))
{
Console.WriteLine(string.Format("{0};{1};{2}", machine, subkey.GetValue("DisplayName"), subkey.GetValue("Version")));
sbOutFile.AppendLine(string.Format("{0};{1};{2}", machine, subkey.GetValue("DisplayName"), subkey.GetValue("Version")));
}
}
}
}
}
//CSV file creation
var fileOutName = string.Format(@"File_Out\{0}_{1}.csv", "Software_Inventory", DateTime.Now.ToString("yyyy_MM_dd_HH_mmssfff"));
using (var file = new System.IO.StreamWriter(fileOutName))
{
file.WriteLine(sbOutFile.ToString());
}
//Press enter to continue
Console.WriteLine("Press enter to continue !");
Console.ReadLine();
}
}
}