Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

The title pretty much covers it all. There is a Windows XP system on the network which is currently in use by another user. Since XP only allows one active user session at a time, I cannot use RDP and run appwiz.cpl to view installed programs because this would result in the local user's session being locked or terminated. So, how can I get a list of installed programs from this system remotely without inconveniencing the user?

Presume the following:

  • Remote system is running Windows XP SP3.
  • Local system is running Windows XP SP3 or Server 2003 SP2.
  • Both systems are running practically bone-stock setups.
    • Do not presume any extra tools (MS or third-party) are installed, or non-default services enabled, unless otherwise specified here.
    • Remote Registry is enabled on the target system.
    • SNMP is disabled on the target system.
  • I have a user account in the Administrator group on both systems.
  • I am using an Active Directory domain account.
  • I am not permitted to install any additional software, or enable any additional services on either system.
  • I need a reliable list of all software which might be registered as installed.
    • The list should effectively reflect the same information which is available via appwiz.cpl.
    • Any form of dir "C:\Program Files\" is not acceptable.
  • Both systems, and my user account, are members of the same Active Directory domain.
  • The systems are on an isolated network, without Internet connectivity.
share|improve this question
1  
Does SNMP work? –  ewwhite Feb 13 '12 at 19:41
    
Are you looking for just applications registered with Windows Installer (e.g. MSIs) or are you trying to "guess" non-compliant applications as well? –  jscott Feb 13 '12 at 19:42
    
@ewwhite I'm pretty sure that SNMP is not enabled by default in Windows XP. If I'm wrong, please let me know. I'm fairly confident though, that it is not enabled on the target system in this case. –  Iszi Feb 13 '12 at 19:42
    
Does PowerShell count as an "extra tool"? –  Christopher Feb 13 '12 at 19:43
    
@jscott I'm pretty much just looking for the same list of applications that I would get from appwiz.cpl. –  Iszi Feb 13 '12 at 19:43

4 Answers 4

up vote 6 down vote accepted

psinfo -s \\"remote machine" - and you can run it from the Sysinternals website directly, without installing it.

In your case, without Internet access, query the remote registry (REG QUERY) for everything under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall - you want terse, only extract the DisplayName value from the subkeys.

share|improve this answer
    
Ah, I forgot to mention no web connectivity. Thanks, though. –  Iszi Feb 13 '12 at 19:45
    
OK, added second answer for new constraint. –  mfinni Feb 13 '12 at 19:50
    
Thanks for the update with Remote Registry. I'm a bit unfamiliar with using REG QUERY on a remote system from the command line. Could you provide full syntax, including where the system IP/hostname and other essential switches & parameters should go? –  Iszi Feb 13 '12 at 19:52
1  
Didn't know you couldn't run "reg query /?" on your own machine :-) reg query \\remotemachinename\HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall /s. There you go, –  mfinni Feb 13 '12 at 19:54
1  
It seems there's still so many ways to skin this cat. I'm going to have a hard time picking an answer to accept from everyone here. –  Iszi Feb 13 '12 at 19:56

You can query a remote computer via WMI using the included utility wmic. The product alias will give you access to the installation package task management information. You may, of course, direct this output to a file as needed.

wmic /node:"somecomputer" product get name,version,vendor

As wmic uses WMI, there are myriad options for what you may query. See the TechNet article WMIC - Take Command-line Control over WMI for some more details.

share|improve this answer
    
ERROR: Code = 0x80041010 Description = Invalid class Facility = WMI. Is there some case-sensitivity I should be aware of? Would using an IP address in place of "somecomputer" affect things? –  Iszi Feb 13 '12 at 20:07
1  
google "wmi by ip address instead of name" - looks like that could be your problem. Does a reverse lookup properly resolve? –  mfinni Feb 13 '12 at 20:11
    
@Iszi Interesting, I am able to successfully wmic query a remote XP computer using either its hostname or IP. Do you know if you have anything that would be blocking/filtering WMI queries? Can you try wmic /node:"localhost" product get name,version,vendor to verify WMI is locally functional? –  jscott Feb 13 '12 at 20:16
    
actually, googling the error you got (hint - you should do that yourself before asking for external help) looks like an optional component for Windows wasn't installed on your remote machine. If in doubt, I would suggest using scriptomatic to see if other queries work, but you can't install extra software. –  mfinni Feb 13 '12 at 20:19

How about

wmic /node:"workstation-name" Product GET description

?

share|improve this answer
    
ERROR: Code = 0x80041010 Description = Invalid class Facility = WMI. Is there some case-sensitivity I should be aware of? Would using an IP address in place of "workstation-name" affect things? –  Iszi Feb 13 '12 at 20:08

I've been using a script for a while that works well. As suggested in other answers here it uses WMI. The nice thing is that it is ready to go. You can get the script from here: http://billsway.com/vbspage/

Look for 'List Installed Programs'.

share|improve this answer
    
+1 I have incorporated something very similar into my logon scripts and send the output to a log file on the server. Very handy for seeing who has what installed. –  John Gardeniers Feb 13 '12 at 20:35

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.