Skip to content

Commit 3d0190b

Browse files
author
Michal Zobec
committed
Create-NewUsersFromListCore
Create-NewUsersFromListCore
1 parent 5bc01b9 commit 3d0190b

File tree

2 files changed

+90
-87
lines changed

2 files changed

+90
-87
lines changed

Create-NewUsersFromList/Create-NewUsersFromListCore.ps1

Lines changed: 89 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -158,106 +158,109 @@ foreach ($User in $UsersList) {
158158
Write-Log -LogFile $LogFile -Message "IsAdmin $IsAdmin" -Level DEBUG
159159
Write-Log -LogFile $LogFile -Message "IsRemoteUser $IsRemoteUser" -Level DEBUG
160160

161-
#Check if the user account already exists in AD
162-
# If (Get-LocalUser -F { Name -eq $UserID } -ErrorAction Continue) {
163-
# #If user does exist, output a warning message
164-
# Write-Warning "A user account $UserID has already exist in this system."
165-
# Write-Log -LogFile $LogFile -Message "A user account $UserID has already exist in this system." -Level ERROR
166-
# }
167-
# Else {
168-
# #If a user does not exist then create a new user account
169-
170-
#region Password
171-
Clear-Variable RandomPassword
172-
Clear-Variable NewPassword
173-
174-
# generating dynamic part of password
175-
Write-Log -LogFile $LogFile -Message "Generating new password" -Level DEBUG
176-
$RandomPassword = Get-TempPassword -length $PasswordLength -sourcedata $ascii
177-
Write-Log -LogFile $LogFile -Message "New password '$RandomPassword' was generated" -Level DEBUG
178-
# merge with static part of password
179-
$RandomPassword = $StaticPasswordPart + $RandomPassword
180-
Write-Log -LogFile $LogFile -Message "Updated password '$RandomPassword'" -Level DEBUG
181-
182-
# converting to secure string
183-
Write-Log -LogFile $LogFile -Message "converting password to secure string" -Level DEBUG
184-
$NewPassword = ConvertTo-SecureString -String $RandomPassword -AsPlainText -Force
185-
Write-Log -LogFile $LogFile -Message "password was converted to secure string" -Level DEBUG
186-
#endregion
187-
188-
#region creating new account
189-
Write-Log -LogFile $LogFile -Message "Creating new account." -Level DEBUG
190-
Try {
191-
Write-Log -LogFile $LogFile -Message "New-LocalUser Name '$UserID', FullName '$FullName', Description '$Description', Password '$NewPassword'" -Level DEBUG
192-
New-LocalUser -Name "$UserID" -FullName "$FullName" -Description "$Description" -Password $NewPassword -ErrorAction Stop
193-
}
194-
Catch {
195-
Write-Log -LogFile $LogFile -Message "Creating of new account was failed." -Level DEBUG
196-
Write-Warning -Message "Creating of new account was failed."
197-
Write-Warning $_.Exception.Message
198-
Write-Log -LogFile $LogFile -Message "Error: '$_.Exception.Message'" -Level ERROR
199-
exit
161+
#region Check if user account is exist
162+
$UserExists = [bool](Get-LocalUser -Name "$UserID" -ErrorAction Continue 2>$null)
163+
if (($UserExists)) {
164+
# If user not exist, warning
165+
Write-Warning "A user account $UserID has already exist in this system."
166+
Write-Log -LogFile $LogFile -Message "A user account $UserID has already exist in this system." -Level ERROR
200167
}
201168
#endregion
202169

203-
#region assigning Users group
204-
Try {
205-
Write-Log -LogFile $LogFile -Message "Add-LocalGroupMember Group 'Users', Member '$UserID'" -Level DEBUG
206-
Add-LocalGroupMember -Group "Users" -Member "$UserID" -ErrorAction Stop
207-
}
208-
Catch {
209-
Write-Warning $_.Exception.Message
210-
Write-Log -LogFile $LogFile -Message "Error: '$_.Exception.Message'" -Level ERROR
211-
exit
212-
}
213-
#endregion
214-
215-
#region assigning Administrators group
216-
If ($IsAdmin -like $True) {
217-
Write-Log -LogFile $LogFile -Message "IsAdmin: True" -Level DEBUG
218-
try {
219-
Write-Log -LogFile $LogFile -Message "Add-LocalGroupMember Group 'Administrators', Member '$UserID'" -Level DEBUG
220-
Add-LocalGroupMember -Group "Administrators" -Member "$UserID" -ErrorAction Stop
221-
$PermissionsText = "IsAdmin"
170+
#region If user exist, create it
171+
Else {
172+
#region Password
173+
Clear-Variable RandomPassword
174+
Clear-Variable NewPassword
175+
176+
# generating dynamic part of password
177+
Write-Log -LogFile $LogFile -Message "Generating new password" -Level DEBUG
178+
$RandomPassword = Get-TempPassword -length $PasswordLength -sourcedata $ascii
179+
Write-Log -LogFile $LogFile -Message "New password '$RandomPassword' was generated" -Level DEBUG
180+
# merge with static part of password
181+
$RandomPassword = $StaticPasswordPart + $RandomPassword
182+
Write-Log -LogFile $LogFile -Message "Updated password '$RandomPassword'" -Level DEBUG
183+
184+
# converting to secure string
185+
Write-Log -LogFile $LogFile -Message "converting password to secure string" -Level DEBUG
186+
$NewPassword = ConvertTo-SecureString -String $RandomPassword -AsPlainText -Force
187+
Write-Log -LogFile $LogFile -Message "password was converted to secure string" -Level DEBUG
188+
#endregion
189+
190+
#region creating new account
191+
Write-Log -LogFile $LogFile -Message "Creating new account." -Level DEBUG
192+
Try {
193+
Write-Log -LogFile $LogFile -Message "New-LocalUser Name '$UserID', FullName '$FullName', Description '$Description', Password '$NewPassword'" -Level DEBUG
194+
New-LocalUser -Name "$UserID" -FullName "$FullName" -Description "$Description" -Password $NewPassword -ErrorAction Stop
222195
}
223-
catch {
196+
Catch {
197+
Write-Log -LogFile $LogFile -Message "Creating of new account was failed." -Level DEBUG
198+
Write-Warning -Message "Creating of new account was failed."
224199
Write-Warning $_.Exception.Message
225200
Write-Log -LogFile $LogFile -Message "Error: '$_.Exception.Message'" -Level ERROR
226201
exit
227202
}
228-
}
229-
Else {
230-
Write-Log -LogFile $LogFile -Message "IsAdmin: False" -Level DEBUG
231-
$PermissionsText = "IsNotAdmin"
232-
}
233-
#regionend
234-
235-
#region assigning Remote Desktop Users group
236-
If ($IsRemoteUser -like $True) {
237-
Write-Log -LogFile $LogFile -Message "IsRemoteUser: True" -Level DEBUG
238-
# assigning Remote Desktop Users group
239-
try {
240-
Write-Log -LogFile $LogFile -Message "Add-LocalGroupMember Group 'Remote Desktop Users', Member '$UserID'" -Level DEBUG
241-
Add-LocalGroupMember -Group "Remote Desktop Users" -Member "$UserID" -ErrorAction Stop
242-
$PermissionsText += ", IsRemoteUser"
203+
#endregion
204+
205+
#region assigning Users group
206+
Try {
207+
Write-Log -LogFile $LogFile -Message "Add-LocalGroupMember Group 'Users', Member '$UserID'" -Level DEBUG
208+
Add-LocalGroupMember -Group "Users" -Member "$UserID" -ErrorAction Stop
243209
}
244-
catch {
210+
Catch {
245211
Write-Warning $_.Exception.Message
246212
Write-Log -LogFile $LogFile -Message "Error: '$_.Exception.Message'" -Level ERROR
247213
exit
248214
}
249-
}
250-
Else {
251-
Write-Log -LogFile $LogFile -Message "IsRemoteUser: False" -Level DEBUG
252-
$PermissionsText += ", IsNotRemoteUser"
253-
}
254-
#regionend
215+
#endregion
216+
217+
#region assigning Administrators group
218+
If ($IsAdmin -like $True) {
219+
Write-Log -LogFile $LogFile -Message "IsAdmin: True" -Level DEBUG
220+
try {
221+
Write-Log -LogFile $LogFile -Message "Add-LocalGroupMember Group 'Administrators', Member '$UserID'" -Level DEBUG
222+
Add-LocalGroupMember -Group "Administrators" -Member "$UserID" -ErrorAction Stop
223+
$PermissionsText = "IsAdmin"
224+
}
225+
catch {
226+
Write-Warning $_.Exception.Message
227+
Write-Log -LogFile $LogFile -Message "Error: '$_.Exception.Message'" -Level ERROR
228+
exit
229+
}
230+
}
231+
Else {
232+
Write-Log -LogFile $LogFile -Message "IsAdmin: False" -Level DEBUG
233+
$PermissionsText = "IsNotAdmin"
234+
}
235+
#regionend
236+
237+
#region assigning Remote Desktop Users group
238+
If ($IsRemoteUser -like $True) {
239+
Write-Log -LogFile $LogFile -Message "IsRemoteUser: True" -Level DEBUG
240+
# assigning Remote Desktop Users group
241+
try {
242+
Write-Log -LogFile $LogFile -Message "Add-LocalGroupMember Group 'Remote Desktop Users', Member '$UserID'" -Level DEBUG
243+
Add-LocalGroupMember -Group "Remote Desktop Users" -Member "$UserID" -ErrorAction Stop
244+
$PermissionsText += ", IsRemoteUser"
245+
}
246+
catch {
247+
Write-Warning $_.Exception.Message
248+
Write-Log -LogFile $LogFile -Message "Error: '$_.Exception.Message'" -Level ERROR
249+
exit
250+
}
251+
}
252+
Else {
253+
Write-Log -LogFile $LogFile -Message "IsRemoteUser: False" -Level DEBUG
254+
$PermissionsText += ", IsNotRemoteUser"
255+
}
256+
#regionend
255257

256-
# final message
257-
Write-Log -LogFile $LogFile -Message "Created user account $UserID, FullName '$FullName', password '$RandomPassword', permissions '$PermissionsText'." -Level DEBUG
258-
# final message to special file
259-
Add-Content "$GeneratedUsersList" -Value "User $UserID, FullName '$FullName', password '$RandomPassword', permissions '$PermissionsText'."
260-
# }
258+
# final message
259+
Write-Log -LogFile $LogFile -Message "Created user account $UserID, FullName '$FullName', password '$RandomPassword', permissions '$PermissionsText'." -Level DEBUG
260+
# final message to special file
261+
Add-Content "$GeneratedUsersList" -Value "User $UserID, FullName '$FullName', password '$RandomPassword', permissions '$PermissionsText'."
262+
}
263+
#endregion
261264
}
262265

263266

Create-NewUsersFromList/Tests/Remove-Accounts.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ Set-StrictMode -Version 7
1515
Log file, created local accounts.
1616
1717
.EXAMPLE
18-
C:\> Create-NewUsersFromList.ps1
18+
C:\> Remove-Accounts.ps1
1919
2020
.NOTES
2121
Twitter: @michalzobec

0 commit comments

Comments
 (0)