Import-Module ActiveDirectory
$error.clear()
$MaximumErrorCount = 10000
Import-Csv "C:\Scripts\accounts\activestaff.csv" | ForEach-Object {
switch ($_.Location)
{
Amgs {
$OU = "OU=Staff,OU=As,dc=homelab,dc=com"
$Description = "Staff - AS"
}
Bldwn {
$OU = "OU=Staff,OU=Bn,dc=homelab,dc=com"
$Description = "Staff - BN"
}
"CAM PPR" {
$OU = "OU=Staff,OU=Cg,dc=homelab,dc=com"
$Description = "Staff - CA"
}
CMBPRT {
$OU = "OU=Staff,OU=Cmbrdgprt,dc=homelab,dc=com"
$Description = "Staff - Ct"
}
"SCH DMN" {
$OU = "OU=Staff,OU=Cc,dc=homelab,dc=com"
$Description = "Staff - Ce"
}
CS {
$OU = "OU=Staff,OU=CR,dc=homelab,dc=com"
$Description = "Staff - CR"
}
"FLT/MN" {
$OU = "OU=Staff,OU=FMA,dc=homelab,dc=com"
$Description = "Staff - FM"
}
"J & P" {
$OU = "OU=Staff,OU=Gs,dc=homelab,dc=com"
$Description = "Staff - Gs"
}
Hggrt {
$OU = "OU=Staff,OU=Hy,dc=homelab,dc=com"
$Description = "Staff - HY"
}
Kng {
$OU = "OU=Staff,OU=Kg,dc=homelab,dc=com"
$Description = "Staff - KG"
}
"Kng pn" {
$OU = "OU=Staff,OU=Kn,dc=homelab,dc=com"
$Description = "Staff - KN"
}
"KNN/LNG" {
$OU = "OU=Staff,OU=KL,dc=homelab,dc=com"
$Description = "Staff - KLO"
}
MRS {
$OU = "OU=Staff,OU=Me,dc=homelab,dc=com"
$Description = "Staff - ME"
}
Pbdy {
$OU = "OU=Staff,OU=Py,dc=homelab,dc=com"
$Description = "Staff - PY"
}
"PTNM V"{
$OU = "OU=Staff,OU=Pm,dc=homelab,dc=com"
$Description = "Staff - Pm"
}
"RNDG V" {
$OU = "OU=Staff,OU=Re,dc=homelab,dc=com"
$Description = "Staff - Re"
}
Tbn {
$OU = "OU=Staff,OU=Tn,dc=homelab,dc=com"
$Description = "Staff - TN"
}
'VSSL LN' {
$OU = "OU=Staff,OU=Vl,dc=homelab,dc=com"
$Description = "Staff - Vl"
}
"SLMN" {
$OU = "OU=Staff,dc=homelab,dc=com"
$Description = "Staff - "
}
default
{
$OU = "OU=Staff,dc=homelab,dc=com"
$Description = "Staff - "
}
}
if (dsquery user -samid $_.Login)
{
$LogonName = $_.Login2
}
else
{
$LogonName = $_.Login
}
$ADUser = [ordered]@{ }
$ADUser['Name'] = $_.FirstName + " " + $_.LastName
$ADUser['SamAccountName'] = $LogonName
$ADUser['GivenName'] = $_.FirstName
$ADUser['Surname'] = $_.LastName
$ADUser['Description'] = $Description
$ADUser['DisplayName'] = $_.FirstName + " " + $_.LastName
$ADUser['UserPrincipalName'] = $LogonName + "@homelab.com"
$ADUser['AccountPassword'] = ConvertTo-SecureString -AsPlainText 'P@ssw0rd' -Force
$ADUser['Title'] = $_."Job Title"
$ADUser['EmailAddress'] = $LogonName + "@homelab.com"
$ADUser['Office'] = $_.EID
$ADUser['Path'] = $OU
$ADUser['Enabled'] = $True
$ADUser['HomeDirectory'] = "\\dc-pc\share\$LogonName"
$ADUser['HomeDrive'] = 'H:'
New-ADUser @ADUser
Add-ADGroupMember "googleapps" –Members $LogonName
Add-ADGroupMember "yard-staff" –Members $LogonName
New-Item -type directory -path "\\dc-pc\share\$LogonName"
$Acl = Get-Acl "\\dc-pc\share\$LogonName"
$Ar = New-Object system.security.accesscontrol.filesystemaccessrule ("$LogonName", "Modify", "ContainerInherit, ObjectInherit", "None", "Allow")
$Acl.SetAccessRule($Ar)
Set-Acl "\\dc-pc\share\$LogonName" $Acl
}
ASKER
{
$LogonName = $_.Login2
}
else
{
$LogonName = $_.Login
}
ASKER
$log = "C:\log\userCreate.log"
function WriteLog($message)
{
$d = Get-Date
$out = $d + " -- " + $message
Add-Content -Path $log -Value $out
}
try
{
$ADUser = [ordered]@{ }
$ADUser['Name'] = $_.FirstName + " " + $_.LastName
$ADUser['SamAccountName'] = $LogonName
$ADUser['GivenName'] = $_.FirstName
$ADUser['Surname'] = $_.LastName
$ADUser['Description'] = $Description
$ADUser['DisplayName'] = $_.FirstName + " " + $_.LastName
$ADUser['UserPrincipalName'] = $LogonName + "@homelab.com"
$ADUser['AccountPassword'] = ConvertTo-SecureString -AsPlainText 'P@ssw0rd' -Force
$ADUser['Title'] = $_."Job Title"
$ADUser['EmailAddress'] = $LogonName + "@homelab.com"
$ADUser['Office'] = $_.EID
$ADUser['Path'] = $OU
$ADUser['Enabled'] = $True
$ADUser['HomeDirectory'] = "\\dc-pc\share\$LogonName"
$ADUser['HomeDrive'] = 'H:'
New-ADUser ADUser
WriteLog("Successfully created user $LogonName.")
}
catch
{
WriteLog("Failed creating user $LogonName.")
$error++
}
ASKER
ASKER
Active Directory (AD) is a Microsoft brand for identity-related capabilities. In the on-premises world, Windows Server AD provides a set of identity capabilities and services, and is hugely popular (88% of Fortune 1000 and 95% of enterprises use AD). This topic includes all things Active Directory including DNS, Group Policy, DFS, troubleshooting, ADFS, and all other topics under the Microsoft AD and identity umbrella.
TRUSTED BY
Open in new window
for?