Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 667
  • Last Modified:

SharePoint 2010 powershell script help

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
PSSupport
Asked:
PSSupport
  • 3
  • 2
  • 2
  • +1
3 Solutions
 
colly92002Commented:
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
 
Justin SmithSr. System EngineerCommented:
Use the Start-Transcript command to spit out everything to a text file.
0
 
Justin SmithSr. System EngineerCommented:
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
Who's Defending Your Organization from Threats?

Protecting against advanced threats requires an IT dream team – a well-oiled machine of people and solutions working together to defend your organization. Download our resource kit today to learn more about the tools you need to build you IT Dream Team!

 
Jayaraja JayaramanSharepoint Architect ConsultantCommented:
$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
 
Justin SmithSr. System EngineerCommented:
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
 
PSSupportAuthor Commented:
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
 
PSSupportAuthor Commented:
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
 
Jayaraja JayaramanSharepoint Architect ConsultantCommented:
@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

Microsoft Certification Exam 74-409

Veeam® is happy to provide the Microsoft community with a study guide prepared by MVP and MCT, Orin Thomas. This guide will take you through each of the exam objectives, helping you to prepare for and pass the examination.

  • 3
  • 2
  • 2
  • +1
Tackle projects and never again get stuck behind a technical roadblock.
Join Now