You are on page 1of 10

Please find the following list of scripts along with the description:

Create New User Account in AD: “CreateAccountNew.ps1”

Add-PSSnapin Quest.Activeroles.ADManagement
$ErrorActionPreference = "SilentlyContinue"
out-file -filepath C:\aduserlog.txt -encoding unicode -inputobject "Action on Account
SamAccount Date-Time"
out-file -filepath C:\aduserlog.txt -encoding unicode -append -inputobject ""

connect-QADService -proxy -service 'qualityassurance.ars.hk.hsbc'


import-csv C:\Vidya\ADAuto\adaccountdata.csv |%{
$parentOU=$_.ParentContainer
$givenName=$_.FirstName
$sn=$_.LastName
$displayName=$givenName + " " +$sn
$UPNPrefix=$_.UPNPrefix
$UPNSuffix="@HSBC"
$cn=$UPNPrefix + " " +$displayName
$samAccount=$_.SamAccountName
$employeeID=$_.EmployeeID
$employeeType=$_.EmployeeType
$userpassword=$_.Password
$parentOU=Get-QADObject $parentOU
$newuser=$parentOU.DirectoryEntry.Create("user","CN=$cn")

$user = $_.SamAccountName

$group1 = $_.group1
$group2 = $_.group2

$newUser.Put("givenName",$givenName)

$newUser.Put("sn",$sn)

$newUser.Put("displayName",$displayName)

$newUser.Put("edsaUPNPrefix",$UPNPrefix)
$newUser.Put("edsaUPNSuffix",$UPNSuffix)
$newUser.Put("samAccountName",$samAccount)
$newUser.Put("employeeType",$employeeType)
$newUser.Put("employeeID",$employeeID)
$newUser.Put("edsaPassword",$userpassword)
$newUser.Put("edsaAccountIsDisabled","false")

$newUser.setInfo()

1
Add-QADgroupmember -member $samAccount -identity $group1
Add-QADgroupmember -member $samAccount -identity $group2

#Set-Variable -Name ErrMsg -Value "OK" -Scope Script;

Trap [Exception] {
Set-Variable -Name ErrMsg -Value "AC" -Scope global
Write-Host "Error occurred, ignoring it"
# Might set a variable so we can check for the error outside of Trap
$global:ErrMsg = ($_.Exception.Message.ToString()).Trim();

$dt = get-date
out-file -filepath C:\aduserlog.txt -encoding unicode -append -inputobject
"$global:ErrMsg $user $dt"

Set-Variable -Name flgval -Value "T" -Scope global

Continue
}

if($global:flgval -ne "T")


{

$dt = get-date
out-file -filepath C:\aduserlog.txt -encoding unicode -append -inputobject "Account
Created $user $dt"
}
$global:flgval = ""
}

disconnect-qadService

$emailFrom = "vidyabhushan@hsbc.co.in" #get an id registered


EX: accountcreated@hsbc.co.in
$emailTo = "naveen.davuluri@hsbc.com,vidyabhushan@hsbc.co.in" #can put a
distribution list here.
$subject = "AD Account Created"
$body = "AD Account is Created for all the staff ids present in the spreadsheet at
Location \\gscinh3fs1.hdpi.in.hsbc\AD_Automation\."
$smtpServer = "130.21.197.94"
$smtp = new-object Net.Mail.SmtpClient($smtpServer)
$smtp.Send($emailFrom, $emailTo, $subject, $body)

2
Script to Create a Group: “Creategrp.ps1”

connect-QADService -proxy -service 'qualityassurance.ars.hk.hsbc'


new-QADGroup -ParentContainer 'OU=Common Groups for All GSCs,OU=GSC IN
HYD II Groups,OU=GSC IN HYD II,OU=GSC
IN,OU=GSC,DC=HBAPTEST,DC=ADROOTTEST,DC=HSBC' -name 'GTEST12'
-samaccountname 'GTEST12' -grouptype 'Distribution' -groupscope 'Universal'
disconnect-qadService

Script to create a group by taking groups names from a csv file: “creategrpfromcsv.ps1”

connect-QADService -proxy -service 'qualityassurance.ars.hk.hsbc'


out-file -filepath C:\creategroups.log -encoding unicode -inputobject "Action on Account
GroupName Date-Time"
out-file -filepath C:\creategroups.log -encoding unicode -append -inputobject ""

