The command line to add a local windows user called “newuser” with the password “p&ssw^rd”
You try
1
| net user newuser p&ssw^rd /ADD |
Uh-oh – it fails!
1
2
3
4
5
6
7
| C:\> net user newuser p&ssw^rd /ADDThe user name could not be found.More help is available by typing NET HELPMSG 2221.'sswrd' is not recognized as an internal or external command,operable program or batch file. |
If the password contains certain special characters – like an ampersand “&” or a caret “^”, the password will be garbled, broken, butchered.
One solution is to have it prompt for the password
1
| net user newuser * /ADD |
but if you are scripting, this isn’t really helpful.
No, you cannot use quotes.
The solution: All Ampersands must be escaped with a caret “^”, and all carets in the password must be similarly escaped.
UPDATE: turns out in more recent versions of windows, exclamation marks “!” must also be escape with two carets.
See here for a good list of how to escape things.
http://www.robvanderwoude.com/escapechars.php
See here for a good list of how to escape things.
http://www.robvanderwoude.com/escapechars.php
So, to use the password p&ssw^rd in a command line, you would need to replace it with p^&ssw^^rd
1
| net user newuser p^&ssw^^rd /ADD |
This will do what you expect
Note that if you do not escape the carets, the command may succeed, but the password will be wrong.
No comments:
Post a Comment