41 lines
1.6 KiB
PowerShell
41 lines
1.6 KiB
PowerShell
<#
|
|
.Example
|
|
$csv = Read-Host -Prompt "Please provide full path to Groups csv file"
|
|
.\Create-User.ps1 -CSVfile $csv -Password zaq12WSXcde3 -Verbose
|
|
|
|
#>
|
|
|
|
[CmdletBinding()]
|
|
param(
|
|
[Parameter(Mandatory=$True)][string] $CSVfile,
|
|
[Parameter(Mandatory=$True)][string] $Password
|
|
)
|
|
$DNSRoot = (Get-ADDomain).DNSRoot
|
|
$DSN = (Get-ADDomain).DistinguishedName
|
|
$users = Import-Csv $CSVfile
|
|
foreach ($user in $users) {
|
|
$name = $user.name
|
|
$samAccountName = $user.samAccountName
|
|
$UserPrincipalName = $samAccountName + '@' + $DNSRoot
|
|
$parentOU = $user.ParentOU + ',' + $DSN
|
|
$groupMembership = $user.GroupMembership
|
|
$enabled = [bool]$user.enabled
|
|
$checkForUser = [bool]( Get-ADUSer -Filter {SamAccountname -eq $samaccountname})
|
|
If ($checkForUser -eq $false) {
|
|
Write-Verbose "Creating new user '$samAccountName' under '$parentOU'"
|
|
New-ADUser -Name $name -Path $ParentOU -SamAccountName $samAccountName -UserPrincipalName $UserPrincipalName -AccountPassword (ConvertTo-SecureString $password -AsPlainText -Force) -ChangePasswordAtLogon $false -Enabled $enabled -EmailAddress $UserPrincipalName
|
|
start-sleep -Seconds 5
|
|
if ($groupMembership -ne "") {
|
|
$groupMembership = ($user.GroupMembership) -split ','
|
|
foreach ($group in $groupMembership){
|
|
Write-Verbose "Adding User '$samAccountName' to Group '$group'"
|
|
Add-ADGroupMember -Identity $group -Members $samAccountName
|
|
}
|
|
}
|
|
$error.Clear()
|
|
}
|
|
Else {
|
|
Write-Verbose "User '$samAccountName' already exists."
|
|
}
|
|
}
|