Active Directory Powershell

I have a pshell script that creates users based on the <NewQAD-User> method my problem is I have a csv file with a column name of "Logon Usrename" that has all the SAMAccounts and I would like the script to see if the `New Logon Names` exist in AD and then display if they are or not...
I have done some research and have managed to find something similar on the`Net' , however I need a little help as I dont know how to reference my "Logon Username" column in this script.
Please if you can assist me in this I would greatly appreciate it allot

<# Imran Pathan > Find if the user exist in AD #> 
    
$UserList=IMPORT-CSV C:\FINAL_SCRIPTS\findUsers.csv 
$DC = 'PDC002.mydomain.local' 
Connect-QADService -service $DC 
Function FindDomainUser 
{ 
    Param( 
        [string] $_SamAccountName 
        ) 
    #-------------------- Find user --------------------------# 
    if(Get-QADUser -SamAccountName $_SamAccountName) 
     { 
         Write-Host "User Exist - $_SamAccountName" 
     } 
     else 
     { 
         Write-Host "User Don't Exist - $_SamAccountName"  
     } 
} 
#------------------ Find user End --------------------------# 
FOREACH ($Person in $UserList) { 
    FindDomainUser $Person.SamAccountName 
}

Open in new window

Jason LaskeyICT Systems and Network EngineerAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

LearnctxEngineerCommented:
For properties which contain a space just encapsulate them in brackets.
FOREACH ($Person in $UserList) { 
    FindDomainUser $Person."Logon Username" 
}

Open in new window

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Jason LaskeyICT Systems and Network EngineerAuthor Commented:
Will try this during today that <learnctx> one more thing I would be greatly happy with is perhaps have a script like this that checks to see if the userlogon name exist and then if it does make it <userlogon name> +<1> and then once all the new users have been created display it either on the screen or <pipe> it to a txt file?
Jason LaskeyICT Systems and Network EngineerAuthor Commented:
@ Learnctx My buddy it works I will award you the points but before I close do you perhaps have a solution for my above statement...ie.e< I would be greatly happy with is perhaps have a script like this that checks to see if the userlogon name exist and then if it does make it <userlogon name> +<1> and then once all the new users have been created display it either on the screen or <pipe> it to a txt file?> but anyway you are a legend as this was what I am looking for
Big Business Goals? Which KPIs Will Help You

The most successful MSPs rely on metrics – known as key performance indicators (KPIs) – for making informed decisions that help their businesses thrive, rather than just survive. This eBook provides an overview of the most important KPIs used by top MSPs.

LearnctxEngineerCommented:
I don't have the quest cmdlets, but using the AD cmdlets you could just implement a simple counter.

$Counter=$null
$ContinueScript=$true
$user="username"
While ($ContinueScript)
{
	$newuser="$($user)$($counter)"
	try {$x=Get-ADUser -Identity $newuser -ErrorAction Stop; "$newuser exists already";$counter++}catch{$ContinueScript=$false}
}
$newuser
## go on to create the user with new-qaduser or whatever the command is.

Open in new window


Something like the above. It will check for example jsmith. It will find jsmith and then the counter will increment by 1. It will keep searching for a new unique user name by incrementing the counter by 1 until say jsmith5 doesn't exist. It will then set $ContinueScript=$false and break out of the while loop.
Jason LaskeyICT Systems and Network EngineerAuthor Commented:
Hi Buddy and thank you again for you assistance as much appreciated..just so that we are on the same page here though...<does this script run and then if it find that the username is already in use will it prompt you to type in a new username then and then create the `new username' after you type it in? Also I have custom attributes like tel number, address etc...will this still be amended to the new user name?
Jason LaskeyICT Systems and Network EngineerAuthor Commented:
This is my script I am currently using
Set-ExecutionPolicy Unrestricted
Add-PSSnapin quest.activeroles.admanagement
Import-Csv "c:\bin\NewUsers.csv" | ForEach-Object {
 $userPrinc = $_."Logon Username" + "@contoso.com"
 New-QADUser -Name $_.Name `
 -ParentContainer $_."Container" `
 -SamAccountName $_."Logon Username" `
 -UserPassword "Password01" `
 -FirstName $_."First Name" `
 -LastName $_."Last Name" `
 -physicalDeliveryOfficeName $_."Office" `
 -telephoneNumber $_."Telephone Number" `
 -streetAddress $_."Street Address" `
 -l $_."City" `
 -st $_."State" `
 -postalCode $_."Postal Code" `
 -facsimileTelephoneNumber $_."Fax Number" `
 -title $_."Job Title" `
 -department $_."Department" `
 -company $_."Company" `
 -manager $_."Manager" `
 -Description $_."Job Title" `
 -UserPrincipalName $userPrinc `
 -DisplayName $_."Name" ;`
 Add-QADGroupMember -identity $_."Email Group 1" -Member $_."Logon Username" ;`
 Add-QADGroupMember -identity $_."Email Group 2" -Member $_."Logon Username" ;`
 Add-QADGroupMember -identity $_."Email Group 3" -Member $_."Logon Username" ;`
 Add-QADGroupMember -identity $_."Email Group 4" -Member $_."Logon Username" ;`
 Add-QADGroupMember -identity $_."Email Group 5" -Member $_."Logon Username" ;`
 Set-QADUser -identity $_."Logon Username" `
 -UserMustChangePassword $true `
}

Open in new window

Jason LaskeyICT Systems and Network EngineerAuthor Commented:
This worked! Thats allot for your assistance in this task!
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Active Directory

From novice to tech pro — start learning today.