How to check if a Domain User exists using PowerShell without loading AD Snap-Ins |
Aug
18
|
« How to Install the March 2013 PU and August 2013 CU on SharePoint 2013 | Update Enom Domain Name via PowerShell (Dynamic DNS Update) » |
I was trying to run “New-SPSite” to create a Site Collection in SharePoint. I accidentally typed in the wrong username as the owner so I received an error. Upon investigation there is not a quick and simple way to see if a user exists outside of SharePoint before its added. Most recommended solutions require you to load an Active Directory Snap-In, which I think is overkill.
In this example I will use the old school NET command for DOS within PowerShell. NET USER is how I used to validate users back in the day when I wrote a lot of batch files.
# set the account to parse $account = "service-sharepoint" # we use this in case the account is in the DOMAIN\username format, it will strip out the DOMAIN\ for us $username = $account.Split("\") | select -last 1 # we use the following old school DOS command to get the user info: "net user /domain username" $checkuser = Start-Process NET -ArgumentList "USER /domain $username" -wait -NoNewWindow -PassThru # store the exit code in a variable $value = $checkuser.ExitCode # if the user account exists the exit code is 0, no other exit codes should matter if ($value -eq 0) { Write-Host "`r`n Value: `"$value`"" Write-Host "`r`n Success: User Account: `"$account`" exists on domain. Proceeding." -ForegroundColor Green # run your other code here } else { Write-Host "`r`n Value: `"$value`"" Write-Host "`r`n Error: User Account: `"$account`" could not be found. Exiting." -ForegroundColor Red }