Ok so since we've migrated from on premise Exchange 2010 to Office365 our old way of creating new users had to be re-worked. Now we're forced to manually input the values for proxyaddresses or else they are unable to have a mailbox license assigned to them.
So I just completed a nice script that among other things, does exactly that. It's been sanitized but here's it is in all it's glory.
#Create-NewADUserO365.ps1
#3/3/15 Benjamin Hart, Unified Brands, Inc
#Created with Powershell ISE
#This powershell script will create a domain user object using a format of lastname, firstname, a SAM of first initial + last name
#It will also populate displayname, a default password, office and both proxyaddresses, the primary as used in your org and the
#Dover required O365 one. It will also verify the primary proxy address is not already used.
#With set-aduser you can alter almost any attribute of the user.
$theOU = read-host "Enter the OU name"
$Surname = read-Host "Enter the surname"
$GivenName = read-host "Enter first name"
$DisplayName = "$Surname, $GivenName"
$Password = "December1"
$name = $GivenName.substring(0,1)+$Surname
$proxyaddress = read-host "Enter the email address in full"
Import-Module activedirectory
import-module servermanager
#Edit the SearchBase to match your organization
$myOU = Get-AdOrganizationalUnit -Filter "Name -eq '$theOU'" -Searchbase 'OU=People,DC=domain,DC=org'
while (Get-ADuser -filter * -Properties ProxyAddresses|?{$_.proxyaddresses -contains $proxyaddress})
{
$proxyaddress = read-host "$proxyaddress is already in use, please try another one"
}
Write-Host "$proxyaddress is not used yet."
#Edit the below to match your domain(s)
$DomainProxyAddress = "$("smtp:")$($givenname.substring(0,1))$surname-$("domain")-$("net")@domain.mail.onmicrosoft.com"
$Description = read-host "Enter persons description"
$jobtitle = read-host "Enter the Job Title"
#Edit the below to match your locations
$office = read-host "Enter the user's location, Michigan, Mississippi, Georgia, Oklahoma or Remote"
#Edit your locations if you choose to use this part
Switch ($Office) {
"Michigan" {
$Street = "001 Any Street."
$City = "Weidman"
$State = "Michigan"
$Zip = "48898"
$scriptpath = "\\domain\netlogon\milogin1.bat"
}
"Mississippi" {
$Street = "789 Any Street."
$City = "Jackson"
$State = "Mississippi"
$Zip = "39272"
$scriptpath = "\\domain\netlogon\adlogin.bat"
}
"Oklahoma" {
$Street = "456 Any Street"
$City = "Pryor"
$State = "Oklahoma"
$Zip = "74361"
$scriptpath = "\\domain\netlogon\oklogin.bat"
}
"Georgia" {
$Street = "123 Any Street"
$City = "Conyers"
$State = "Georgia"
$Zip = "30013"
}
}
$department = read-host "Enter the users Department"
New-ADUser -path $myOU -samaccountname $name -name $displayname -DisplayName $DisplayName -Surname $Surname -givenname $givenname -AccountPassword (ConvertTo-SecureString $Password -AsPlainText -force) -enabled:$false
set-aduser $name -emailaddress $proxyaddress -Description $Description -Title $jobtitle -Office $office -StreetAddress $Street -city $city -state $state -PostalCode $zip -UserPrincipalName $proxyaddress -ScriptPath $scriptpath -Department $department -Company "My Companyc" -Country "US"
set-aduser $name -add @{proxyaddresses = "$("SMTP:")$proxyaddress"}
set-aduser $name -add @{ProxyAddresses = "$doverproxyaddress"}
get-aduser $name
No comments:
Post a Comment