Zobacz zainstalowane programy na zdalnym komputerze?

19

Zastanawiałem się, czy istnieje prosta i lekka metoda przeglądania programów zainstalowanych na zdalnym komputerze? Kusi mnie używanie Spiceworks, ale chciałbym czegoś lżejszego jak skrypt. Bawię się trochę z WMIC i mogę uzyskać listę programów dla mojego komputera, ale nie wiem, czy mogę zrobić to samo z komputerem zdalnym. Jakieś pomysły?

Edycja: Przepraszam, że zapomniałem o systemie operacyjnym, używamy głównie systemu Windows XP i 7, korzystam z systemu Windows 7. Szukam czegoś do uruchomienia w tle bez wiedzy użytkownika. Chciałbym móc to zrobić w ciągu dnia roboczego, gdy ludzie pracują i robią to bez przerywania ich. Doceniam odpowiedzi na Linuksa, ponieważ próbuję dowiedzieć się więcej o Linuksie i planuję kiedyś osobiście się zmienić.

Mobojo
źródło
7
Pomoże to poznać system operacyjny maszyny.
ℝaphink
Dlaczego tylko programy? W systemie mogą znajdować się inne materiały chronione prawem autorskim (pliki czcionek i pliki mp3 to oczywiste przypadki)
symcbean
@symcbean Głównym powodem, dla którego pytam, jest licencja. Mamy kilka programów, do których mamy tylko pełną licencję i muszę dowiedzieć się, gdzie są zainstalowane programy, więc mogę ustalić, czy mogę je gdzieś odinstalować, aby inny użytkownik mógł z niego skorzystać, czy też muszę kupić nowa licencja. Inne rzeczy zajmę się w późniejszym punkcie.
Mobojo,

Odpowiedzi:

19

Możesz użyć jednego z narzędzi Sysinternals PSinfo:

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

PsInfo v1.77 - Przeglądarka informacji o systemie lokalnym i zdalnym Copyright (C) 2001-2009 Mark Russinovich Sysinternals - www.sysinternals.com

PsInfo zwraca informacje o lokalnym lub zdalnym systemie Windows NT / 2000 / XP.

Użycie: psinfo [-h] [-s] [-d] [-c [-t separator]] [filtr] [\ komputer [, komputer [, ..]] | @plik [-u nazwa użytkownika [-p hasło ]]]

 -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

filtr. np. „usługa psinfo” wyświetla tylko pole dodatku service pack. computer Direct PsInfo, aby wykonać polecenie na zdalnym komputerze lub określonych komputerach. Jeśli pominiesz nazwę komputera, PsInfo uruchomi polecenie w systemie lokalnym, a jeśli podasz symbol wieloznaczny (\ *), PsInfo uruchomi polecenie na wszystkich komputerach w bieżącej domenie. @plik PsInfo będzie działał na komputerach wymienionych w podanym pliku.

Wydawanie

PSinfo -s \\ nazwa_komputera

powie ci, co jest zainstalowane na komputerze zdalnym.

RobW
źródło
11

W dystrybucji Linuksa opartej na rpm można uruchomić następujące czynności:

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

W przypadku dystrybucji opartej na deb, przekaż to do komendy ssh:

'dpkg-query -l | sort'

W przypadku Gentoo (na podstawie dostarczonego komentarza od Monksy ):

'qpkg -I | sort'

W systemie Solaris:

'pkginfo -i | sort'

A w systemie AIX:

'lslpp -a all | sort'
królikarnia
źródło
1
Gentoo: Jeśli masz zainstalowany Gentoolkit w Gentoo, możesz znaleźć wszystkie zainstalowane pakiety za pomocą: „qpkg -I”
monksy,
Czy mogę użyć tego na komputerze z systemem Linux, aby wyświetlić informacje na komputerze z systemem Windows, czy jest to tylko system Linux na system Linux?
Mobojo
@Mobojo - nie jestem pewien, czy możesz uruchomić podobne polecenie z komputera * nix do systemu Windows; z pewnością powinieneś być w stanie użyć dowolnego klienta ssh do uruchomienia tych poleceń z dowolnego komputera inicjującego na * nix
warren
6

WMIC może być domyślnie używany zdalnie z kontem należącym do grupy Administratorzy. Możesz przekazać dostęp do odczytu WMI zwykłemu użytkownikowi.

Można także użyć SNMP - wystarczy skonfigurować społeczność tylko do odczytu. Musisz przejrzeć tabelę hrSWInstalled:snamwalk -c public -v2c server_IP hrSWInstalled

Zobacz także: http://technet.microsoft.com/en-us/library/bb742610.aspx

Mircea Vutcovici
źródło
6

Oto skrypt PowerShell, który połączy się z kluczem rejestru HKLM \ Software \ Microsoft \ Windows \ Odinstaluj, wyciągnij klucze, uzyskaj ich nazwy wyświetlane i wyślij do pliku tekstowego.

$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
Krzysztof
źródło
2

Jest milion programów, które to zrobią. Niektóre są łatwiejsze i lżejsze niż inne.

Oto tylko jeden z niezliczonych programów, które to robią:

http://managepc.net/

joeqwerty
źródło
1

Jeśli jest to komputer z systemem Windows, możesz uruchomić „WinAudit” (bezpłatnie, po prostu go wyszukaj) dla zaplanowanego zadania. Generuje raporty HTML lub tekstowe, które możesz zapisać na dysku sieciowym i przeglądać ze zdalnego komputera.

LUB:

Zdalny ekran. Podłączasz się i używasz go tak, jakby był maszyną lokalną. Działa również w * nix.

U4iK_HaZe
źródło
1

Możesz używać WMI z PowerShell:

gwmi win32_product -ComputerName Komputer1

Ameer Deen
źródło