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

I have Windows XP running in virtual machines connected to my local network for testing purposes. The tests are done remotely. When finished, I want to shut them down remotely, from a Linux box.

ETA: Note that the Windows box runs XP Home, so there are no security / group policies.

For the Linux systems in the same setup, I do:

#> ssh root@linux-vm123 'shutdown -h now';

For the Windows systems, I should be able to do:

#> net rpc SHUTDOWN -I xx.xx.xx.xx -f -U user%pwd

But that gives me the following error:

Could not connect to server xx.xx.xx.xx
The username or password was not correct.
Connection failed: NT_STATUS_LOGON_FAILURE

The user is an administrator and the account has a password set. Do I need to set up anything on the Windows system?

ETA: Is there a way I can test just the login, i. e. without sending a shutdown command that might need other privileges or settings?

share|improve this question
    
People seem to be very trigger happy, I will comment instead. First of all, you have checked the username/password combination for sure and know it works, correct? –  user1797 May 11 '09 at 11:21
    
Yes, of course. What I have never quite understood, though, is how I have to qualify a username on a Windows system. I tried just the name, machine\name and workgroup\name, to be sure. –  Hanno Fietz May 11 '09 at 11:59
add comment

5 Answers

up vote 8 down vote accepted

Windows XP Home does not allow network logon other than via the Guest account. So you have to enable it first of all.

This gave me a new error telling me that the "logon type" wasn't permitted. Logon type was "code 3", which I found out to mean "network logon". Activating file sharing fixed this, but I have no idea why.

Of course, Guest is not allowed to shutdown the computer, so the account has to be added to the Administrators group (which is of course a massive violation of any security guidelines, but remember this is completely local, all under my desk and staying there) by issuing the following command in the shell:

net localgroup Administrators Guest /ADD

And then, you'll find out that the RPC shutdown command seems to require the winreg named pipe on the target which seems to be provided by the Remote Registry service, which is not available in XP Home. So, for now, no remote shutdown for me.

It should be noted that XP Home just isn't meant to work in a managed, professional network, but I'm choosing the systems to test on for what I'm expecting on the target machines, not what I want to use. However, a note in the net/rpcclient manpages would have been very kind...

share|improve this answer
    
Great catch, sorry that it didn't pan out for you though. –  Richard Slater May 14 '09 at 18:48
    
Full credits, sir. I'm impressed, really. –  Johan Buret May 15 '09 at 8:53
add comment

Almost there. Please escape your backslashes on a bash command line.

#> net rpc SHUTDOWN -I xx.xx.xx.xx -f -U DOMAIN\\user%pwd
#> net rpc SHUTDOWN -I xx.xx.xx.xx -f -U MACHINENAME\\user%pwd

This should work

share|improve this answer
    
Great if this work. Please accept my answer, and give Richard Slater some credit too, I was just here for syntax. –  Johan Buret May 12 '09 at 8:14
    
No, sorry, escaping doesn't help either. –  Hanno Fietz May 14 '09 at 7:57
add comment

Are you specifying the Domain or Machine name:

i.e. if the machine is on a domain

#> net rpc SHUTDOWN -I xx.xx.xx.xx -f -U DOMAIN\user%pwd

or

#> net rpc SHUTDOWN -I xx.xx.xx.xx -f -U user@domain.com%pwd

or if the machine is in a workgroup

#> net rpc SHUTDOWN -I xx.xx.xx.xx -f -U MACHINENAME\user%pwd
share|improve this answer
    
The machine is on a workgroup, I tried MACHINENAME\user with the same result. –  Hanno Fietz May 11 '09 at 11:05
    
I also tried WORKGROUPNAME\user, same too. –  Hanno Fietz May 11 '09 at 11:06
add comment

In my experience there are two things that could be going wrong. The first and most common is whether or remote shutdown is allowed. In the Local Security Policy (Start -> Control Panel -> Administrative Tools -> Local Security Policy). Expand Local Policies and open up Security Options. "Network Access: Sharing and security model for local accounts" needs to be set to Classic.

As another answer has said the machine name is required, even if you have already specified an IP address. Try using something like this:

rpcclient --user='Administrator' -I x.x.x.x --command='shutdown' ComputerName
share|improve this answer
    
The box runs XP Home, there's no such thing as local security policies. Does that mean remote shutdown can't work? Or that it can't be disallowed? –  Hanno Fietz May 14 '09 at 7:52
    
The good news is that I can give you the location of the registry key to change. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Data The bad news is that it's binary data encompassing all of the security policies and since I don't have an XP home install anywhere I can't verify that XP home even has that key. I'll do a bit more research to see what I can find. –  TrueDuality May 14 '09 at 13:06
add comment

A stupid evil hack would be to create a service listening on a port of your chosing that does nothing more than execute shutdown (perhaps psshutdown from the PsTools suite if XP home does not include such a command). Any connection attempt to that port should trigger a shutdown, so of course you open yourself up to annoyance if someone so much as port scans your test box...

A slightly more security-minded approach would be to make Windows more like Linux and install an SSH server (perhaps full-blown cygwin, perhaps one of the SSH-server-only packages that I've seen on t'internet)

share|improve this answer
add comment

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.