Solved

SharePoint 2010 powershell script help

Posted on 2014-07-21
8
649 Views
Last Modified: 2014-07-25
With regards to SharePoint 2010 we are testing out the ability to import AD account pictures into SharePoint.
I'm able to do a full profile import to get the users picture into our Mysite picture library. It will create 1 picture with a cryptic file name. Then I'll go into the "SharePoint 2010 management shell" and select the link to "Run as Administrator".
I run the below command which completes successfully:
Update-SPProfilePhotoStore -CreateThumbnailsForImportedPhotos 1 -MySiteHostLocation http://mysite
I then see the 3 different sized profile pics for the user that was imported.

Now I need to automate this and I am not familar with PowerShell. This is where I could use some help.

Ideally, I want to write a powershell script which calls the command and if there were errors/warnings running the command, create a notification. At the least though I just want to get the command working. I'm familar with programming and various languages so I just need some help starting off.

I'm testing in a development server. I've created a ps1 file with the command:
Update-SPProfilePhotoStore -CreateThumbnailsForImportedPhotos 1 -MySiteHostLocation http://mysite

1) How can I get the result of the command including verbage that the command produces using PowerShell.
2) When I go through the Windows OS GUI and select SharePoint 2010 management shell and than Run as Administrator
    is there code I need to add to the ps1 file to mimic this. I am running it right now while logged in as an account that has
    the ability to execute this command. I just can't seem to get it to run when I do it via a script verses typing it into the
    command line. Not seeing results of the command does help so that is where (1) comes in.

Can someone give me a hand. I've seen different things on the internet and I think I'm missing a key detail though.
I just need to get over this hump starting off.

Thanks.
0
Comment
Question by:PSSupport
  • 3
  • 2
  • 2
  • +1
8 Comments
 
LVL 15

Accepted Solution

by:
colly92002 earned 50 total points
Comment Utility
Can I assume that you are you trying to do this via the task scheduler?  IF so follow this guide:
http://get-spscripts.com/2011/01/running-sharepoint-powershell-script.html

This explains how to configure the task scheduler to run a SharePoint PS command.  IT should do everything you need.

A more generic look at scheduling PS can be found here:
http://dmitrysotnikov.wordpress.com/2011/02/03/how-to-schedule-a-powershell-script/
0
 
LVL 38

Expert Comment

by:Justin Smith
Comment Utility
Use the Start-Transcript command to spit out everything to a text file.
0
 
LVL 38

Assisted Solution

by:Justin Smith
Justin Smith earned 20 total points
Comment Utility
Also, at the beginning of your script you should import the SharePoint module. Something like

if ( (Get-PSSnapin -Name Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue) -eq $null )
{
    Add-PSSnapin Microsoft.SharePoint.Powershell
}
0
 
LVL 8

Assisted Solution

by:Jayaraja Jayaraman
Jayaraja Jayaraman earned 30 total points
Comment Utility
$ssite=get-spsite "Site Url"
$sweb=$ssite.openweb("WebName")
$slist=$sweb.lists["Employee Pictures"]
write-host $slist.itemcount
foreach($item in $slist.items)
{
$nwid=$item["NetworkID"]
$usid='awacgbl\'+$nwid
write-host $item["NetworkID"]   $usid
$item["User_x0020_Name"]=New-SPUser –UserAlias $usid –Web $sweb
write-host $item["User_x0020_Name"]
$item.SystemUpdate()
}

or

$siteUrl="SiteUrl"
$upm = GetProfileManager -url $siteUrl
$up = $upm.GetUserProfile("domainname\comurphy");

$picturePropertyName = GetProfilePropertyName -UserProfileManager $upm -PropertyName "PictureUrl";

if (-not [System.String]::IsNullOrEmpty($picturePropertyName))
{
    $PortraitUrl = CombineUrls -baseUrl $file.Web.Url -relUrl $file.ServerRelativeUrl;
    $up.get_Item($picturePropertyName).Value = $PortraitUrl;
}
0
Free Trending Threat Insights Every Day

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

 
LVL 38

Expert Comment

by:Justin Smith
Comment Utility
jayaraja your response doesn't help or answer any part of the question.  If you ran your code from a powershell session it would fail as you didn't import the SharePoint snap-in.
0
 
LVL 1

Author Comment

by:PSSupport
Comment Utility
Thanks colly92002 and ACH1LLES . the Add-PSSnapin was the missing piece that I needed for the puzzle. I can now test the SP Ad import command from the script so I can move forward with this. The Transcript command is also a good thing to know.
0
 
LVL 1

Author Closing Comment

by:PSSupport
Comment Utility
I had specfic questions which I would have like to be addressed directly from expert exchange. I can find links on the net as well. Sometimes though its key info I need to help me jog my searches online to fine tune them. But you guys did help me. Thanks.
0
 
LVL 8

Expert Comment

by:Jayaraja Jayaraman
Comment Utility
@ACH1LLES - please note tat its understable by people who are working with sp for atleast couple of years to know to run the sharepoint related powershell commands from sharepoint powershell console where in you dont need to add the pssnapin.
0

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

This is a PowerShell web interface I use to manage some task as a network administrator. Clicking an action button on the left frame will display a form in the middle frame to input some data in textboxes, process this data in PowerShell and display…
This article will help you understand what HashTables are and how to use them in PowerShell.
Get a first impression of how PRTG looks and learn how it works.   This video is a short introduction to PRTG, as an initial overview or as a quick start for new PRTG users.
This video demonstrates how to create an example email signature rule for a department in a company using CodeTwo Exchange Rules. The signature will be inserted beneath users' latest emails in conversations and will be displayed in users' Sent Items…

744 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

15 Experts available now in Live!

Get 1:1 Help Now