我想知道是否有一种简单且轻量级的方法来查看远程计算机上安装了哪些程序?我很想使用 Spiceworks,但我想要一些更轻量级的东西,比如脚本。我一直在使用 WMIC,可以获得我电脑的程序列表,但我不知道是否可以用它对远程电脑执行相同的操作。有什么想法吗?
编辑:抱歉,我忘记了操作系统,我们主要使用 Windows XP 和 7,我使用 Windows 7。我正在寻找可以在后台运行而无需当前使用计算机的用户知道的东西。我希望能够在工作日人们工作时执行此操作而不会打扰他们。我非常感谢 Linux 的答案,因为我正在尝试更多地了解 Linux,并计划在某个时候亲自更改。
答案1
您可以使用 Sysinternals 工具之一PS信息:
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 分隔符]] [过滤器] [\computer[,computer[,..]]|@file [-u 用户名 [-p 密码]]]
-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
过滤器。例如“psinfo service”仅列出服务包字段。computer 指示 PsInfo 在指定的远程计算机或计算机上执行命令。如果省略计算机名称,PsInfo 将在本地系统上运行命令;如果指定通配符 (\*),PsInfo 将在当前域中的所有计算机上运行命令。@file PsInfo 将针对指定文件中列出的计算机运行。
发行
PSinfo -s \\计算机名称
将告诉您远程计算机上安装了什么。
答案2
在基于 rpm 的 Linux 发行版上,您可以运行以下命令:
ssh <user-who-can-run-rpm>@<remote.host> 'rpm -qa | sort'
对于基于 deb 的发行版,将其传递给 ssh 命令:
'dpkg-query -l | sort'
对于 Gentoo(根据提供的评论蒙克西):
'qpkg -I | sort'
对于 Solaris:
'pkginfo -i | sort'
在 AIX 上:
'lslpp -a all | sort'
答案3
默认情况下,可以使用属于管理员组的帐户远程使用 WMIC。您可以将只读 WMI 访问权限委托给普通用户。
SNMP 也可以使用 - 您只需配置一个只读社区。您需要浏览 hrSWInstalled 表:snamwalk -c public -v2c server_IP hrSWInstalled
也可以看看:http://technet.microsoft.com/en-us/library/bb742610.aspx