2009-11-10 19:05:44 +0000 2009-11-10 19:05:44 +0000
34
34

Windowsのコマンドラインからインストールされているアプリケーションのリストを取得

ある人がコマンドを実行して、自分のコンピュータにインストールされているすべてのアプリケーションのリストを取得するのを見たことがあります。どうすればいいのでしょうか?

私は現在インストールされているアプリケーションのリストが欲しいのですが、どうすればいいのでしょうか?彼はどうにかして WSH を使ったのだと思います。

回答 (8)

40
40
40
2009-11-10 19:15:35 +0000

Windows Vista ](http://en.wikipedia.org/wiki/Windows_Vista) または Windows 7 を使用していて、追加のソフトウェアをインストールしたくない場合は、次のようにしてください:

  1. コマンドラインウィンドウを開く(Windows + R, CMD.EXE)
  2. タイプ wmic (Enter)
  3. タイプ product get name (Enter) 3.
27
27
27
2009-11-10 19:19:33 +0000

Microsoft/Sysinternals の PsInfo は、実行時に -s フラグを使用すると、インストールされているすべてのソフトウェアを一覧表示することができます。また、-cを使用すると、例えばExcelで使用するためのcsvファイルとして出力することもできます。

14
14
14
2009-11-10 19:17:09 +0000

PowerShellスクリプトでリストアップ:

$loc = Get-ChildItem HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall

$names = $loc |foreach-object {Get-ItemProperty $_.PsPath}

foreach ($name in $names)
{
    Write-Host $name.Displayname
}

正確にはコマンドラインではありませんが、この目的のために個人的には CCleaner’s アンインストールツールを使用しており、インストールされたソフトウェアのリストをテキストファイルにエクスポートすることができます:

3
3
3
2015-08-29 19:19:55 +0000

MicTechのソリューション](https://superuser.com/questions/68611/get-list-of-installed-applications-from-windows-command-line/68615#68615)に追加するには - wmicを使用して、インストールされているソフトウェアのリストをファイルに取り込む:

コマンドラインウィンドウを開く(Windows + R, CMD.EXE)

wmic /OUTPUT:my_software.txt product get name
3
3
3
2009-11-10 19:43:46 +0000

上のCCleanerの解決策は、コマンドラインを使うと決めていない限り、まともな方法のように思えます。私は以前に CCleaner を使ったことがありますが、それは良いツールです。xcopy スタイルのインストール、つまりこのアーカイブを解凍して実行するだけのアプリがたくさんあります。これらのアプリはリストには表示されません。

2
2
2
2015-05-29 15:38:14 +0000

Sysinternals ](https://en.wikipedia.org/wiki/Sysinternals) psinfo.exeは、与えられたすべての提案の中で最も完全な情報を提供し、永久的なダウンロードなしで、コマンドラインから直接昇格したCMDプロンプトから任意のWindows PC上で実行することができます:

\live.sysinternals.com\tools\psinfo.exe -s > %userprofile%\Desktop\_psinfo.txt

これを実行すると、セキュリティプロンプトが表示され、マシン上で初めてEULAプロンプトが表示されます。テキストファイルは現在のデスクトップに保存されます。

EULAはこのように自動的に受け入れることができます:

\live.sysinternals.com\tools\psinfo.exe -s /accepteula > %userprofile%\Desktop\_psinfo.txt
0
0
0
2017-07-12 15:37:28 +0000

Windowsレジストリを介してインストールされた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)
                            {
                                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();
        }
    }
}
0
0
0
2013-09-02 08:52:09 +0000

Showmysoftというポータブルアプリケーションがあります。ローカルマシンとリモートマシンにインストールされたソフトウェアを表示し、PDFCSVにエクスポートすることができます。インストールは不要です。http://spidersoft.in/showmysoft/ ](http://spidersoft.in/showmysoft/)からダウンロードしてください。

最小システム要件は、Microsoft .NET Framework 2.0です。