import-csv C:\Vidya\ADAuto\creategroups.csv |%{

$Pcontainer = $_.Container
$grpname = $_.group
$grptype = $_.type
$grpscope = $_.scope

new-QADGroup -ParentContainer $Pcontainer -name $grpname -samaccountname


$grpname -grouptype $grptype -groupscope $grpscope

#Set-Variable -Name ErrMsg -Value "OK" -Scope Script;

Trap [Exception] {
Set-Variable -Name ErrMsg -Value "AC" -Scope global
Write-Host "Error occurred, ignoring it"
# Might set a variable so we can check for the error outside of Trap
$global:ErrMsg = ($_.Exception.Message.ToString()).Trim();

$dt = get-date
out-file -filepath C:\creategroups.log -encoding unicode -append -inputobject
"$global:ErrMsg $grpname $dt"

Set-Variable -Name flgval -Value "T" -Scope global

Continue
}

if($global:flgval -ne "T")

3
{

$dt = get-date
out-file -filepath C:\creategroups.log -encoding unicode -append -inputobject "Group
created $grpname $dt"
}
$global:flgval = ""

disconnect-qadService

Script to delete an account: “deleteaccount.ps1”

connect-QADService -proxy -service 'qualityassurance.ars.hk.hsbc'


import-csv 'c:\AD Auto\NewUser.csv' |%{

$samAccount=$_.SamAccountName

$group = $_.group

Remove-QADGroupMember -Identity $group -Member $samAccount

disconnect-qadService

Script to disable a user: “disableuser.ps1”

connect-QADService -proxy -service 'qualityassurance.ars.hk.hsbc'

out-file -filepath C:\test.txt -encoding unicode -inputobject "Action on Account


SamAccount Date-Time"
out-file -filepath C:\test.txt -encoding unicode -append -inputobject ""

import-csv NewUser.csv |%{


$user = $_.SamAccountName

Disable-QADUser -Identity $user

write-host $user is disabled


$File_Title = $user.SamAccountName
$dt = get-date

4
out-file -filepath C:\test.txt -encoding unicode -append -inputobject "Account Disabled
$user $dt"
}

$emailFrom = "vidyabhushan@hsbc.co.in"
$emailTo = "vidyabhushan@hsbc.co.in"
$subject = "your subject"
$body = "test"
$smtpServer = "130.21.197.94"
$smtp = new-object Net.Mail.SmtpClient($smtpServer)
$smtp.Send($emailFrom, $emailTo, $subject, $body)

Send-smtpMail -smtphost "130.21.197.94" -to "vidyabhushan@hsbc.co.in" -from


"vidyabhushan@hsbc.co.in" -subject "Tesing" -body "HIII"

Script to enable a user: “enableuser.ps1”

Add-PSSnapin Quest.Activeroles.ADManagement
connect-QADService -proxy -service 'qualityassurance.ars.hk.hsbc'

out-file -filepath C:\acc_enable.log -encoding unicode -inputobject "Action on Account


SamAccount Date-Time"
out-file -filepath C:\acc_enable.log -encoding unicode -append -inputobject ""

import-csv NewUser.csv |%{


$user = $_.SamAccountName

Enable-QADUser -Identity $user

write-host $user is Enabled


$dt = get-date
out-file -filepath acc_enable.log -encoding unicode -append -inputobject "Account
Enabled $user $dt"

$emailFrom = "vidyabhushan@hsbc.co.in"
$emailTo = "vidyabhushan@hsbc.co.in"
$subject = "Account Enabled"
$body = "Pls do not reply to this email. This is an auto-generated email."
$smtpServer = "130.21.197.94"
$smtp = new-object Net.Mail.SmtpClient($smtpServer)
$smtp.Send($emailFrom, $emailTo, $subject, $body)

5
Send-smtpMail -smtphost "130.21.197.94" -to "vidyabhushan@hsbc.co.in" -from
"vidyabhushan@hsbc.co.in" -subject "Account Enabled" -body "Pls do not reply to this
email. This is an auto-generated email."

Script to generate/reset a user’s password: “generate-resetpasswd.ps1”

$ErrorActionPreference = "SilentlyContinue"
out-file -filepath C:\resetpassword.log -encoding unicode -inputobject "Action on
Account SamAccount Date-Time"
out-file -filepath C:\resetpassword.log -encoding unicode -append -inputobject ""

connect-QADService -proxy -service 'qualityassurance.ars.hk.hsbc'


import-csv Finallistofusertoresetpassword.csv |%{
$user = $_.SamAccountName
$username1 = $_.FirstName
$username2 = $_.LastName
$firstchars = $username1.Length - 4
$firstchars = $username1.remove(4,$firstchars)

$lastchars = $username2.length - 4
$lastchars = $username2.remove(0,$lastchars)

$NewPassword = $firstchars + "@" + $lastchars


$firstchars + "@" + $lastchars
$NewPassword
Set-QADUser $user -UserPassword $NewPassword

#Set-Variable -Name ErrMsg -Value "OK" -Scope Script;

Trap [Exception] {
Set-Variable -Name ErrMsg -Value "AC" -Scope global
Write-Host "Error occurred, ignoring it"
# Might set a variable so we can check for the error outside of Trap
$global:ErrMsg = ($_.Exception.Message.ToString()).Trim();

$dt = get-date
out-file -filepath C:\resetpassword.log -encoding unicode -append -inputobject
"$global:ErrMsg $user $dt"

Set-Variable -Name flgval -Value "T" -Scope global

6
Continue
}

if($global:flgval -ne "T")


{

$dt = get-date
out-file -filepath C:\resetpassword.log -encoding unicode -append -inputobject "Password
changed $user $dt"
}
$global:flgval = ""

Script to automatically map home drives: “homedrivemapping.ps1”

$ErrorActionPreference = "SilentlyContinue"
out-file -filepath C:\maphomefolder.log -encoding unicode -inputobject "Action on
Account SamAccount Date-Time"
out-file -filepath C:\maphomefolder.log -encoding unicode -append -inputobject ""

connect-QADService -proxy -service 'qualityassurance.ars.hk.hsbc'


import-csv 'c:\Vidya\ADAuto\home_folder.csv' |%{
$empid = $_.peoplesoftid
$drivepath = $_.new_path + $empid
$drivenew = $_.New_drive_letter
$net = $(New-Object -Com WScript.Network)
$drivepath
$net.MapNetworkDrive($drivenew,$drivepath)
Set-QADUser -identity $empid -objectAttributes
@{HomeDirectory=$drivepath;HomeDrive=$drivenew}

#Set-Variable -Name ErrMsg -Value "OK" -Scope Script;

Trap [Exception] {
Set-Variable -Name ErrMsg -Value "AC" -Scope global
Write-Host "Error occurred, ignoring it"
# Might set a variable so we can check for the error outside of Trap
$global:ErrMsg = ($_.Exception.Message.ToString()).Trim();

$dt = get-date

7
out-file -filepath C:\maphomefolder.log -encoding unicode -append -inputobject
"$global:ErrMsg $empid $dt"

Set-Variable -Name flgval -Value "T" -Scope global

Continue
}

if($global:flgval -ne "T")


{

$dt = get-date
out-file -filepath C:\maphomefolder.log -encoding unicode -append -inputobject
"Homedrive changed to $drivenew $empid $dt"
}
$global:flgval = ""

Script to move a user from one group to new group: “moveuser-tonewaccount.ps1”

connect-QADService -proxy -service 'qualityassurance.ars.hk.hsbc'


#$ErrorActionPreference = "SilentlyContinue"
out-file -filepath C:\moveduserlog.txt -encoding unicode -inputobject "New Account
Old Account SamAccount Date-Time"
out-file -filepath C:\movedduserlog.txt -encoding unicode -append -inputobject ""

import-csv 'C:\Vidya\ADAuto\moveUser.csv' |%{

$samAccount=$_.SamAccountName

$groupold = $_.groupold

$groupnew = $_.groupnew

Remove-QADGroupMember -Identity $groupold -Member $samAccount


Add-QADgroupmember -member $samAccount -identity $groupnew

$dt = get-date
out-file -filepath C:\moveduserlog.txt -encoding unicode -append -inputobject
"$groupnew $groupold $samAccount $dt"

disconnect-qadService

8
Script to send email: “sendemail.ps1”

$emailFrom = "vidyabhushan@hsbc.co.in" #get an id registered


EX: accountcreated@hsbc.co.in
$emailTo = "naveen.davuluri@hsbc.com,vidyabhushan@hsbc.co.in" #can put a
distribution list here.
$subject = "AD Account Created"
$body = "AD Account is Created for all the staff ids present in the spreadsheet at
Location \\gscinh3fs1.hdpi.in.hsbc\AD_Automation\."
$smtpServer = "130.21.197.94"
$smtp = new-object Net.Mail.SmtpClient($smtpServer)
$smtp.Send($emailFrom, $emailTo, $subject, $body) >> gdgdg.txt

Script to unlock a user account: “unlockuser.ps1”

$ErrorActionPreference = "SilentlyContinue"
out-file -filepath C:\unlockuser.log -encoding unicode -inputobject "Action on Account
SamAccount Date-Time"
out-file -filepath C:\unlockuser.log -encoding unicode -append -inputobject ""

connect-QADService -proxy -service 'qualityassurance.ars.hk.hsbc'


import-csv NewUser.csv |%{
$user = $_.SamAccountName

Unlock-QADUser -Identity $user


#Set-Variable -Name ErrMsg -Value "OK" -Scope Script;

Trap [Exception] {
Set-Variable -Name ErrMsg -Value "AC" -Scope global
Write-Host "Error occurred, ignoring it"
# Might set a variable so we can check for the error outside of Trap
$global:ErrMsg = ($_.Exception.Message.ToString()).Trim();

$dt = get-date
out-file -filepath C:\ unlockuser.log -encoding unicode -append -inputobject
"$global:ErrMsg $user $dt"

Set-Variable -Name flgval -Value "T" -Scope global

Continue
}

if($global:flgval -ne "T")


{
$dt = get-date

9
out-file -filepath C:\unlockuser.log -encoding unicode -append -inputobject "Account
unlocked $user $dt"
}
$global:flgval = ""
}

10

You might also like