Wednesday, March 20, 2013

Import photos from AD to SharePoint 2010

This is a time comsuming feature, here's the step for doing it right and saving time and insanity... :)

PreReq
User Profile Service application
MySite
Walkthrough
At present there is no picture associated to this user inside Active Directory.
image
Note- You will not see all the user attributes if you have not turned on the “Advanced Features”. You can also view the same information from ADSI.

How to import Pictures
Now our Goal is to import the user profile along with his picture, we will also upload his picture in AD.
1) First we need to make sure we are able to import users. So I will create connection to OU – PictureOU and import users
image
Note- I am only importing users from OU PictureOU
2) Let’s check user’s profile in SharePoint and make sure there is no picture associated to it.
image

Picture for this user is set to be blank
3) Upload Pictures to Active Directory.
Lots of people also have trouble in finding out ways to upload pictures in Active Directory. Following are the two best methods that I am aware off
A. Run these commands in Windows Powershell. We need to have Windows Administrative tools loaded for this to work
Import-Module ActiveDirectory
$photo=[byte[]](Get-Content C:\photo.jpg -Encoding byte)
Set-ADUser "username" -Replace @{thumbnailPhoto=$photo}
4) Let’s check User properties in Active Directory and make sure if has Picture value set
image

5) Map the Picture property to Thumnail Photo
A) Browse to User Profile Service Application from Central Administration and then click on Manage User Properties
Central Administration > UPA > Manage User Properties
B) Click on Picture and then Edit
image
C) We need to Map this to Attribute “thumnailPhoto” and Select Import from the Direction. Make sure you click on on Add
image
D) After clicking on Add make sure it shows up under the “Property Mapping for Synchronization”section
image
E) Click on OK
6) Start incremental Import
7) Let’s check the User properties and see if the image has been populated
image
So Picture still showing blank
8) Let’s check MIIS client and see if it made an attempt to import the picture. For this we will need to DS_DELTASYNC
image
So it does appear that FIM picked up the image successfully from Active Directory
9) Let’s check the Sync DB by running the following query
Select sAMAccountName,SPS_MV_OctetString_PictureURL from MMS_Metaverse with(nolock) Where SAMAccountName like '%UserName%'
image
So it appears Sync DB has successfully got updated with the Image.

10) Now let’s check the Profile DB by running the following query
Select NTname,PictureURL from UserProfile_full with(nolock) where NTName like ‘%harmeet%’
image
So it appears that Picture has not made it to the Profile DB
11) Run the following in SharePoint Management Shell
Update-SPProfilePhotoStore -CreateThumbnailsForImportedPhotos 1 -MySiteHostLocation http://mysite

http://support.microsoft.com/kb/2394320
12) Now if you go back to the user profile you will see that the image has been updated

Insert photo to Active Directory

Import-Module ActiveDirectory
$photo=[byte[]](Get-Content C:\photo.jpg -Encoding byte)
Set-ADUser "username" -Replace @{thumbnailPhoto=$photo}

Pre-create my site

How to create my site in SharePoint 2010 by powershell or STSADM?
  1. Use the following deprecated STSADM command:
    STSADM -o createsite see also http://technet.microsoft.com/en-us/library/cc262594(office.12).aspx
    (for MySite use SPSPERS#0 for the site template)
  2. Or Use the following Powershell script:
    Get-SPWebTemplate
    $template = Get-SPWebTemplate "SPSPERS#0"
    New-SPSite -Url "<URL for the new site collection>" -OwnerAlias "<domain\user>" -Template $template
    see also http://technet.microsoft.com/en-us/library/cc263094.aspx

Tuesday, January 22, 2013

How to find Apppools username AND password?

At your WFE, C:\Windows\System32\inetsrv>
type appcmd list apppool /text:*

This will bring up a list of every applicationpools at your WFE, showing both Username and Password! Helpful if you have lost any password, but also a possible security issue, everyone having access to your WFE and have administration rights can also gain access to your accounts and password. What about you have accounts with Active Directory permissions?

Wednesday, October 10, 2012

Powershell script sync Sharepoint user from AD


Powershell script sync Sharepoint user from AD

get-spuser -identity domain\user -web url
set-spuser -identity domain\user -SyncFromAD -web url

Monday, September 10, 2012

Powershell Bulk upload by putting the keywords in text or csv file

get-content "C:\path\NameOfFile.csv" | foreach-object {   New-SPEnterpriseSearchLanguageResourcePhrase -SearchApplication "Fast Query" -Language en-US -Type QuerySuggestionAlwaysSuggest -Name $_ }

Monday, January 16, 2012

Powershell script update draft version Sharepoint 2010

#Get site object and specify name of the library to look for in each site
$site = Get-SPSite http://yoursite.com/
$lookForList = "Shared documents"
#Walk through each site and change draft settings on the list specified
$site | Get-SPWeb -Limit all | ForEach-Object {
   
    write-host "Checking site:"$_.Title
   
    #Make sure the library exists
    $docLibrary = $_.Lists[$lookForList]
   
    if ($docLibrary -ne $null)
    {
        $docLibrary.DraftVersionVisibility = 1
        $docLibrary.Update()
 write-host $docLibrary.Title "on site" $_.Title "is updated"
    }
    else
    {
        write-host "The list" $lookForList "does not exist in site" $_.Title
    }
}
#Dispose of the site object
$site.Dispose()

Powershell script modify webpart on page Sharepoint 2010

$site = new-object Microsoft.SharePoint.SPSite("http://yoursite.com")
$web = $site.OpenWeb("RandomSite/AnotherSite/")
$page = $web.GetFile("Pages/default.aspx")
$page.CheckOut()
$wpm = $web.GetLimitedWebPartManager("Pages/default.aspx", [System.Web.UI.WebControls.WebParts.PersonalizationScope]::Shared)
$wpm.WebParts | ft

$wp = $wpm.WebParts[1]
$wp.EnableRedirect = $false
$wp.Url = "http://www.google.com/"
$wpm.SaveChanges($wp)
$page.CheckIn("Test")
$page.Publish("Test")
$web.Close()
$site.Close()

Powershell script list all powershell commands in a text file

Get-Command –PSSnapin “Get-Command –PSSnapin “Microsoft.SharePoint.PowerShell” format-table name > C:\SP2010_PowerShell_Commands.txt

Powershell script install feature Sharepoint 2010

$MyFeatureId = $(Get -SPFeature -limit all where {$_.displayname -eq "myfeatureName"}).Id
Install -SPFeature $MyFeatureId