Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I want to use the runas command in CMD and from Batch files to gain elevated permissions, but I don't have an admin password on my PC because it's my home computer and I'm the only user. Every time I try to use the runas command it asks me for a password, then tells me that blank passwords are not permitted, is there any way round this? I know I can just right click and select run as administrator, but I would much rather have a command that can do it as that is not always an option, and it's just a bit of a pain.

I could just be making some kind of basic mistake as I'm not hugely experienced with command prompt, but I'm not completely clueless.

share|improve this question
add comment

4 Answers

Since this is a home environment, I'm slightly less nervous about this answer. You should read the notes in the policy I am going to mention to understand what the implications are.

Go to Start | Run. Type secpol.msc and press Enter. Navigate to Local Policies, then Security Options. Find the policy that says Limit local account use of blank passwords to console logon only. Set it to disabled.

share|improve this answer
    
+1 for not telling them to simply disable UAC. At least they're leaving it enabled! –  Mark Allen Sep 5 '12 at 21:28
add comment

I believe you can use SysInternal's PSexec.exe to force elevation.

You could try for example running this: psexec \\%computername% -i -h notepad.exe

share|improve this answer
    
Nice trick. Also it will work without that last "1" parameter. –  Jet Mar 28 at 16:03
add comment

You can use VBScript to elevate commands:

Set objShell = CreateObject("Shell.Application")
objShell.ShellExecute "cmd.exe", "", "", "runas", 1 

Save as a *.vbs and then launch it with cscript or wscript

share|improve this answer
    
Nice trick. get +1 –  Jet Mar 28 at 15:01
add comment

As you've discovered, runas doesn't let you run a command elevated, only as a different user.

Elevation happens when you're try to start an executable that's been marked as requiring elevation, causing the UAC prompt. It's not just an option on CreateProcess. So if you're running non-elevated copy of cmd and want it to run another ordinary command but have it run elevated, you need an interlude command that can run it for you but is marked for elevation. It's complicated by the fact that current directories and environment variables don't get inherited by the elevated child.

The su command I included with my Hamilton C shell (full disclosure: I'm the author) has a sudo option that solves this and here's how I did it: When you ask su to run a command elevated, it starts a copy of itself stored as elevate.exe that's marked for elevation. elevate then handshakes through shared memory with su to pass the command line arguments, current directories and environment across the elevation boundary and then elevate runs the command.

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.