I thought I could chip in with what I have done:
First ensure that "unattendedswitch=yes" (in winnt.sif), because that is the only way you can disable the manual OOBE and instead configure it for automation.
my oobeinfo.ini
[UserInfo]
Identity001="Normal Usage"
Identity002="testing"
Identity003="Config"
For more info, see the deploy.cab's chm files.
Place oobeinfo.ini in - "$OEM$\$$\System32\OOBE\".
And, apply this thru a .reg at cmdlines.txt stage:
;logs in user "Config" the first time
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"DefaultUserName"="Config"
"DefaultPassword"=""
"AutoAdminLogon"="1"
The above directly logs in the user Config (if you've disabled that OOBE with UnattendSwitch=Yes) and continues with your guirunonce.
The below, if run thru a .reg thru guirunonce stops subsequent auto-logging in:
;first of all, stop further auto-logins
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"DefaultUserName"=""
"DefaultPassword"=""
"AutoAdminLogon"="0"
Then, do this thru a .cmd (during guirunonce):
ECHO Applying usernames and passwords...
net user testing mypassword
net user Config mYpA$$w0rD
net localgroup Administrators "Normal Usage" /delete
net localgroup Users "Normal Usage" /add
ECHO.
change the word "mypassword" to the password you want to assign.
The (now) limited-user called Normal Usage will still be able to click his name at the user-welcome screen and login without providing any password.
I have tested this many,many,MANY times and it works perfectly.
Tell me if you liked it. (i wanted something like what i have described above since 4 months before i got trickles of ideas about this. I then put together the entire *WORKING* process to help others who want the same). Turned out to be pretty simple, right?
hoping this helps
Cheers !!!