查看远程机器上安装的程序?

Mob*_*ojo 19 network-monitoring

我想知道是否有一种简单轻便的方法来查看远程机器上安装了哪些程序?我很想使用 Spiceworks,但我想要更轻量级的东西,比如脚本。我一直在玩 WMIC,可以为我的计算机获取程序列表,但我不知道我是否可以对远程计算机执行相同的操作。有任何想法吗?

编辑:抱歉,我忘记了操作系统,我们主要使用 Windows XP 和 7,我使用 Windows 7。我正在寻找可以在后台运行的东西,而当前正在使用计算机的用户不知道。我希望能够在人们工作的工作日进行,并且不会打扰他们。我很欣赏 Linux 的答案,因为我正在尝试更多地了解 Linux 并计划在某个时候个人改变。

Rob*_*obW 19

您可以使用 Sysinternals 工具PSinfo 之一:

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

PsInfo v1.77 - 本地和远程系统信息查看器 版权所有 (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 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
Run Code Online (Sandbox Code Playgroud)

筛选。例如,“psinfo 服务”仅列出服务包字段。计算机 指示 PsInfo 在远程计算机或指定的计算机上执行命令。如果省略计算机名 PsInfo 在本地系统上运行命令,并且如果指定通配符 (\*),PsInfo 在当前域中的所有计算机上运行命令。@file PsInfo 将针对指定文件中列出的计算机运行。

发行

PSinfo -s \\计算机名

会告诉您远程计算机上安装了什么。


war*_*ren 11

在基于 rpm 的 Linux 发行版上,您可以运行以下命令:

ssh <user-who-can-run-rpm>@<remote.host> 'rpm -qa | sort'
Run Code Online (Sandbox Code Playgroud)

对于基于 deb 的发行版,请将其传递给 ssh 命令:

'dpkg-query -l | sort'
Run Code Online (Sandbox Code Playgroud)

对于 Gentoo(根据Monksy提供的评论):

'qpkg -I | sort'
Run Code Online (Sandbox Code Playgroud)

对于 Solaris:

'pkginfo -i | sort'
Run Code Online (Sandbox Code Playgroud)

在 AIX 上:

'lslpp -a all | sort'
Run Code Online (Sandbox Code Playgroud)


Mir*_*ici 6

默认情况下,WMIC 可以通过属于 Administrators 组的帐户远程使用。您可以将只读 WMI 访问权限委托给普通用户。

也可以使用 SNMP - 您只需要配置一个只读社区。您需要浏览 hrSWInstalled 表:snamwalk -c public -v2c server_IP hrSWInstalled

另见:http : //technet.microsoft.com/en-us/library/bb742610.aspx


Chr*_*her 6

这是一个 PowerShell 脚本,它将连接到 HKLM\Software\Microsoft\Windows\Uninstall 注册表项,提取这些键,获取它们的显示名称并发送到一个文本文件。

$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
Run Code Online (Sandbox Code Playgroud)