Visualizar programas instalados na máquina remota?

19

Eu queria saber se existe um método fácil e leve para visualizar quais programas estão instalados em uma máquina remota? Estou tentado a usar Spiceworks, mas gostaria de algo mais leve como um script. Eu tenho brincado com o WMIC um pouco e posso obter uma lista de programas para o meu computador, mas não sei se posso fazer o mesmo com um computador remoto. Alguma idéia?

Edit: Desculpe que eu esqueci o sistema operacional, estamos usando principalmente o Windows XP e 7, eu uso o Windows 7. Eu estou procurando algo para ser executado em segundo plano sem um usuário que está usando atualmente o computador sabendo. Eu gostaria de poder fazê-lo durante o dia de trabalho enquanto as pessoas estão trabalhando e fazem isso sem interrompê-las. Eu aprecio as respostas do Linux, pois estou tentando aprender mais sobre o Linux e planejo mudar pessoalmente em algum momento.

    
por Mobojo 12.09.2011 / 22:42

7 respostas

19

Você pode usar uma das ferramentas da Sysinternals PSinfo:

link

PsInfo v1.77 - Local and remote system information viewer Copyright (C) 2001-2009 Mark Russinovich Sysinternals - www.sysinternals.com

PsInfo returns information about a local or remote Windows NT/2000/XP system.

Usage: psinfo [-h] [-s] [-d] [-c [-t delimiter]] [filter] [\computer[,computer[,..]]|@file [-u Username [-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

filter. e.g. "psinfo service" lists only the service pack field. computer Direct PsInfo to perform the command on the remote computer or computers specified. If you omit the computer name PsInfo runs the command on the local system, and if you specify a wildcard (\*), PsInfo runs the command on all computers in the current domain. @file PsInfo will run against the computers listed in the file specified.

Emitindo

PSinfo -s \\ nome_do_computador

dirá o que está instalado em um computador remoto.

    
por 12.09.2011 / 23:19
11

Em uma distribuição Linux baseada em rpm, você pode executar o seguinte:

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

Para uma distribuição baseada em deb, passe isso para o comando ssh:

'dpkg-query -l | sort'

Para o Gentoo (por um comentário fornecido de Monksy ):

'qpkg -I | sort'

Para o Solaris:

'pkginfo -i | sort'

E no AIX:

'lslpp -a all | sort'
    
por 12.09.2011 / 23:28
6

O WMIC pode ser usado remotamente, por padrão, com uma conta que faz parte do grupo Administradores. Você pode delegar acesso WMI somente leitura a um usuário normal.

O SNMP também pode ser usado - você só precisa configurar uma comunidade somente leitura. Você precisa navegar na tabela hrSWInstalled: snamwalk -c public -v2c server_IP hrSWInstalled

Veja também: link

    
por 12.09.2011 / 23:09
6

Aqui está um script do PowerShell que se conectará à chave de registro HKLM \ Software \ Microsoft \ Windows \ Uninstall, ative as chaves, obtenha seus nomes de exibição e envie para um arquivo de texto.

$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
    
por 12.09.2011 / 23:41
2

Existem milhões de programas que farão isso. Alguns mais fáceis e leves que outros.

Aqui está apenas um dos inúmeros programas que fazem isso:

link

    
por 12.09.2011 / 23:10
1

Se for uma máquina Windows, você pode executar o "WinAudit" (gratuito, apenas procure por ele) em um trabalho agendado. Ele gera relatórios HTML ou de texto e outros, dos quais você pode salvar em uma unidade de rede e visualizar a partir de um computador remoto.

OR:

Área de trabalho remota. Você se conecta e usa como se fosse uma máquina local. Funciona em * nix também.

    
por 12.09.2011 / 22:49
1

Você pode usar o WMI a partir do powershell:

gwmi win32_product -ComputerName Computer1

    
por 13.09.2011 / 05:45