Windowsのコマンドラインからインストールされているアプリケーションのリストを取得
ある人がコマンドを実行して、自分のコンピュータにインストールされているすべてのアプリケーションのリストを取得するのを見たことがあります。どうすればいいのでしょうか?
私は現在インストールされているアプリケーションのリストが欲しいのですが、どうすればいいのでしょうか?彼はどうにかして WSH を使ったのだと思います。
ある人がコマンドを実行して、自分のコンピュータにインストールされているすべてのアプリケーションのリストを取得するのを見たことがあります。どうすればいいのでしょうか?
私は現在インストールされているアプリケーションのリストが欲しいのですが、どうすればいいのでしょうか?彼はどうにかして WSH を使ったのだと思います。
Windows Vista ](http://en.wikipedia.org/wiki/Windows_Vista) または Windows 7 を使用していて、追加のソフトウェアをインストールしたくない場合は、次のようにしてください:
wmic
(Enter) product get name
(Enter)
3.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 アンインストールツールを使用しており、インストールされたソフトウェアのリストをテキストファイルにエクスポートすることができます:
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
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
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();
}
}
}
Showmysoftというポータブルアプリケーションがあります。ローカルマシンとリモートマシンにインストールされたソフトウェアを表示し、PDFとCSVにエクスポートすることができます。インストールは不要です。http://spidersoft.in/showmysoft/ ](http://spidersoft.in/showmysoft/)からダウンロードしてください。
最小システム要件は、Microsoft .NET Framework 2.0です。