Installierte Programme auf Remote-Computer anzeigen?

19

Ich habe mich gefragt, ob es eine einfache und unkomplizierte Methode gibt, um anzuzeigen, welche Programme auf einem Remotecomputer installiert sind. Ich bin versucht, Spiceworks zu verwenden, möchte aber etwas Leichteres wie ein Skript. Ich habe ein bisschen mit WMIC herumgespielt und kann eine Liste der Programme für meinen Computer abrufen, aber ich weiß nicht, ob ich das gleiche mit einem Remotecomputer machen kann. Irgendwelche Ideen?

Bearbeiten: Sorry, dass ich das Betriebssystem vergessen habe, wir verwenden hauptsächlich Windows XP und 7, ich verwende Windows 7. Ich suche nach etwas, das im Hintergrund ausgeführt werden kann, ohne dass ein Benutzer, der gerade den Computer verwendet, dies weiß. Ich möchte es während des Arbeitstages tun können, während die Leute arbeiten und ohne sie zu unterbrechen. Ich schätze die Linux-Antworten, da ich versuche, mehr über Linux zu lernen und vorhabe, mich irgendwann persönlich zu verändern.

Mobojo
quelle
7
Es wäre hilfreich, das Betriebssystem der Maschine zu kennen.
ℝaphink
Warum nur Programme? Möglicherweise befindet sich anderes urheberrechtlich geschütztes Material auf dem System (Schriftdateien und MP3s sind offensichtliche Fälle)
symcbean
@symcbean Mein Hauptgrund zu fragen ist die Lizenzierung. Wir haben ein paar Programme, für die wir nur eine Hand voll Lizenzen haben, und ich muss herausfinden, wo die Programme installiert sind, damit ich feststellen kann, ob ich sie irgendwo deinstallieren kann, damit ein anderer Benutzer das Programm verwenden kann oder ob ich eine kaufen muss neue Lizenz. Die anderen Dinge werde ich später untersuchen.
Mobojo

Antworten:

19

Sie können eines der Sysinternals-Tools PSinfo verwenden:

http://technet.microsoft.com/en-us/sysinternals/bb897550

PsInfo v1.77 - Anzeige lokaler und entfernter Systeminformationen Copyright (C) 2001-2009 Mark Russinovich Sysinternals - www.sysinternals.com

PsInfo gibt Informationen zu einem lokalen oder fernen Windows NT / 2000 / XP-System zurück.

Verwendung: psinfo [-h] [-s] [-d] [-c [-t Trennzeichen]] [Filter] [\ Computer [, Computer [, ..]] | @ Datei [-u Benutzername [-p Passwort ]]]

 -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

Filter. zB "psinfo service" listet nur das Service Pack-Feld auf. computer Direct PsInfo, um den Befehl auf dem oder den angegebenen Remotecomputern auszuführen. Wenn Sie den Computernamen weglassen, führt PsInfo den Befehl auf dem lokalen System aus, und wenn Sie einen Platzhalter (\ *) angeben, führt PsInfo den Befehl auf allen Computern in der aktuellen Domäne aus. @file PsInfo wird auf den Computern ausgeführt, die in der angegebenen Datei aufgeführt sind.

Ausgabe

PSinfo -s \\ Computername

wird Ihnen sagen, was auf einem Remote-Computer installiert ist.

RobW
quelle
11

Auf einer rpm-basierten Linux-Distribution können Sie Folgendes ausführen:

ssh <user-who-can-run-rpm>@<remote.host> 'rpm -qa | sort'

Übergeben Sie dies für eine deb-basierte Distribution an den Befehl ssh:

'dpkg-query -l | sort'

Für Gentoo (nach einem Kommentar von Monksy ):

'qpkg -I | sort'

Für Solaris:

'pkginfo -i | sort'

Und unter AIX:

'lslpp -a all | sort'
Labyrinth
quelle
1
Gentoo: Wenn Sie gentoolkit auf gentoo installiert haben, können Sie alle installierten Pakete mit "qpkg -I"
monksy 13.09.11
Kann ich dies auf einem Linux-Computer verwenden, um Informationen auf einem Windows-Computer anzuzeigen, oder ist es nur für Linux zu Linux?
Mobojo
@Mobojo - Ich bin mir nicht sicher, ob Sie einen ähnlichen Befehl von einem * nix-Computer auf einen Windows-Computer ausführen können. Sie sollten jedoch jeden ssh-Client verwenden können, um diese Befehle von einem beliebigen Ursprungscomputer an * nix auszuführen
warren
6

WMIC kann standardmäßig remote mit einem Konto verwendet werden, das Teil der Gruppe Administratoren ist. Sie können den schreibgeschützten WMI-Zugriff an einen normalen Benutzer delegieren.

SNMP kann ebenfalls verwendet werden - Sie müssen lediglich eine schreibgeschützte Community konfigurieren. Sie müssen die Tabelle hrSWInstalled durchsuchen:snamwalk -c public -v2c server_IP hrSWInstalled

Siehe auch: http://technet.microsoft.com/en-us/library/bb742610.aspx

Mircea Vutcovici
quelle
6

Hier ist ein PowerShell-Skript, das eine Verbindung zum Registrierungsschlüssel HKLM \ Software \ Microsoft \ Windows \ Uninstall herstellt, die Schlüssel abzieht, deren Anzeigenamen abruft und an eine Textdatei sendet.

$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
Christopher
quelle
2

Es gibt eine Million Programme, die dies tun werden. Einige sind einfacher und leichter als andere.

Hier ist nur eines der unzähligen Programme, die dies tun:

http://managepc.net/

Joeqwerty
quelle
1

Wenn es sich um einen Windows-Computer handelt, können Sie "WinAudit" (kostenlos, suchen Sie einfach danach) für einen geplanten Auftrag ausführen. Es generiert HTML- oder Textberichte und solche, die Sie auf einem Netzwerklaufwerk speichern und von einem Remotecomputer aus anzeigen können.

ODER:

Remote-Desktop. Sie stellen eine Verbindung her und verwenden sie wie einen lokalen Computer. Funktioniert auch in * nix.

U4iK_HaZe
quelle
1

Sie können WMI von Powershell aus verwenden:

gwmi win32_product -ComputerName Computer1

Ameer Deen
quelle