Advertisement
Guest User

Untitled

a guest
Dec 14th, 2016
221
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <#
  2.     ########################################
  3.     Idea            
  4.     ########################################
  5.  
  6.     User Creation Script
  7.     Hoping for an almost 1 click solution
  8.  
  9.     ########################################
  10.     To Do            
  11.     ########################################
  12.  
  13.     1. Assign Microsoft Licenses based on $UserOU (New Script)
  14.    
  15.     ########################################
  16.     Table of Contents            
  17.     ########################################
  18.  
  19.     1. Importing Module
  20.     2. Getting Variables
  21.     3. OU Selection
  22.     4. Domain Selection
  23.     5. User Creation
  24.     6. Add Groups
  25. #>
  26.  
  27. <#######################################
  28.     1. Importing Module            
  29. ########################################>
  30.  
  31. Clear-Host
  32.  
  33. Import-Module ActiveDirectory
  34.  
  35. <#######################################
  36.     2. Getting Variables            
  37. ########################################>
  38.  
  39. Write-host '  +================================================================================================+
  40.  |   _   _                 _____                _   _               _____           _       _     |
  41.  |  | | | |               /  __ \              | | (_)             /  ___|         (_)     | |    |
  42.  |  | | | |___  ___ _ __  | /  \/_ __ ___  __ _| |_ _  ___  _ __   \ `--.  ___ _ __ _ _ __ | |_   |
  43.  |  | | | / __|/ _ \ `__| | |   | `__/ _ \/ _` | __| |/ _ \| `_ \   `--. \/ __| `__| | `_ \| __|  |
  44.  |  | |_| \__ \  __/ |    | \__/| |  | __/ (_| | |_| | (_) | | | | /\__/ / (__| |  | | |_) | |_   |
  45.  |   \___/|___/\___|_|    \____/|_|  \___|\__,_|\__|_|\___/|_| |_| \____/ \___|_|  |_| .__/ \__|  |
  46.  |                                                                                   | |          |
  47.  |                                                                                   |_|          |
  48.  +================================================================================================+'-foregroundColor Green
  49.  
  50. Write-Host
  51.  
  52. # Users First name
  53. $GivenName = read-host 'Enter First name'
  54.  
  55. # Users Last Name
  56. $Surname = read-host 'Enter Last name'
  57.  
  58. # Users Username
  59. $UserName = read-host 'Enter Username'
  60.  
  61. # Users Password
  62. $Password = read-host 'Enter Password'
  63.  
  64. # Prompt for $Area for Section 6
  65. Write-host 'Enter Users Area'
  66. $Area = Read-Host 'Admin - Primary - Secondary - Childcare - SeniorStudent - PrimaryStudent - Default'
  67.  
  68. # Users Description for Active Directory
  69. $Description = read-host 'Enter Users Description for Active Directory'
  70.  
  71. # Users Job Title (Under AD > Organization)
  72. $Jobtitle = read-host 'Enter Users Job Title'
  73.  
  74. # HomeDrive Mount Letter
  75. $HomeDrive = 'H:'
  76.  
  77. # Add anymore New-ADUser Properties that will be custom
  78.  
  79. #Clears Window
  80. Clear-Host
  81.  
  82. <#######################################
  83.     3. OU Selection
  84. ########################################>
  85.  
  86. # I've put in multiple Write-Hosts so they drop down a line. It makes it a bit neater
  87. Write-Host
  88. '|================ Please enter which OU the user will be created in Exactly ================|'
  89. Write-Host
  90. 'For Staff'
  91. 'Administration - Canteen - Childcare - NonTeaching - RBCChurch - Teachers - Library'
  92. Write-Host
  93. 'For Students'
  94. 'Year 1 - Year 2 - Year 3 - Year 4 - Year 5 - Year 6'
  95. 'Year 7 - Year 8 - Year 9 - Year 10 - Year 11 - Year 12'
  96. $UserOUSel = Read-Host 'OU'
  97.  
  98. # Here Static Variables are applied via which group you enter Above
  99.  
  100. Do
  101. {
  102.   # Staff Variables depending on $UserOUSel
  103.   if ($UserOUSel -eq 'Administration')
  104.   {
  105.     $UserOU = 'OU=Administration,OU=staff,OU=User,DC=maranatha,DC=wa,DC=edu,DC=au'
  106.     $Company = 'college'
  107.     $Depmartment = 'staff'
  108.     $HomeDirectory = "\\mccshares1\staff$\" + $UserName
  109.     $LogonScript = 'Admin.cmd'
  110.     $Finish = 'True'
  111.   }
  112.    
  113.   Elseif ($UserOUSel -eq 'Canteen')
  114.   {
  115.     $UserOU = 'OU=Canteen,OU=staff,OU=User,DC=maranatha,DC=wa,DC=edu,DC=au'
  116.     $Company = 'college'
  117.     $Depmartment = 'staff'
  118.     $HomeDirectory = "\\mccshares1\staff$\" + $UserName
  119.     $Finish = 'True'
  120.   }
  121.    
  122.   Elseif ($UserOUSel -eq 'Childcare')
  123.   {
  124.     $UserOU = 'OU=Childcare,OU=staff,OU=User,DC=maranatha,DC=wa,DC=edu,DC=au'
  125.     $Company = 'college'
  126.     $Depmartment = 'staff'
  127.     $HomeDirectory = "\\mccshares1\staff$\" + $UserName
  128.     $LogonScript = 'DAYCARE.cmd'
  129.     $Finish = 'True'
  130.   }
  131.    
  132.   Elseif ($UserOUSel -eq 'Library')
  133.   {
  134.     $UserOU = 'OU=Library,OU=staff,OU=User,DC=maranatha,DC=wa,DC=edu,DC=au'
  135.     $Company = 'college'
  136.     $Depmartment = 'staff'
  137.     $HomeDirectory = "\\mccshares1\staff$\" + $UserName
  138.     $LogonScript = 'LIBRARYSTAFF.cmd'
  139.     $Finish = 'True'
  140.   }
  141.    
  142.   Elseif ($UserOUSel -eq 'NonTeaching')
  143.   {
  144.     $UserOU = 'OU=NonTeaching,OU=staff,OU=User,DC=maranatha,DC=wa,DC=edu,DC=au'
  145.     $Company = 'college'
  146.     $Depmartment = 'staff'
  147.     $HomeDirectory = "\\mccshares1\staff$\" + $UserName
  148.     $LogonScript = 'TEACHER.cmd'
  149.     $Finish = 'True'
  150.   }
  151.    
  152.   Elseif ($UserOUSel -eq 'RBCChurch')
  153.   {
  154.     $UserOU = 'OU=RBCChurch,OU=staff,OU=User,DC=maranatha,DC=wa,DC=edu,DC=au'
  155.     $Company = 'church'
  156.     $Depmartment = 'staff'
  157.     $HomeDirectory = "\\mccshares1\staff$\" + $UserName
  158.     $LogonScript = 'church.cmd'
  159.     $Finish = 'True'
  160.   }
  161.    
  162.   Elseif ($UserOUSel -eq 'Teachers')
  163.   {
  164.     $UserOU = 'OU=Teachers,OU=staff,OU=User,DC=maranatha,DC=wa,DC=edu,DC=au'
  165.     $Company = 'college'
  166.     $Depmartment = 'staff'
  167.     $HomeDirectory = "\\mccshares1\staff$\" + $UserName
  168.     $LogonScript = 'TEACHER.cmd'
  169.     $Finish = 'True'
  170.   }
  171.    
  172.   # Primary Student Variables depending on $UserOUSel
  173.   Elseif ($UserOUSel -eq 'Year 1')
  174.   {
  175.     $UserOU = 'OU=Year 1,OU=Primary,OU=students,OU=User,DC=maranatha,DC=wa,DC=edu,DC=au'
  176.     $Company = 'students'
  177.     $Depmartment = 'Primary'
  178.     $HomeDirectory = '\\mccshares1\students\' + $UserName
  179.     $LogonScript = 'primarystudents-year2.cmd'
  180.     $Finish = 'True'
  181.   }
  182.    
  183.   Elseif ($UserOUSel -eq 'Year 2')
  184.   {
  185.     $UserOU = 'OU=Year 2,OU=Primary,OU=students,OU=User,DC=maranatha,DC=wa,DC=edu,DC=au'
  186.     $Company = 'students'
  187.     $Depmartment = 'Primary'
  188.     $HomeDirectory = '\\mccshares1\students\' + $UserName
  189.     $LogonScript = 'primarystudents-year2.cmd'
  190.     $Finish = 'True'
  191.   }
  192.    
  193.   Elseif ($UserOUSel -eq 'Year 3')
  194.   {
  195.     $UserOU = 'OU=Year 3,OU=Primary,OU=students,OU=User,DC=maranatha,DC=wa,DC=edu,DC=au'
  196.     $Company = 'students'
  197.     $Depmartment = 'Primary'
  198.     $HomeDirectory = '\\mccshares1\students\' + $UserName
  199.     $LogonScript = 'primarystudents.cmd'
  200.     $Finish = 'True'
  201.   }
  202.    
  203.   Elseif ($UserOUSel -eq 'Year 4')
  204.   {
  205.     $UserOU = 'OU=Year 4,OU=Primary,OU=students,OU=User,DC=maranatha,DC=wa,DC=edu,DC=au'
  206.     $Company = 'students'
  207.     $Depmartment = 'Primary'
  208.     $HomeDirectory = '\\mccshares1\students\' + $UserName
  209.     $LogonScript = 'primarystudents.cmd'
  210.     $Finish = 'True'
  211.   }
  212.    
  213.   Elseif ($UserOUSel -eq 'Year 5')
  214.   {
  215.     $UserOU = 'OU=Year 5,OU=Primary,OU=students,OU=User,DC=maranatha,DC=wa,DC=edu,DC=au'
  216.     $Company = 'students'
  217.     $Depmartment = 'Primary'
  218.     $HomeDirectory = '\\mccshares1\students\' + $UserName
  219.     $LogonScript = 'primarystudents.cmd'
  220.     $Finish = 'True'
  221.   }
  222.    
  223.   Elseif ($UserOUSel -eq 'Year 6')
  224.   {
  225.     $UserOU = 'OU=Year 1,OU=Primary,OU=students,OU=User,DC=maranatha,DC=wa,DC=edu,DC=au'
  226.     $Company = 'students'
  227.     $Depmartment = 'Primary'
  228.     $HomeDirectory = '\\mccshares1\students\' + $UserName
  229.     $LogonScript = 'primarystudents.cmd'
  230.     $Finish = 'True'
  231.   }
  232.    
  233.   # Secondary Student Variables depending on $UserOUSel
  234.   Elseif ($UserOUSel -eq 'Year 7')
  235.   {
  236.     $UserOU = 'OU=Year 07,OU=Secondary,OU=students,OU=User,DC=maranatha,DC=wa,DC=edu,DC=au'
  237.     $Company = 'students'
  238.     $Depmartment = 'secondary'
  239.     $HomeDirectory = '\\mccshares1\students\' + $UserName
  240.     $LogonScript = 'students.cmd'
  241.     $Finish = 'True'
  242.   }
  243.    
  244.   Elseif ($UserOUSel -eq 'Year 8')
  245.   {
  246.     $UserOU = 'OU=Year 08,OU=Secondary,OU=students,OU=User,DC=maranatha,DC=wa,DC=edu,DC=au'
  247.     $Company = 'students'
  248.     $Depmartment = 'secondary'
  249.     $HomeDirectory = '\\mccshares1\students\' + $UserName
  250.     $LogonScript = 'students.cmd'
  251.     $Finish = 'True'
  252.   }
  253.    
  254.   Elseif ($UserOUSel -eq 'Year 9')
  255.   {
  256.     $UserOU = 'OU=Year 09,OU=Secondary,OU=students,OU=User,DC=maranatha,DC=wa,DC=edu,DC=au'
  257.     $Company = 'students'
  258.     $Depmartment = 'secondary'
  259.     $HomeDirectory = '\\mccshares1\students\' + $UserName
  260.     $LogonScript = 'students.cmd'
  261.     $Finish = 'True'
  262.   }
  263.    
  264.   Elseif ($UserOUSel -eq 'Year 10')
  265.   {
  266.     $UserOU = 'OU=Year 10,OU=Secondary,OU=students,OU=User,DC=maranatha,DC=wa,DC=edu,DC=au'
  267.     $Company = 'students'
  268.     $Depmartment = 'secondary'
  269.     $HomeDirectory = '\\mccshares1\students\' + $UserName
  270.     $LogonScript = 'students.cmd'
  271.     $Finish = 'True'
  272.   }
  273.    
  274.   Elseif ($UserOUSel -eq 'Year 11')
  275.   {
  276.     $UserOU = 'OU=Year 11,OU=Secondary,OU=students,OU=User,DC=maranatha,DC=wa,DC=edu,DC=au'
  277.     $Company = 'students'
  278.     $Depmartment = 'secondary'
  279.     $HomeDirectory = '\\mccshares1\students\' + $UserName
  280.     $LogonScript = 'students.cmd'
  281.     $Finish = 'True'
  282.   }
  283.    
  284.   Elseif ($UserOUSel -eq 'Year 12')
  285.   {
  286.     $UserOU = 'OU=Year 12,OU=Secondary,OU=students,OU=User,DC=maranatha,DC=wa,DC=edu,DC=au'
  287.     $Company = 'students'
  288.     $Depmartment = 'secondary'
  289.     $HomeDirectory = '\\mccshares1\students\' + $UserName
  290.     $LogonScript = 'students.cmd'
  291.     $Finish = 'True'
  292.   }
  293. }
  294. Until ($Finish -eq 'True')
  295.  
  296. <#######################################
  297.     4. Domain Selection
  298. ########################################>
  299.  
  300. Write-Host
  301. Write-Host '|================ Please Enter Domain Name ================|'
  302. Write-Host 'scbc.wa.edu.au , maranatha.wa.edu.au , rockingham.org.au , southcoastbc.onmicrosoft.com'
  303. $Domain = Read-Host 'Domain'
  304.  
  305. <#######################################
  306.     5.  User Creation          
  307. ########################################>
  308.  
  309. # Clears Window
  310. Clear-Host
  311.  
  312. Write-Host Creating User...
  313.  
  314. # Creates New User with Variables set above
  315. Try
  316. {
  317.   New-ADUser -Name ($GivenName + ' ' + $Surname) -SAMAccountName $UserName -GivenName $GivenName -Surname $Surname -Path $UserOU -ErrorAction Stop -title $Jobtitle -Company $Company -Description $Description -DisplayName ($GivenName + ' ' + $Surname) -HomeDirectory $HomeDirectory -HomeDrive $HomeDrive -ScriptPath $LogonScript -UserPrincipalName $UserName -AccountPassword (Convertto-SecureString $Password -AsPlainText -Force) -Enabled $true
  318. }
  319. Catch
  320. {
  321.   Throw 'Failed to Create New User'
  322. }
  323.  
  324. #Email Variable
  325. $Email = $UserName + '@' + $Domain
  326.  
  327. # SMTP Proxy Address for Office 365
  328. Set-ADUser -identity $UserName -Add @{ Proxyaddresses = 'SMTP:' + $Email }
  329.  
  330. Write-host User Created with Username: $UserName
  331. Write-host User Created with Password: $Password
  332. Write-host User Created with Email Address: $Email
  333. Write-host User Created in OU: $UserOUSel
  334.  
  335. <#######################################
  336.     6.  Add Groups          
  337. ########################################>
  338.  
  339. # Load Group Variables Table
  340. # |===========| FSG Permission List |===========|
  341. $ROChildcare = Get-ADGroup 'CN=FSG_RO_Childcare,OU=Groups,OU=User,DC=maranatha,DC=wa,DC=edu,DC=au'
  342. # $RWChildcare = Get-ADGroup 'CN=FSG_RW_Childcare,OU=Groups,OU=User,DC=maranatha,DC=wa,DC=edu,DC=au'
  343. # $FPChilcare = Get-ADGroup 'CN=FSG_FP_Childcare,OU=Groups,OU=User,DC=maranatha,DC=wa,DC=edu,DC=au'
  344. $ROAdmin = Get-ADGroup 'CN=FSG_RO_Administration,OU=Groups,OU=User,DC=maranatha,DC=wa,DC=edu,DC=au'
  345. $RWAdmin = Get-ADGroup 'CN=FSG_RW_Administration,OU=Groups,OU=User,DC=maranatha,DC=wa,DC=edu,DC=au'
  346. # $FPAdmin = Get-ADGroup 'CN=FSG_FP_Administration,OU=Groups,OU=User,DC=maranatha,DC=wa,DC=edu,DC=au'
  347. $ROSecondary = Get-ADGroup 'CN=FSG_RO_Secondary,OU=Groups,OU=User,DC=maranatha,DC=wa,DC=edu,DC=au'
  348. $RWSecondary = Get-ADGroup 'CN=FSG_RW_Secondary,OU=Groups,OU=User,DC=maranatha,DC=wa,DC=edu,DC=au'
  349. # $FPSecondary = Get-ADGroup 'CN=FSG_FP_Secondary,OU=Groups,OU=User,DC=maranatha,DC=wa,DC=edu,DC=au'
  350. $ROPrimary = Get-ADGroup 'CN=FSG_RO_Primary,OU=Groups,OU=User,DC=maranatha,DC=wa,DC=edu,DC=au'
  351. $RWPrimary = Get-ADGroup 'CN=FSG_RW_Primary,OU=Groups,OU=User,DC=maranatha,DC=wa,DC=edu,DC=au'
  352. # $FPPrimary = Get-ADGroup 'CN=FSG_FP_Primary,OU=Groups,OU=User,DC=maranatha,DC=wa,DC=edu,DC=au'
  353.  
  354. # Groups
  355. $Staff = Get-ADGroup 'CN=staff,OU=staff,OU=User,DC=maranatha,DC=wa,DC=edu,DC=au'
  356. $Admin = Get-ADGroup 'CN=Admin,OU=staff,OU=User,DC=maranatha,DC=wa,DC=edu,DC=au'
  357. $PrimStudent = Get-ADGroup 'CN=Primary Students,OU=students,OU=User,DC=maranatha,DC=wa,DC=edu,DC=au'
  358. $SecStudent = Get-ADGroup 'CN=Secondary Students,OU=students,OU=User,DC=maranatha,DC=wa,DC=edu,DC=au'
  359.  
  360. # Applies Groups to User
  361. Switch ($Area)
  362. {
  363.  Admin {
  364.    Add-ADGroupMember $RWAdmin $Username
  365.    Add-ADGroupMember $RWSecondary $Username
  366.    Add-ADGroupMember $RWPrimary $Username
  367.    Add-ADGroupMember $Admin $Username
  368.    Add-ADGroupMember $Staff $Username
  369.  }
  370.  Primary{
  371.    Add-ADGroupMember $ROAdmin $Username
  372.    Add-ADGroupMember $ROSecondary $Username
  373.    Add-ADGroupMember $RWPrimary $Username
  374.    Add-ADGroupMember $Staff $Username
  375.  }
  376.  Secondary{
  377.    Add-ADGroupMember $ROAdmin $UserName
  378.    Add-ADGroupMember $RWSecondary $UserName
  379.    Add-ADGroupMember $ROPrimary $UserName
  380.    Add-ADGroupMember $Staff $Username
  381.  }
  382.  Childcare{
  383.    Add-ADGroupMember $ROChildcare $UserName
  384.  }
  385.  SeniorStudent{
  386.    Add-ADGroupMember $SecStudent $UserName
  387.  }
  388.  PrimaryStudent{
  389.    Add-AddGroupMember $PrimStudent $UserName
  390.  }
  391.  Default{
  392.    Add-ADGroupMember $ROAdmin $UserName
  393.    Add-ADGroupMember $ROSecondary $UserName
  394.    Add-ADGroupMember $ROPrimary $Username
  395.  }
  396. }
  397.  
  398. # Fin
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement