查看远程计算机上已安装的程序?


19

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

编辑:对不起,我忘记了操作系统,我们主要使用Windows XP和7,我使用的是Windows 7。我希望能够在人们工作期间的工作日内做到这一点,并且不会打扰他们。我非常感谢Linux的答案,因为我试图学习有关Linux的更多信息,并计划在一段时间内进行个人更改。


7
了解机器的操作系统将很有帮助。
ℝaphink

为什么只编程?系统上可能还有其他受版权保护的材料(字体文件和
mp3

@symcbean我要问的主要理由是许可。我们有几个程序,只有一堆许可证,我需要弄清楚这些程序的安装位置,以便确定是否可以在某个地方卸载它,以便另一个用户可以使用该程序,或者是否需要购买该程序。新许可证。我将在稍后讨论的其他内容。
Mobojo 2011年

Answers:


19

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

http://technet.microsoft.com/zh-cn/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服务”仅列出服务包字段。computer Direct PsInfo以在远程计算机或指定的计算机上执行命令。如果省略计算机名称,则PsInfo在本地系统上运行命令,并且如果指定通配符(\ *),则PsInfo在当前域中的所有计算机上运行命令。@file PsInfo将针对指定文件中列出的计算机运行。

发行

PSinfo -s \\计算机名

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


11

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

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

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

'dpkg-query -l | sort'

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

'qpkg -I | sort'

对于Solaris:

'pkginfo -i | sort'

在AIX上:

'lslpp -a all | sort'

1
Gentoo:如果您在gentoo上安装了gentoolkit,则可以使用以下命令找到所有已安装的软件包:“
qpkg

我可以在Linux机器上使用它来查看Windows机器上的信息,还是仅用于Linux到Linux?
Mobojo 2011年

@Mobojo-不确定是否可以从* nix机器向Windows机器运行类似的命令;您当然应该能够使用任何ssh客户端从任何原始计算机向* nix运行这些命令
warren


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


1

如果是Windows计算机,则可以在计划的作业上运行“ WinAudit”(免费,只需搜索)。它生成HTML或文本报告等,您可以将其保存到网络驱动器并从远程计算机查看。

要么:

远程桌面。您进行连接,并像使用本地计算机一样使用它。也可以在* nix中使用。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.