Skip to content

Commit 5d2ef1a

Browse files
author
Michal Zobec
committed
Create-NewUsersFromListCore
Updated version 20.04.20.144059
1 parent 123c40b commit 5d2ef1a

File tree

2 files changed

+28
-12
lines changed

2 files changed

+28
-12
lines changed

Create-NewUsersFromList/Create-NewUsersFromListCore.ps1

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#Requires -RunAsAdministrator
1+
#Requires -RunAsAdministrator
22
#Requires -Version 7
33
Set-StrictMode -Version 7
44

@@ -51,7 +51,8 @@ $ScriptVersion = "20.04.20.144059"
5151
$ScriptShortVersion = "20.04.0"
5252
$ScriptVersionStatus = "DEV WIP"
5353
$dirScriptDirRoot = (Split-Path $myinvocation.MyCommand.Path)
54-
$PasswordLength = 12
54+
$PasswordLength = 10
55+
$PasswordPart = "Qg1."
5556
#regionend
5657

5758
#region function write-log
@@ -112,12 +113,15 @@ if (!(Test-Path $InputFileName)) {
112113
Write-Warning "The input file name you specified can't be found."
113114
Write-Log -LogFile $LogFile -Message "ZOBEC Consulting" -Level INFO
114115
exit
116+
} else {
117+
Write-Log -LogFile $LogFile -Message "dirScriptDirRoot $dirScriptDirRoot" -Level DEBUG
118+
Write-Log -LogFile $LogFile -Message "InputFileName $InputFileName" -Level DEBUG
115119
}
116120
$GeneratedUsersList = $dirScriptDirRoot + "\GeneratedUsersList.csv"
117121

118122

119123
#Enter a path to your import CSV file
120-
$UsersList = Import-Csv "$InputFileName"
124+
$UsersList = Import-Csv "$InputFileName" -Delimiter ";" -ErrorAction Stop
121125
# Password length and character set to use for random password generation
122126
$ascii = $NULL; For ($a = 33; $a -le 126; $a++) { $ascii += , [char][byte]$a }
123127

@@ -146,6 +150,12 @@ foreach ($User in $UsersList) {
146150
# split variables
147151
$FullName = "$LastName $FirstName"
148152

153+
Write-Log -LogFile $LogFile -Message "UserID $UserID" -Level DEBUG
154+
Write-Log -LogFile $LogFile -Message "FullName $FullName" -Level DEBUG
155+
Write-Log -LogFile $LogFile -Message "Description $Description" -Level DEBUG
156+
Write-Log -LogFile $LogFile -Message "IsAdmin $IsAdmin" -Level DEBUG
157+
Write-Log -LogFile $LogFile -Message "IsRemoteUser $IsRemoteUser" -Level DEBUG
158+
149159
#Check if the user account already exists in AD
150160
# If (Get-LocalUser -F { Name -eq $UserID } -ErrorAction Continue) {
151161
# #If user does exist, output a warning message
@@ -156,9 +166,12 @@ foreach ($User in $UsersList) {
156166
# Else {
157167
# #If a user does not exist then create a new user account
158168

169+
# generating new password
159170
Write-Log -LogFile $LogFile -Message "Generating new password" -Level DEBUG
160171
$GetRandomPassword = Get-TempPassword -length $PasswordLength -sourcedata $ascii
161172
Write-Log -LogFile $LogFile -Message "New password '$GetRandomPassword' was generated" -Level DEBUG
173+
$GetRandomPassword += $PasswordPart
174+
Write-Log -LogFile $LogFile -Message "Updated password '$GetRandomPassword'" -Level DEBUG
162175

163176
# converting to secure string
164177
Write-Log -LogFile $LogFile -Message "converting password to secure string" -Level DEBUG
@@ -168,8 +181,8 @@ foreach ($User in $UsersList) {
168181
# creating new account
169182
Write-Log -LogFile $LogFile -Message "Creating new account." -Level DEBUG
170183
Try {
171-
New-LocalUser -Name "$UserID" -FullName "$FullName" -Description "$Description" -Password $NewPassword -ErrorAction Stop
172184
Write-Log -LogFile $LogFile -Message "New-LocalUser Name '$UserID', FullName '$FullName', Description '$Description', Password '$NewPassword'" -Level DEBUG
185+
New-LocalUser -Name "$UserID" -FullName "$FullName" -Description "$Description" -Password $NewPassword -ErrorAction Stop
173186
}
174187
Catch {
175188
Write-Log -LogFile $LogFile -Message "Creating of new account was failed." -Level DEBUG
@@ -181,8 +194,8 @@ foreach ($User in $UsersList) {
181194

182195
# assigning Users group
183196
Try {
184-
Add-LocalGroupMember -Group "Users" -Member "$UserID" -ErrorAction Stop
185197
Write-Log -LogFile $LogFile -Message "Add-LocalGroupMember Group 'Users', Member '$UserID'" -Level DEBUG
198+
Add-LocalGroupMember -Group "Users" -Member "$UserID" -ErrorAction Stop
186199
}
187200
Catch {
188201
Write-Warning $_.Exception.Message
@@ -195,8 +208,8 @@ foreach ($User in $UsersList) {
195208
If ($IsAdmin -like $True) {
196209
Write-Log -LogFile $LogFile -Message "IsAdmin: True" -Level DEBUG
197210
try {
198-
Add-LocalGroupMember -Group "Administrators" -Member "$UserID" -ErrorAction Stop
199211
Write-Log -LogFile $LogFile -Message "Add-LocalGroupMember Group 'Administrators', Member '$UserID'" -Level DEBUG
212+
Add-LocalGroupMember -Group "Administrators" -Member "$UserID" -ErrorAction Stop
200213
}
201214
catch {
202215
Write-Warning $_.Exception.Message
@@ -215,8 +228,8 @@ foreach ($User in $UsersList) {
215228
Write-Log -LogFile $LogFile -Message "IsRemoteUser: True" -Level DEBUG
216229
# assigning Remote Desktop Users group
217230
try {
218-
Add-LocalGroupMember -Group "Remote Desktop Users" -Member "$UserID" -ErrorAction Stop
219231
Write-Log -LogFile $LogFile -Message "Add-LocalGroupMember Group 'Remote Desktop Users', Member '$UserID'" -Level DEBUG
232+
Add-LocalGroupMember -Group "Remote Desktop Users" -Member "$UserID" -ErrorAction Stop
220233
}
221234
catch {
222235
Write-Warning $_.Exception.Message

Create-NewUsersFromList/UsersList.csv

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
1-
UserID,Lastname,Firstname,Description,IsAdmin,IsRemoteUser
2-
A1234,Novak,Adolf,Novak a synove,True,True
3-
B2345,Novak,Bohuslav,Novak a synove,True,True
4-
C3456,Novak,Cyril,Novak a synove,True,True
5-
D4567,Novak,Denis,Novak a synove,True,True
1+
UserID;Lastname;Firstname;Description;IsAdmin;IsRemoteUser
2+
A1234;Novak;Adam;Novak a synove;True;True
3+
B2345;Novak;Bohuslav;Novak a synove;True;True
4+
C3456;Novak;Cyril;Novak a synove;True;True
5+
D4567;Novak;Denis;Novak a synove;True;True
6+
E5678;Novak;Emil;Novak a synove;True;True
7+
F6789;Novak;Frantisek;Novak a synove;True;True
8+
G7890;Novak;Gabriel;Novak a synove;True;True

0 commit comments

Comments
 (0)