@@ -116,16 +116,29 @@ def addrdpusr(username, password,cleanup_rc)
116
116
print_status "Setting user account for logon"
117
117
print_status "\t Adding User: #{ username } with Password: #{ password } "
118
118
begin
119
+ if check_user ( username )
120
+ print_error ( "\t The user #{ username } already exists" )
121
+ return
122
+ end
123
+
124
+ user_added = false
119
125
addusr_out = cmd_exec ( "cmd.exe" , "/c net user #{ username } #{ password } /add" )
126
+
120
127
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
121
134
file_local_write ( cleanup_rc , "execute -H -f cmd.exe -a \" /c net user #{ username } /delete\" " )
122
135
print_status "\t Adding User: #{ username } to local group '#{ rdu } '"
123
136
cmd_exec ( "cmd.exe" , "/c net localgroup \" #{ rdu } \" #{ username } /add" )
124
137
125
138
print_status "\t Hiding user from Windows Login screen"
126
139
hide_user_key = 'HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\SpecialAccounts\\UserList'
127
140
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 } " )
129
142
print_status "\t Adding User: #{ username } to local group '#{ admin } '"
130
143
cmd_exec ( "cmd.exe" , "/c net localgroup #{ admin } #{ username } /add" )
131
144
print_status "You can now login with the created user"
@@ -136,8 +149,17 @@ def addrdpusr(username, password,cleanup_rc)
136
149
print_error ( "\t #{ l . chomp } " )
137
150
end
138
151
end
139
- rescue ::Exception => e
152
+ rescue ::Exception => e
140
153
print_status ( "The following Error was encountered: #{ e . class } #{ e } " )
141
154
end
142
155
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
143
165
end
0 commit comments