Visualizza i programmi installati sul computer remoto?


19

Mi chiedevo se esiste un metodo semplice e leggero per visualizzare quali programmi sono installati su una macchina remota? Sono tentato di usare Spiceworks ma vorrei qualcosa di più leggero come una sceneggiatura. Ho giocato un po 'con WMIC e posso ottenere un elenco di programmi per il mio computer, ma non so se posso fare lo stesso con esso per un computer remoto. Qualche idea?

Modifica: mi dispiace di aver dimenticato il sistema operativo, stiamo usando principalmente Windows XP e 7, uso Windows 7. Sto cercando qualcosa da eseguire in background senza che un utente stia attualmente utilizzando il computer. Mi piacerebbe poterlo fare durante la giornata lavorativa mentre le persone lavorano e farlo senza interromperle. Apprezzo le risposte di Linux poiché sto cercando di saperne di più su Linux e ho intenzione di cambiare personalmente prima o poi.


7
Aiuterebbe a conoscere il sistema operativo della macchina.
inkaphink,

Perché solo programmi? Potrebbe esserci altro materiale protetto da copyright sul sistema (file di font e mp3 sono casi ovvi)
symcbean,

@symcbean Il mio motivo principale per chiedere è la licenza. Abbiamo un paio di programmi per i quali abbiamo solo una mano piena di licenze e ho bisogno di capire dove sono installati i programmi in modo da poter determinare se posso disinstallarlo da qualche parte in modo che un altro utente possa utilizzare il programma o se devo acquistare un nuova licenza. Le altre cose che esaminerò in un secondo momento.
Mobojo,

Risposte:


19

Puoi usare uno degli strumenti Sysinternals PSinfo:

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

PsInfo v1.77 - Visualizzatore di informazioni sul sistema locale e remoto Copyright (C) 2001-2009 Mark Russinovich Sysinternals - www.sysinternals.com

PsInfo restituisce informazioni su un sistema Windows NT / 2000 / XP locale o remoto.

Utilizzo: psinfo [-h] [-s] [-d] [-c [-t delimitatore]] [filtro] [\ computer [, computer [, ..]] | @file [-u Nome utente [-p Password ]]]

 -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

filtro. ad es. "servizio psinfo" elenca solo il campo del service pack. computer Dirige PsInfo per eseguire il comando sul computer remoto o sui computer specificati. Se si omette il nome del computer PsInfo esegue il comando sul sistema locale e se si specifica un carattere jolly (\ *), PsInfo esegue il comando su tutti i computer nel dominio corrente. @file PsInfo verrà eseguito sui computer elencati nel file specificato.

emittente

PSinfo -s \\ nomecomputer

ti dirà cosa è installato su un computer remoto.


11

Su una distribuzione Linux basata su rpm, è possibile eseguire quanto segue:

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

Per una distribuzione basata su deb, passalo al comando ssh:

'dpkg-query -l | sort'

Per Gentoo (per un commento fornito da Monksy ):

'qpkg -I | sort'

Per Solaris:

'pkginfo -i | sort'

E su AIX:

'lslpp -a all | sort'

1
Gentoo: Se hai gentoolkit installato su gentoo puoi scoprire tutti i pacchetti installati con: "qpkg -I"
monksy

Posso usarlo su un computer Linux per visualizzare informazioni su un computer Windows o è solo per Linux su Linux?
Mobojo,

@Mobojo - non sono sicuro di poter eseguire un comando simile da una macchina * nix a una Windows; dovresti certamente essere in grado di usare qualsiasi client ssh per eseguire questi comandi da qualsiasi macchina di origine su * nix, però
warren

6

WMIC può essere utilizzato in remoto, per impostazione predefinita, con un account che fa parte del gruppo Administrators. È possibile delegare l'accesso WMI di sola lettura a un utente normale.

È possibile utilizzare anche SNMP: è sufficiente configurare una comunità di sola lettura. È necessario sfogliare la tabella hrSWInstalled:snamwalk -c public -v2c server_IP hrSWInstalled

Vedi anche: http://technet.microsoft.com/en-us/library/bb742610.aspx


6

Ecco uno script di PowerShell che si collegherà alla chiave del Registro di sistema HKLM \ Software \ Microsoft \ Windows \ Uninstall, estrae le chiavi, ottiene i loro nomi visualizzati e invia a un file di testo.

$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

2

Ci sono milioni di programmi che lo faranno. Alcuni più facili e leggeri di altri.

Ecco solo uno degli innumerevoli programmi che lo fanno:

http://managepc.net/


1

Se si tratta di un computer Windows, è possibile eseguire "WinAudit" (gratuito, basta cercarlo) su un lavoro pianificato. Genera report HTML o di testo e simili, di cui è possibile salvare su un'unità di rete e visualizzare da un computer remoto.

O:

Desktop remoto. Ti connetti e lo usi come se fosse un computer locale. Funziona anche in * nix.


1

È possibile utilizzare WMI da PowerShell:

gwmi win32_product -ComputerName Computer1

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.