# encoding: ascii
# api: powershell
# title:
# description: TEST ME
# version: 0.1
# type: module
# license: CC0
# x-poshcode-id: 4056
# x-archived: 2013-03-31T12:02:50
#
#
# Add the Active Directory bits and not complain if they're already there
Import-Module ActiveDirectory -ErrorAction SilentlyContinue
# set default password
# change pass@word1 to whatever you want the account passwords to be
$defpassword = (ConvertTo-SecureString "pass@word1" -AsPlainText -force)
# Get domain DNS suffix
$dnsroot = '@' + (Get-ADDomain).dnsroot
# Import the file with the users. You can change the filename to reflect your file
$users = Import-Csv .\users.csv
foreach ($user in $users) {
if ($user.manager -eq "") # In case it's a service account or a boss
{
try {
New-ADUser -SamAccountName $user.SamAccountName -Name ($user.FirstName + " " + $user.LastName) `
-DisplayName ($user.FirstName + " " + $user.LastName) -GivenName $user.FirstName -Surname $user.LastName `
-EmailAddress ($user.SamAccountName + $dnsroot) -UserPrincipalName ($user.SamAccountName + $dnsroot) `
-Title $user.title -Enabled $true -ChangePasswordAtLogon $false -PasswordNeverExpires $true `
-AccountPassword $defpassword -PassThru `
}
catch [System.Object]
{
Write-Output "Could not create user $($user.SamAccountName), $_"
}
}
else
{
try {
New-ADUser -SamAccountName $user.SamAccountName -Name ($user.FirstName + " " + $user.LastName) `
-DisplayName ($user.FirstName + " " + $user.LastName) -GivenName $user.FirstName -Surname $user.LastName `
-EmailAddress ($user.SamAccountName + $dnsroot) -UserPrincipalName ($user.SamAccountName + $dnsroot) `
-Title $user.title -manager $user.manager `
-Enabled $true -ChangePasswordAtLogon $false -PasswordNeverExpires $true `
-AccountPassword $defpassword -PassThru `
}
catch [System.Object]
{
Write-Output "Could not create user $($user.SamAccountName), $_"
}
}
# Put picture part here.
$filename = "$($user.SamAccountName).jpg"
Write-Output $filename
if (test-path -path $filename)
{
Write-Output "Found picture for $($user.SamAccountName)"
$photo = [byte[]](Get-Content $filename -Encoding byte)
Set-ADUser $($user.SamAccountName) -Replace @{thumbnailPhoto=$photo}
}
}