@@ -116,16 +116,29 @@ def addrdpusr(username, password,cleanup_rc)
116116 print_status "Setting user account for logon"
117117 print_status "\t Adding User: #{ username } with Password: #{ password } "
118118 begin
119+ if check_user ( username )
120+ print_error ( "\t The user #{ username } already exists" )
121+ return
122+ end
123+
124+ user_added = false
119125 addusr_out = cmd_exec ( "cmd.exe" , "/c net user #{ username } #{ password } /add" )
126+
120127 if addusr_out =~ /success/i
128+ user_added = true
129+ elsif check_user ( username )
130+ user_added = true
131+ end
132+
133+ if user_added
121134 file_local_write ( cleanup_rc , "execute -H -f cmd.exe -a \" /c net user #{ username } /delete\" " )
122135 print_status "\t Adding User: #{ username } to local group '#{ rdu } '"
123136 cmd_exec ( "cmd.exe" , "/c net localgroup \" #{ rdu } \" #{ username } /add" )
124137
125138 print_status "\t Hiding user from Windows Login screen"
126139 hide_user_key = 'HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\SpecialAccounts\\UserList'
127140 registry_setvaldata ( hide_user_key , username , 0 , "REG_DWORD" )
128- file_local_write ( @dest , "reg deleteval -k HKLM\\ \\ SOFTWARE\\ \\ Microsoft\\ \\ Windows\\ NT\\ \\ CurrentVersion\\ \\ Winlogon\\ \\ SpecialAccounts\\ \\ UserList -v #{ username } " )
141+ file_local_write ( cleanup_rc , "reg deleteval -k HKLM\\ \\ SOFTWARE\\ \\ Microsoft\\ \\ Windows\\ NT\\ \\ CurrentVersion\\ \\ Winlogon\\ \\ SpecialAccounts\\ \\ UserList -v #{ username } " )
129142 print_status "\t Adding User: #{ username } to local group '#{ admin } '"
130143 cmd_exec ( "cmd.exe" , "/c net localgroup #{ admin } #{ username } /add" )
131144 print_status "You can now login with the created user"
@@ -136,8 +149,17 @@ def addrdpusr(username, password,cleanup_rc)
136149 print_error ( "\t #{ l . chomp } " )
137150 end
138151 end
139- rescue ::Exception => e
152+ rescue ::Exception => e
140153 print_status ( "The following Error was encountered: #{ e . class } #{ e } " )
141154 end
142155 end
156+
157+ def check_user ( user )
158+ output = cmd_exec ( 'cmd.exe' , '/c net user' )
159+ if output . include? ( user )
160+ return true
161+ end
162+
163+ false
164+ end
143165end
0 commit comments