When we setup a SharePoint environment without a
domain account or SharePoint setup in a domain which does not have a two way trust with corporate domain then people picker will not work. This issues
related to how SharePoint could communicate to active directory in order
retrieve the user information , when we use a local account it will not have
permission to talk to Active Directory so people picker will not work.
In SharePoint using stsadm command(unfortunately No
PowerShell script is available)we could set which account should be used when
people picker communicate to AD.
STSADM Command to set People Picker Search User
stsadm –o setapppassword
–password “Test”
Above command you could give
any phrase which will be used to encrypt the password
stsadm -o setproperty -url webapplicationurl
-pn peoplepicker-searchadforests -pv "domain:corp.abc.com,domain\username,password"
ex: stsadm -o setproperty -url http://localhost:6666
-pn peoplepicker-searchadforests -pv "domain:corp.abc.com,ABCAMERICA\SHYJU,111111"
Then run the following command to check it properly set
stsadm -o getproperty -url webapplicationurl
-pn peoplepicker-searchadforests.
You could also follow Technet Documentation
If you know the proper pathand domain controller of your active directory
then you could set it properly.This could also improve the performance of people search because it need to search only specific domain
Set-SPSite -Identity http://localhost:6666 -UserAccountDirectoryPath
"dc=abc,dc=com"
Following command will show
you the property currently set
$site = get-spsite http://localhost:6666
$site.UserAccountDirectoryPath
If you have issue in resolving the Users in People Picker then following powershell command also come handy.
[Reflection.Assembly]::Loadwithpartialname("System.DirectoryServices")
$webapp=[Microsoft.SharePoint.Administration.SPWebApplication]::Lookup("http://localhost:6666")
$webapp.PeoplePickerSettings.ReferralChasingOption
= [System.DirectoryServices.ReferralChasingOption]::All;
$webapp.Update();