リモートマシンにインストールされているプログラムを表示する簡単で軽量な方法があるかどうか疑問に思っていましたか? Spiceworksを使いたくなりますが、スクリプトのようなもっと軽量なものを使いたいです。私はWMICで少し遊んでいて、自分のコンピューターのプログラムのリストを取得できますが、リモートコンピューターでも同じことができるかどうかわかりません。何か案は?
編集:私はOSを忘れてすみません、私たちはほとんどWindowsを使用していますXPおよび7、私はWindows 7を使用します。現在使用しているユーザーなしでバックグラウンドで実行されるものを探していますコンピューターがわかっていること。私は、人々が仕事をしている平日の間に、それを中断せずにできるようにしたいと思います。Linuxについてもっと学びたいと思っており、いつか個人的に変更する予定があるので、Linuxの回答に感謝します。
Sysinternalsツールのいずれかを使用できますPSinfo:
http://technet.Microsoft.com/en-us/sysinternals/bb89755
PsInfo v1.77-ローカルおよびリモートシステム情報ビューアCopyright(C)2001-2009 Mark Russinovich Sysinternals-www.sysinternals.com
PsInfoは、ローカルまたはリモートのWindows NT/2000/XPシステムに関する情報を返します。
使用法:psinfo [-h] [-s] [-d] [-c [-t delimiter]] [filter] [\ computer [、computer [、..]] | @file [-uユーザー名[-pパスワード]]]
-u Specifies optional user name for login to remote computer. -p Specifies password for user name. -h Show installed hotfixes. -s Show installed software. -d Show disk volume information. -c Print in CSV format -t The default delimiter for the -c option is a comma, but can be overriden with the specified character. Use "\t" to specify tab. filter Psinfo will only show data for the field matching the
フィルタ。例えば"psinfo service"は、サービスパックフィールドのみを一覧表示します。 computer PsInfoに、指定された1つまたは複数のリモートコンピューターでコマンドを実行するように指示します。コンピューター名を省略すると、PsInfoはローカルシステムでコマンドを実行し、ワイルドカード(\ *)を指定すると、PsInfoは現在のドメイン内のすべてのコンピューターでコマンドを実行します。 @file PsInfoは、指定されたファイルにリストされているコンピューターに対して実行されます。
発行中
PSinfo -s \\ computername
リモートコンピュータにインストールされているものを教えてくれます。
RpmベースのLinuxディストリビューションでは、以下を実行できます。
ssh <user-who-can-run-rpm>@<remote.Host> 'rpm -qa | sort'
Debベースのディストリビューションの場合、これをsshコマンドに渡します。
'dpkg-query -l | sort'
Gentooの場合( Monksy から提供されたコメントによる):
'qpkg -I | sort'
Solarisの場合:
'pkginfo -i | sort'
そしてAIXでは:
'lslpp -a all | sort'
WMICは、デフォルトで、Administratorsグループの一部であるアカウントを使用してリモートで使用できます。読み取り専用のWMIアクセスを通常のユーザーに委任できます。
SNMPも使用できます-読み取り専用コミュニティを構成するだけです。 hrSWInstalledテーブルを参照する必要があります:snamwalk -c public -v2c server_IP hrSWInstalled
参照: http://technet.Microsoft.com/en-us/library/bb742610.aspx
これは、HKLM\Software\Microsoft\Windows\Uninstallレジストリキーに接続し、キーをプルし、表示名を取得してテキストファイルに送信するPowerShellスクリプトです。
$temparray=@()
$MachineName = 'somecomputername'
$reg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey([Microsoft.Win32.RegistryHive]::'LocalMachine', $MachineName)
#connect to the needed key :
$regKey= $reg.OpenSubKey("software\Microsoft\Windows\currentversion\uninstall\" )
#and list the properties :
$programs = $regkey.GetSubKeyNames()
foreach ($program in $programs)
{
$regKey2 = $regKey.OpenSubKey($program)
$temparray += $regKey2.GetValue("DisplayName")
}
$temparray |Sort-Object |Out-File -FilePath "C:\testinstalledprograms.txt" -Force
Windowsマシンの場合は、スケジュールされたジョブで "WinAudit"(無料、検索のみ)を実行できます。 HTMLまたはテキストレポートなどを生成し、ネットワークドライブに保存してリモートコンピューターから表示できます。
または:
リモートデスクトップ。接続して、ローカルマシンのように使用します。 * nixでも動作します。
PowershellからWMIを使用できます。
gwmi win32_product -ComputerName Computer1