tag:blogger.com,1999:blog-22594015619518577172024-02-19T09:05:31.717-08:00Torben Rimmer's BlogTorben Rimmerhttp://www.blogger.com/profile/07881936404920054966noreply@blogger.comBlogger16125tag:blogger.com,1999:blog-2259401561951857717.post-28911380427717829472016-05-16T10:20:00.001-07:002016-05-16T10:20:19.390-07:00SharePoint 2013 alignment (1/?)I have wondering on what I should write next on my blog, and came on a little idea on a serie on how to align two SharePoint 2013 environments. <br />
We are all making new code in an test- or development environment. And for that purpurse we need to establish some valid data in the environments.<br />
<br />
So this serie will cover all the steps to create a complete script that can take the production data, and restore it on an test/dev server. <br />
<br />
So we should first cover our steps, before we can make a script. And if you have any comments I really like to hear your points. This serie will target those that dont have a deep knowledge in PowerShell and are looking for a copy paste solution.<br />
<br />
So the steps are as follow:<br />
<ol>
<li>Backup (copy style) of the production content database</li>
<li>Check the backup files </li>
<li>Dismount the content databases</li>
<li>Restore the content databases</li>
<li>Assign new site collection admins</li>
<li>Migrate groups and users. (If your changing AD domain)</li>
<li>Migrate service applications</li>
<ol>
<li>Manage metadata</li>
<li>... Please ask for a service application, you like me to script. </li>
</ol>
</ol>
So the way I like to make my scripts is making a master script and a funktion script. But it could be the same. I also like to make a configuration file with all my variables.<br />
<br />
Lets make 3 files. <br />
<ul>
<li>RunningScript.ps1</li>
<li>Functions.ps1</li>
<li>Configuration.xml</li>
</ul>
<br />
So lets have a close look at how we build the XML file.<br />
I have build mine with all the server settings.<br />
<span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><?</span></span></span><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;"><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;"><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;">xml</span></span></span><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"> </span></span></span><span style="color: #92caf4; font-family: "consolas"; font-size: x-small;"><span style="color: #92caf4; font-family: "consolas"; font-size: x-small;"><span style="color: #92caf4; font-family: "consolas"; font-size: x-small;">version</span></span></span><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;">="</span></span></span><span style="color: #c8c8c8; font-family: "consolas"; font-size: x-small;"><span style="color: #c8c8c8; font-family: "consolas"; font-size: x-small;"><span style="color: #c8c8c8; font-family: "consolas"; font-size: x-small;">1.0</span></span></span><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;">"?></span></span></span><br />
<span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;">
</span></span></span><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"> <</span></span></span><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;"><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;"><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;">Settings</span></span></span><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;">></span></span></span><br />
<span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;">
</span></span></span><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"> <</span></span></span><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;"><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;"><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;">ServerSettings</span></span></span><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;">></span></span></span><br />
<span style="color: grey; font-family: "consolas"; font-size: x-small;"></span> <span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><</span></span></span><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;"><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;"><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;">WebApp</span></span></span><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;">></span></span></span><span style="color: #c8c8c8; font-family: "consolas"; font-size: x-small;"><span style="color: #c8c8c8; font-family: "consolas"; font-size: x-small;"><span style="color: #c8c8c8; font-family: "consolas"; font-size: x-small;">http://contoso.com</span></span></span><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"></</span></span></span><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;"><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;"><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;">WebApp</span></span></span><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;">></span></span></span><br />
<span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;">
</span></span></span><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><</span></span></span><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;"><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;"><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;">SQLServerFrom</span></span></span><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;">><span style="color: #c8c8c8; font-family: "consolas"; font-size: x-small;"><span style="color: #c8c8c8; font-family: "consolas"; font-size: x-small;"><span style="color: #c8c8c8; font-family: "consolas"; font-size: x-small;">SQLsServer\PRODinstance</span></span></span></</span></span></span><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;"><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;"><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;">SQLServerFrom</span></span></span><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;">></span></span></span><br />
<span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;">
</span></span></span><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><</span></span></span><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;"><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;"><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;">SQLServerTo</span></span></span><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;">><span style="color: #c8c8c8;">SQLsServer\TESTinstance</span></span></span></span><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"></</span></span></span><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;"><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;"><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;">SQLServerTo</span></span></span><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;">></span></span></span><br />
<span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;">
</span></span></span><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><</span></span></span><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;"><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;"><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;">SiteColAdmin</span></span></span><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;">></span></span></span><span style="color: #c8c8c8; font-family: "consolas"; font-size: x-small;"><span style="color: #c8c8c8; font-family: "consolas"; font-size: x-small;"><span style="color: #c8c8c8; font-family: "consolas"; font-size: x-small;">contoso\administrator</span></span></span><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"></</span></span></span><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;"><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;"><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;">SiteColAdmin</span></span></span><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;">></span></span></span><br />
<span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;">
</span></span></span><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><</span></span></span><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;"><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;"><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;">OldADDomain</span></span></span><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;">></span></span></span><span style="color: #c8c8c8; font-family: "consolas"; font-size: x-small;"><span style="color: #c8c8c8; font-family: "consolas"; font-size: x-small;"><span style="color: #c8c8c8; font-family: "consolas"; font-size: x-small;">ContosoPROD</span></span></span><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"></</span></span></span><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;"><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;"><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;">OldADDomain</span></span></span><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;">></span></span></span><br />
<span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;">
</span></span></span><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><</span></span></span><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;"><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;"><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;">NewADDomain</span></span></span><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;">></span></span></span><span style="color: #c8c8c8; font-family: "consolas"; font-size: x-small;"><span style="color: #c8c8c8; font-family: "consolas"; font-size: x-small;"><span style="color: #c8c8c8; font-family: "consolas"; font-size: x-small;">ContosoTEST</span></span></span><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"></</span></span></span><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;"><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;"><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;">NewADDomain</span></span></span><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;">></span></span></span><br />
<span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;">
</span></span></span><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><</span></span></span><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;"><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;"><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;">SQLBackupJob</span></span></span><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;">><span style="color: #c8c8c8; font-family: "consolas"; font-size: x-small;"><span style="color: #c8c8c8; font-family: "consolas"; font-size: x-small;"><span style="color: #c8c8c8; font-family: "consolas"; font-size: x-small;">SQL-Backup-JOB</span></span></span></</span></span></span><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;"><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;"><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;">SQLBackupJob</span></span></span><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;">></span></span></span><br />
<span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;">
</span></span></span><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><</span></span></span><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;"><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;"><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;">SQLRestoreJob</span></span></span><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;">></span></span></span><span style="color: #c8c8c8; font-family: "consolas"; font-size: x-small;"><span style="color: #c8c8c8; font-family: "consolas"; font-size: x-small;"><span style="color: #c8c8c8; font-family: "consolas"; font-size: x-small;">SQL-Restore-JOB</span></span></span><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"></</span></span></span><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;"><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;"><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;">SQLRestoreJob</span></span></span><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;">></span></span></span><br />
<span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;">
</span></span></span><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"></</span></span></span><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;"><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;"><span style="color: #569cd6; font-family: "consolas"; font-size: x-small;">ServerSettings</span></span></span><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;"><span style="color: grey; font-family: "consolas"; font-size: x-small;">></span></span></span><br />
<br />
So the first step is to take the backup of the produktion database. This is bedst done by using the SMO PowerShell module.<br />
To install the SMO please look at ...<br />
<br />
The first part of the script we need to implement the use of the Functions.ps1 and Configuration.xml file. Note that I am using a "main" function. this is done to get an overview of the running script, and to be able to place it at the top of the script.<br />
<br />
Using the RunningScript.ps1<br />
<span style="color: blue; font-family: "consolas"; font-size: x-small;"><span style="color: blue; font-family: "consolas"; font-size: x-small;"><span style="color: blue; font-family: "consolas"; font-size: x-small;">function</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> main</span></span><br />
<span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;">{<br />
</span></span><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"> cls</span></span></span><br />
<span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;">
</span></span></span><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"> Write-Host</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> -ForegroundColor Blue </span></span><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;">"Starting AligmentScript"</span></span></span><br />
<span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;">
</span></span></span><span style="color: green; font-family: "consolas"; font-size: x-small;"><span style="color: green; font-family: "consolas"; font-size: x-small;"><span style="color: green; font-family: "consolas"; font-size: x-small;"> </span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> </span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;">$bits = </span></span><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;">pwd</span></span></span><br />
<span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;">
</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> </span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;">. </span></span><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;">"</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;">$bits</span></span><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;">\Functions.ps1"</span></span></span><br />
<span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;">
</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> </span></span><br />
<span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> [</span></span><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;">xml</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;">]$xmlConfiguration = </span></span><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;">Get-Content</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> </span></span><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;">"</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;">$bits</span></span><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;">\Configuration.xml"</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> </span></span><br />
<span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"> Run-SQL-Job</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> "$xmlConfiguration.Settings.ServerSettings.SQLServerFrom" "$xmlConfiguration.Settings.ServerSettings.SQLBackupJob"</span></span><br />
{<br />
<br />
After in adding the script path, I include the configuration file. <br />
Note: There are many ways to include your script path, I use the "pwd" command, but this dose not always work. <br />
after including the files, I use the function [Run-SQL-Job]. This function is used for both backup and restore. Do mind that the account running the script need access to the production server. <br />
<br />
The function looks like this:<br />
<span style="color: blue; font-family: "consolas"; font-size: x-small;"><span style="color: blue; font-family: "consolas"; font-size: x-small;"><span style="color: blue; font-family: "consolas"; font-size: x-small;">function</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> Run-SQL-Job</span></span><br />
<span style="font-family: "consolas"; font-size: x-small;">
<span style="font-family: "consolas"; font-size: x-small;">
(<br />
$instancename,<br />
$jobname<br />
)<br />
{<br />
</span> </span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> $db = </span></span><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;">"MSDB"</span></span></span><br />
<span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;">
</span></span></span><span style="color: blue; font-family: "consolas"; font-size: x-small;"><span style="color: blue; font-family: "consolas"; font-size: x-small;"><span style="color: blue; font-family: "consolas"; font-size: x-small;"> try</span></span></span><br />
<span style="color: blue; font-family: "consolas"; font-size: x-small;"><span style="color: blue; font-family: "consolas"; font-size: x-small;"><span style="color: blue; font-family: "consolas"; font-size: x-small;">
</span></span></span><span style="font-family: "consolas"; font-size: x-small;">
<span style="font-family: "consolas"; font-size: x-small;">
{<br />
</span> </span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> </span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;">$sqlConnection = </span></span><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;">new-object</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> System.Data.SqlClient.SqlConnection </span></span><br />
<span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;">
</span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> $sqlConnection.ConnectionString = </span></span><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;">'server='</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> + $instancename + </span></span><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;">';integrated security=TRUE;database='</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> + $db</span></span><span style="font-family: "consolas"; font-size: x-small;">
<span style="font-family: "consolas"; font-size: x-small;">
<br />
$sqlConnection.Open()<br />
</span> </span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> </span></span><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;">Start-Sleep</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> -s 1</span></span><br />
<span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;">
</span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> $sqlCommand = </span></span><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;">new-object</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> System.Data.SqlClient.SqlCommand </span></span><br />
<span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;">
$sqlCommand.CommandTimeout = 120 </span></span><br />
<span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;">
$sqlCommand.Connection = $sqlConnection <br />
</span> </span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> $sqlCommand.CommandText = </span></span><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;">"EXEC dbo.sp_start_job N'</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;">$JobName</span></span><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;">'"</span></span></span><br />
<span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;">
</span></span></span><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"> Write-Host</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> </span></span><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;">"Executing Job => </span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;">$jobname</span></span><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;">..."</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> </span></span><br />
<span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> $result = $sqlCommand.ExecuteNonQuery() <br />
$sqlConnection.Close()
<br />
}<br />
</span> </span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> </span></span><span style="color: blue; font-family: "consolas"; font-size: x-small;"><span style="color: blue; font-family: "consolas"; font-size: x-small;"><span style="color: blue; font-family: "consolas"; font-size: x-small;">catch</span></span></span><br />
<span style="color: blue; font-family: "consolas"; font-size: x-small;"><span style="color: blue; font-family: "consolas"; font-size: x-small;"><span style="color: blue; font-family: "consolas"; font-size: x-small;">
</span></span></span><span style="font-family: "consolas"; font-size: x-small;">
<span style="font-family: "consolas"; font-size: x-small;">
{<br />
</span> </span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> </span></span><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;">Write-Eventlog</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> -Logname </span></span><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;">'Application'</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> -Source </span></span><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;">'Application'</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> -EventID 19002 -EntryType Error -Message </span></span><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;">"Start SQL job :</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;">$jobname</span></span><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"> Failed"</span></span></span><br />
<span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;">
</span></span></span><span style="font-family: "consolas"; font-size: x-small;">
<span style="font-family: "consolas"; font-size: x-small;">
}<br />
</span> </span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> </span></span><span style="color: green; font-family: "consolas"; font-size: x-small;"><span style="color: green; font-family: "consolas"; font-size: x-small;"><span style="color: green; font-family: "consolas"; font-size: x-small;"># Preload Sql server SMO Assemblies </span></span></span><br />
<span style="color: green; font-family: "consolas"; font-size: x-small;"><span style="color: green; font-family: "consolas"; font-size: x-small;"><span style="color: green; font-family: "consolas"; font-size: x-small;">
</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> $null = [</span></span><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;">reflection.assembly</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;">]::LoadWithPartialName(</span></span><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;">"Microsoft.SqlServer.Connect ionInfo"</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;">)</span></span><br />
<span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;">
</span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;">$null = [</span></span><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;">reflection.assembly</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;">]::LoadWithPartialName(</span></span><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;">"Microsoft.SqlServer.SmoEnum "</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;">)</span></span><br />
<span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;">
</span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> $null = [</span></span><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;">reflection.assembly</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;">]::LoadWithPartialName(</span></span><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;">"Microsoft.SqlServer.Smo"</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;">)</span></span><br />
<span style="font-family: "consolas"; font-size: x-small;"> </span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> </span></span><span style="color: green; font-family: "consolas"; font-size: x-small;"><span style="color: green; font-family: "consolas"; font-size: x-small;"><span style="color: green; font-family: "consolas"; font-size: x-small;"># Initilize SMO Objects</span></span></span><br />
<span style="color: green; font-family: "consolas"; font-size: x-small;"><span style="color: green; font-family: "consolas"; font-size: x-small;"><span style="color: green; font-family: "consolas"; font-size: x-small;">
</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> $server = </span></span><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;">New-Object</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> Microsoft.SqlServer.Management.Smo.Server $instancename</span></span><span style="font-family: "consolas"; font-size: x-small;">
<span style="font-family: "consolas"; font-size: x-small;">
<br />
$i = 0<br />
</span> </span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> </span></span><span style="color: blue; font-family: "consolas"; font-size: x-small;"><span style="color: blue; font-family: "consolas"; font-size: x-small;"><span style="color: blue; font-family: "consolas"; font-size: x-small;">while</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> ($i -ne 100) </span></span><span style="font-family: "consolas"; font-size: x-small;">
<span style="font-family: "consolas"; font-size: x-small;">
<br />
{ <br />
$agent = $server.JobServer.Jobs<br />
</span> </span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> </span></span><span style="color: blue; font-family: "consolas"; font-size: x-small;"><span style="color: blue; font-family: "consolas"; font-size: x-small;"><span style="color: blue; font-family: "consolas"; font-size: x-small;">if</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;">($agent){$i = 100}</span></span><br />
<span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;">
</span></span><span style="color: blue; font-family: "consolas"; font-size: x-small;"><span style="color: blue; font-family: "consolas"; font-size: x-small;"><span style="color: blue; font-family: "consolas"; font-size: x-small;"> else</span></span></span><br />
<span style="color: blue; font-family: "consolas"; font-size: x-small;"><span style="color: blue; font-family: "consolas"; font-size: x-small;"><span style="color: blue; font-family: "consolas"; font-size: x-small;">
</span></span></span><span style="font-family: "consolas"; font-size: x-small;">
<span style="font-family: "consolas"; font-size: x-small;">
{<br />
</span> </span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> </span></span><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;">Start-Sleep</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> -s 1</span></span><span style="font-family: "consolas"; font-size: x-small;"><br />
<span style="font-family: "consolas"; font-size: x-small;">
$i += 1<br />
}<br />
}<br />
</span> </span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> $Restore = $agent | </span></span><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;">Where-Object</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> {$_.Name -eq $jobname}</span></span><br />
<span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;">
</span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> $Today = </span></span><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;">Get-Date</span></span></span><br />
<span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;">
</span></span></span><span style="font-family: "consolas"; font-size: x-small;">
<span style="font-family: "consolas"; font-size: x-small;">
$continue = $true
<br />
</span> </span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> </span></span><span style="color: green; font-family: "consolas"; font-size: x-small;"><span style="color: green; font-family: "consolas"; font-size: x-small;"><span style="color: green; font-family: "consolas"; font-size: x-small;"># Get Time Value to Start and Stop</span></span></span><br />
<span style="color: green; font-family: "consolas"; font-size: x-small;"><span style="color: green; font-family: "consolas"; font-size: x-small;"><span style="color: green; font-family: "consolas"; font-size: x-small;">
</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> $ActiveDateTime=[</span></span><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;">datetime</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;">]::Parse((</span></span><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;">Get-Date</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> -Format </span></span><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;">'HH:MM'</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;">))</span></span><span style="font-family: "consolas"; font-size: x-small;"><br />
<span style="font-family: "consolas"; font-size: x-small;">
$StopDateTime=$ActiveDateTime.addminutes(1)<br />
</span> </span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> $StopTime=$StopDateTime.toString(</span></span><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;">"HH:MM"</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;">)</span></span><br />
<span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;">
</span> </span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> </span></span><span style="color: blue; font-family: "consolas"; font-size: x-small;"><span style="color: blue; font-family: "consolas"; font-size: x-small;"><span style="color: blue; font-family: "consolas"; font-size: x-small;">if</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> ($Restore -eq $null)</span></span><br />
<span style="font-family: "consolas"; font-size: x-small;">
<span style="font-family: "consolas"; font-size: x-small;">
{<br />
</span> </span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> </span></span><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"> Write-host</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> </span></span><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;">"</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;">$jobname</span></span><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"> does not exist on </span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;">$instancename</span></span><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;">"</span></span></span><br />
<span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;">
</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> $continue = $false<br />
}<br />
</span> </span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> </span></span><span style="color: blue; font-family: "consolas"; font-size: x-small;"><span style="color: blue; font-family: "consolas"; font-size: x-small;"><span style="color: blue; font-family: "consolas"; font-size: x-small;">if</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> ($continue){</span></span><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;">write-host</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> -ForegroundColor Blue </span></span><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;">"</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;">$jobname</span></span><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"> Job is Executing. Please Wait.."</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> -NoNewline}</span></span><br />
<span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;">
</span></span><span style="color: blue; font-family: "consolas"; font-size: x-small;"><span style="color: blue; font-family: "consolas"; font-size: x-small;"><span style="color: blue; font-family: "consolas"; font-size: x-small;"> while</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> ($continue)</span></span><span style="font-family: "consolas"; font-size: x-small;">
<span style="font-family: "consolas"; font-size: x-small;">
<br />
{<br />
$Restore.Refresh()<br />
</span> </span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> </span></span><span style="color: green; font-family: "consolas"; font-size: x-small;"><span style="color: green; font-family: "consolas"; font-size: x-small;"><span style="color: green; font-family: "consolas"; font-size: x-small;"># if Job Completed Successfully </span></span></span><br />
<span style="color: green; font-family: "consolas"; font-size: x-small;"><span style="color: green; font-family: "consolas"; font-size: x-small;"><span style="color: green; font-family: "consolas"; font-size: x-small;">
</span></span></span><span style="color: blue; font-family: "consolas"; font-size: x-small;"><span style="color: blue; font-family: "consolas"; font-size: x-small;"><span style="color: blue; font-family: "consolas"; font-size: x-small;"> if</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> ($Restore.CurrentRunStatus.value__ -eq 4 -and $Restore.LastRunDate -gt $Today.AddDays(-1) -and $Restore.LastRunOutcome -eq </span></span><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;">"Succeeded"</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;">)</span></span><br />
<span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> {<br />
</span> </span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> </span></span><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;">Write-host</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> </span></span><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;">"</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;">$jobname</span></span><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"> complete."</span></span></span><br />
<span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;">
</span></span></span><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"> </span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;">
$continue = $false<br />
}<br />
</span> </span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> </span></span><span style="color: green; font-family: "consolas"; font-size: x-small;"><span style="color: green; font-family: "consolas"; font-size: x-small;"><span style="color: green; font-family: "consolas"; font-size: x-small;"># if Job is curently executing </span></span></span><br />
<span style="color: green; font-family: "consolas"; font-size: x-small;"><span style="color: green; font-family: "consolas"; font-size: x-small;"><span style="color: green; font-family: "consolas"; font-size: x-small;">
</span></span></span><span style="color: blue; font-family: "consolas"; font-size: x-small;"><span style="color: blue; font-family: "consolas"; font-size: x-small;"><span style="color: blue; font-family: "consolas"; font-size: x-small;"> elseif</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> ($Restore.CurrentRunStatus.value__ -eq 1)</span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;">
<br />
{<br />
</span> </span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> </span></span><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;">Write-host</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> -ForegroundColor Blue </span></span><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;">"."</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> -NoNewline</span></span><br />
<span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;">
</span></span><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"> start-Sleep</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> -s 5</span></span><span style="font-family: "consolas"; font-size: x-small;">
<span style="font-family: "consolas"; font-size: x-small;">
<br />
}<br />
</span> </span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> </span></span><span style="color: green; font-family: "consolas"; font-size: x-small;"><span style="color: green; font-family: "consolas"; font-size: x-small;"><span style="color: green; font-family: "consolas"; font-size: x-small;"># if Job Suspended </span></span></span><br />
<span style="color: green; font-family: "consolas"; font-size: x-small;"><span style="color: green; font-family: "consolas"; font-size: x-small;"><span style="color: green; font-family: "consolas"; font-size: x-small;">
</span></span></span><span style="color: blue; font-family: "consolas"; font-size: x-small;"><span style="color: blue; font-family: "consolas"; font-size: x-small;"><span style="color: blue; font-family: "consolas"; font-size: x-small;"> elseif</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> ($Restore.CurrentRunStatus.value__ -eq 5) </span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;">
<br />
{<br />
</span> </span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> </span></span><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;">Write-host</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> </span></span><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;">"</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;">$jobname</span></span><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"> Job has been suspended."</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> </span></span><br />
<span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;">
</span></span><span style="font-family: "consolas"; font-size: x-small;">
<span style="font-family: "consolas"; font-size: x-small;">
$continue = $false<br />
} <br />
</span> </span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> </span></span><span style="color: green; font-family: "consolas"; font-size: x-small;"><span style="color: green; font-family: "consolas"; font-size: x-small;"><span style="color: green; font-family: "consolas"; font-size: x-small;"># if Job Cancelled </span></span></span><br />
<span style="color: green; font-family: "consolas"; font-size: x-small;"><span style="color: green; font-family: "consolas"; font-size: x-small;"><span style="color: green; font-family: "consolas"; font-size: x-small;">
</span></span></span><span style="color: blue; font-family: "consolas"; font-size: x-small;"><span style="color: blue; font-family: "consolas"; font-size: x-small;"><span style="color: blue; font-family: "consolas"; font-size: x-small;"> elseif</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> ($Restore.CurrentRunStatus.value__ -eq 4 -and $Restore.LastRunOutcome -eq </span></span><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;">"Cancelled"</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;">)</span></span><br />
<span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> {<br />
</span> </span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> </span></span><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;"><span style="color: #2b91af; font-family: "consolas"; font-size: x-small;">Write-host</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;"> </span></span><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;">"</span></span></span><span style="font-family: "consolas"; font-size: x-small;"><span style="font-family: "consolas"; font-size: x-small;">$jobname</span></span><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"> Job has been Cancelled"</span></span></span><br />
<span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;"><span style="color: #a31515; font-family: "consolas"; font-size: x-small;">
</span></span></span><span style="font-family: "consolas"; font-size: x-small;"> <span style="font-family: "consolas"; font-size: x-small;">
$continue = $false<br />
}<br />
}<br />
}</span> </span><br />
Torben Rimmerhttp://www.blogger.com/profile/07881936404920054966noreply@blogger.com0tag:blogger.com,1999:blog-2259401561951857717.post-31589064867781422052013-10-07T10:54:00.003-07:002013-10-07T10:54:44.217-07:00SPBG High availability with SharePoint 2013I hold a speech at the SPBG network seminar's, the topic was (High availability with SharePoint 2013) and yes, still using the Microsoft "metro" style.<br />
<br />
A great seminar with with a lot of good questions. <br />
SPBG, is known for it's high end SharePoint users and technicians, with a broad knowledge in alll topics.<br />
Please wisit <a href="http://www.spbg.dk/">http://www.spbg.dk</a><br />
<br />
The slides from the seminar is shown here and your all welcome to leave some comment. <br />
<br />
Slides<br />
<iframe allowfullscreen="" frameborder="0" height="356" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/26947615" style="border: 1px solid rgb(204, 204, 204); margin-bottom: 5px;" width="427"> </iframe> <br />
<div style="margin-bottom: 5px;">
<strong> <a href="https://www.slideshare.net/torbenrimmer/spbg-slides3102013" target="_blank" title="SPBG slides-3-10-2013">SPBG slides-3-10-2013</a> </strong> from <strong><a href="http://www.slideshare.net/torbenrimmer" target="_blank">Torben Rimmer</a></strong> </div>
Torben Rimmerhttp://www.blogger.com/profile/07881936404920054966noreply@blogger.com0tag:blogger.com,1999:blog-2259401561951857717.post-73936484363372185992013-06-06T10:05:00.002-07:002013-06-09T02:55:19.770-07:00jBoye seminar in LondonYesterday I hold a speech at the one of jBoye network seminar's in London, the topic (High availability with SharePoint 2013) and yes, still using the Microsoft metro style.<br />
<br />
A great seminar with with a great view over London city. I wish my office hade this view.<br />
Big thanks to Lau, who facilitated the meeting and to jBoye for arranging the seminar. Please visit <a href="http://www.jboye.com/">http://www.jboye.com</a><br />
<br />
The slides from the seminar is shown here and your all welcome to leave some comment. <br />
(Please mind that all Saxo Bank specific slides have been removed)<br />
<br />
Slides<br />
<iframe src="http://www.slideshare.net/slideshow/embed_code/22689140" width="476" height="400" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>Torben Rimmerhttp://www.blogger.com/profile/07881936404920054966noreply@blogger.com0tag:blogger.com,1999:blog-2259401561951857717.post-58847052532743483792013-04-10T06:31:00.005-07:002013-04-10T06:31:55.238-07:00Disable all Health analyzer rules in SharePoint 2013<br />
<div class="MsoNormal">
As in SharePoint 2010 we also in SharePoint 2013 have a lot
of jobs running and analyzing the overall health of our server. </div>
<div class="MsoNormal">
All those rules are really nice, but in some
cases you don’t need them. </div>
<div class="MsoNormal">
Example: </div>
<div class="MsoNormal">
</div>
<ul>
<li>If you know that you are running with databases
over the limit and you are okay with that. </li>
<li>You are running with only one
service account, and is okay with that.</li>
<li>Your running whit a smaller page file than your physical RAM (Quit a big file if you have 48Gb)</li>
</ul>
<br />
<div class="MsoNormal">
They all have in common that you as an admin made choices, and as we all know admins never make bad decisions. So
instead of mannerly disable rules one at the time, you can just disable all and
enable the ones you need.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
To disable all rules just run the script below, this will
disable all rules. To include the SharePoint SnapIn read this <a href="http://torben-rimmer.blogspot.dk/2013/02/adding-sharepoint-powershell-snapins.html">post</a> <o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
If you like, this can be combined with a xml file so you can
disable rules based on this as well. See this <a href="http://torben-rimmer.blogspot.dk/2012/12/activate-features-using-xml-file.html">post</a> to get inspiration. I would recommend using this if your maintaining a large organisation with a lot of environments.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
PowerShell Script:</div>
<div class="MsoNormal">
------------------------------</div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span style="color: darkblue; font-family: "Lucida Console"; font-size: 9.0pt; mso-bidi-font-family: "Lucida Console";">function</span><span style="font-family: "Lucida Console"; font-size: 9.0pt; mso-bidi-font-family: "Lucida Console";"> <span style="color: blueviolet;">main</span><o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span style="font-family: "Lucida Console"; font-size: 9.0pt; mso-bidi-font-family: "Lucida Console";">{<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span style="color: orangered; font-family: "Lucida Console"; font-size: 9.0pt; mso-bidi-font-family: "Lucida Console";">$healthList</span><span style="font-family: "Lucida Console"; font-size: 9.0pt; mso-bidi-font-family: "Lucida Console";"> <span style="color: darkgrey;">=</span> <span style="color: teal;">[Microsoft.SharePoint.Administration.Health.SPHealthRulesList]</span><span style="color: darkgrey;">::</span>Local<span style="color: darkgrey;">.</span>Items<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span style="color: darkblue; font-family: "Lucida Console"; font-size: 9.0pt; mso-bidi-font-family: "Lucida Console";"> foreach</span><span style="font-family: "Lucida Console"; font-size: 9.0pt; mso-bidi-font-family: "Lucida Console";">
(<span style="color: orangered;">$Listitem</span> <span style="color: darkblue;">in</span>
<span style="color: orangered;">$healthList</span>)<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span style="font-family: "Lucida Console"; font-size: 9.0pt; mso-bidi-font-family: "Lucida Console";"> {<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: "Lucida Console"; font-size: 9.0pt; mso-bidi-font-family: "Lucida Console";"> Write-Host</span><span style="font-family: "Lucida Console"; font-size: 9.0pt; mso-bidi-font-family: "Lucida Console";">
<span style="color: navy;">-ForegroundColor</span> <span style="color: blueviolet;">Green</span>
<span style="color: orangered;">$listitem</span><span style="color: darkgrey;">.</span>Id
<span style="color: darkred;">": "</span> <span style="color: navy;">-NoNewline</span><o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span style="color: darkblue; font-family: "Lucida Console"; font-size: 9.0pt; mso-bidi-font-family: "Lucida Console";"> if</span><span style="font-family: "Lucida Console"; font-size: 9.0pt; mso-bidi-font-family: "Lucida Console";">
(<span style="color: orangered;">$Listitem</span><span style="color: darkgrey;">[</span><span style="color: darkred;">"HealthRuleCheckEnabled"</span><span style="color: darkgrey;">]</span> <span style="color: darkgrey;">-ne</span> <span style="color: orangered;">$false</span>)<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span style="font-family: "Lucida Console"; font-size: 9.0pt; mso-bidi-font-family: "Lucida Console";"> {<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: "Lucida Console"; font-size: 9.0pt; mso-bidi-font-family: "Lucida Console";"> Write-Host</span><span style="font-family: "Lucida Console"; font-size: 9.0pt; mso-bidi-font-family: "Lucida Console";">
<span style="color: navy;">-ForegroundColor</span> <span style="color: blueviolet;">Magenta</span>
<span style="color: darkred;">"Disable job"</span><o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span style="color: orangered; font-family: "Lucida Console"; font-size: 9.0pt; mso-bidi-font-family: "Lucida Console";"> $Listitem</span><span style="color: darkgrey; font-family: "Lucida Console"; font-size: 9.0pt; mso-bidi-font-family: "Lucida Console";">[</span><span style="color: darkred; font-family: "Lucida Console"; font-size: 9.0pt; mso-bidi-font-family: "Lucida Console";">"HealthRuleCheckEnabled"</span><span style="color: darkgrey; font-family: "Lucida Console"; font-size: 9.0pt; mso-bidi-font-family: "Lucida Console";">]</span><span style="font-family: "Lucida Console"; font-size: 9.0pt; mso-bidi-font-family: "Lucida Console";"> <span style="color: darkgrey;">=</span> <span style="color: orangered;">$false</span><o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span style="color: orangered; font-family: "Lucida Console"; font-size: 9.0pt; mso-bidi-font-family: "Lucida Console";"> $Listitem</span><span style="color: darkgrey; font-family: "Lucida Console"; font-size: 9.0pt; mso-bidi-font-family: "Lucida Console";">.</span><span style="font-family: "Lucida Console"; font-size: 9.0pt; mso-bidi-font-family: "Lucida Console";">Update()<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span style="font-family: "Lucida Console"; font-size: 9.0pt; mso-bidi-font-family: "Lucida Console";"> }<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span style="color: darkblue; font-family: "Lucida Console"; font-size: 9.0pt; mso-bidi-font-family: "Lucida Console";"> else</span><span style="font-family: "Lucida Console"; font-size: 9.0pt; mso-bidi-font-family: "Lucida Console";"><o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span style="font-family: "Lucida Console"; font-size: 9.0pt; mso-bidi-font-family: "Lucida Console";"> {<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: "Lucida Console"; font-size: 9.0pt; mso-bidi-font-family: "Lucida Console";"> Write-Host</span><span style="font-family: "Lucida Console"; font-size: 9.0pt; mso-bidi-font-family: "Lucida Console";">
<span style="color: navy;">-ForegroundColor</span> <span style="color: blueviolet;">White</span>
<span style="color: blueviolet;">Done</span> <span style="color: navy;">-BackgroundColor</span>
<span style="color: blueviolet;">Black<o:p></o:p></span></span></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span style="color: blueviolet; font-family: "Lucida Console"; font-size: 9.0pt; mso-bidi-font-family: "Lucida Console";"> </span><span style="font-family: "Lucida Console"; font-size: 9.0pt; mso-bidi-font-family: "Lucida Console";">}<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span style="font-family: "Lucida Console"; font-size: 9.0pt; mso-bidi-font-family: "Lucida Console";"> }<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span style="font-family: "Lucida Console"; font-size: 9.0pt; mso-bidi-font-family: "Lucida Console";">}
<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="DA">Have fun with PowerShell </span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
Torben Rimmerhttp://www.blogger.com/profile/07881936404920054966noreply@blogger.com0tag:blogger.com,1999:blog-2259401561951857717.post-39747200777561235342013-03-12T00:46:00.000-07:002013-03-12T01:49:37.803-07:00Sharepoint Document cheked out to I wass asked to make a blog on an topic that was related to the checked out to <none> problem. <br />
<div class="ms-rteThemeForeColor-2-0">
</div>
<div class="ms-rteThemeForeColor-2-0">
When SharePoint gets a deadlock in relation
to Check-In/Check-Out situation it is due to the state of the CheckOutUserID
field in the AllDocs table.</div>
<br />
<div class="ms-rteThemeForeColor-2-0">
This field is set to -1, which by SharePoint
is interpreted as <none></div>
<br />
<div class="ms-rteThemeForeColor-2-0">
To fix the page and thus be able to check-in
or -out the page the CheckOutUserID must be replaced by an existing UserID from
that particular Site Collection/Web Application.</div>
<br />
<div class="ms-rteThemeForeColor-2-0">
The below SQL script does that, however it
is important, that one item exist in the list in addition to the broken one, as
the ID used in the script below, will be taken from the first item having an ID
different from -1.<br />Alternative Microsoft advice to use the ID "58"</div>
<br />
<div class="ms-rteThemeForeColor-2-0">
Generic script below, only the Database name
is needed prior to running this. </div>
<br />
<div class="ms-rteThemeForeColor-2-0">
<div>
<span style="color: blue; font-family: "courier new"; font-size: 10pt;">USE</span><span style="font-family: "courier new"; font-size: 10pt;">
[Portal_XXX_content]</span></div>
<div>
<span style="color: blue; font-family: "courier new"; font-size: 10pt;">GO</span></div>
<div>
<span style="color: blue; font-family: "courier new"; font-size: 10pt;"> </span></div>
<div>
<span style="color: blue; font-family: "courier new"; font-size: 10pt;">BEGIN</span><span style="font-family: "courier new"; font-size: 10pt;"> <span style="color: blue;">TRY</span></span></div>
<div>
<span style="font-family: "courier new"; font-size: 10pt;">
<span style="color: blue;">BEGIN</span> <span style="color: blue;">TRANSACTION</span></span></div>
<div>
<span style="font-family: "courier new"; font-size: 10pt;">
</span></div>
<div>
<span style="font-family: "courier new"; font-size: 10pt;">
<span style="color: green;">-- Check if any documents checked out with an
invalid status</span></span></div>
<div>
<span style="font-family: "courier new"; font-size: 10pt;">
<span style="color: blue;">IF </span><span style="color: grey;">(</span><span style="color: blue;">SELECT</span> <span style="color: magenta;">COUNT</span><span style="color: grey;">(*)</span></span></div>
<div>
<span style="font-family: "courier new"; font-size: 10pt;">
<span style="color: blue;">FROM</span> AllDocs<span style="color: blue;">
</span><span style="color: grey;">(</span><span style="color: blue;">NOLOCK</span><span style="color: grey;">)</span></span></div>
<div>
<span style="font-family: "courier new"; font-size: 10pt;">
<span style="color: blue;">WHERE</span> CheckoutUserId <span style="color: grey;">=</span> <span style="color: grey;">-</span>1<span style="color: grey;">)</span> <span style="color: grey;"><=</span>
0</span></div>
<div>
<span style="font-family: "courier new"; font-size: 10pt;">
<span style="color: blue;">BEGIN</span></span></div>
<div>
<span style="font-family: "courier new"; font-size: 10pt;">
<span style="color: blue;">PRINT</span> <span style="color: red;">'INFO: No
document checked out with invalid user id (-1)'</span></span></div>
<div>
<span style="font-family: "courier new"; font-size: 10pt;">
<span style="color: blue;">END</span></span></div>
<div>
<span style="font-family: "courier new"; font-size: 10pt;">
<span style="color: blue;">ELSE</span></span></div>
<div>
<span style="font-family: "courier new"; font-size: 10pt;">
<span style="color: blue;">BEGIN</span></span></div>
<div>
<span style="font-family: "courier new"; font-size: 10pt;">
<span style="color: green;">-- Check if any checked out documents
available</span></span></div>
<div>
<span style="font-family: "courier new"; font-size: 10pt;">
<span style="color: blue;">IF </span><span style="color: grey;">(</span><span style="color: blue;">SELECT</span> <span style="color: magenta;">COUNT</span><span style="color: grey;">(*)</span></span></div>
<div>
<span style="font-family: "courier new"; font-size: 10pt;">
<span style="color: blue;">FROM</span> </span><span style="color: teal; font-family: Consolas; font-size: 13px;">AllDocs</span><span style="font-family: "courier new"; font-size: 10pt;"><span style="color: grey;">(</span><span style="color: blue;">NOLOCK</span><span style="color: grey;">)</span></span></div>
<div>
<span style="font-family: "courier new"; font-size: 10pt;">
<span style="color: blue;">WHERE</span> </span><span style="color: teal; font-family: Consolas; font-size: 13px;">CheckoutUserId</span><span style="font-family: "courier new"; font-size: 10pt;"> </span><span style="font-family: "courier new"; font-size: 10pt;"><span style="color: grey;">IS</span> <span style="color: grey;">NOT</span> <span style="color: grey;">NULL</span> </span></div>
<div>
<span style="font-family: "courier new"; font-size: 10pt;">
<span style="color: grey;">AND</span> </span><span style="color: teal; font-family: Consolas; font-size: 13px;">CheckoutUserId</span><span style="font-family: "courier new"; font-size: 10pt;"> </span><span style="font-family: "courier new"; font-size: 10pt;"><span style="color: grey;">></span> <span style="color: grey;">-</span>1<span style="color: grey;">)</span> <span style="color: grey;"><=</span>
0</span></div>
<div>
<span style="font-family: "courier new"; font-size: 10pt;">
<span style="color: blue;">BEGIN</span></span></div>
<div>
<span style="font-family: "courier new"; font-size: 10pt;">
<span style="color: blue;">PRINT</span> <span style="color: red;">'ERROR:
Nothing checked out so can''t find a valid user ID'</span></span></div>
<div>
<span style="font-family: "courier new"; font-size: 10pt;">
<span style="color: blue;">END</span></span></div>
<div>
<span style="font-family: "courier new"; font-size: 10pt;">
<span style="color: blue;">ELSE</span></span></div>
<div>
<span style="font-family: "courier new"; font-size: 10pt;">
<span style="color: blue;">BEGIN</span></span></div>
<div>
<span style="font-family: "courier new"; font-size: 10pt;">
<span style="color: green;">-- Show documents that has invalid user
id </span></span></div>
<div>
<span style="font-family: "courier new"; font-size: 10pt;">
<span style="color: blue;">SELECT</span> <span style="color: grey;">*</span></span></div>
<div>
<span style="font-family: "courier new"; font-size: 10pt;"><span style="color: blue;"> FROM</span> </span><span style="color: teal; font-family: Consolas; font-size: 13px;">AllDocs</span><span style="font-family: "courier new"; font-size: 10pt;"><span style="color: grey;">(</span><span style="color: blue;">NOLOCK</span><span style="color: grey;">)</span></span></div>
<div>
<span style="font-family: "courier new"; font-size: 10pt;"><span style="color: blue;"> WHERE</span> </span><span style="color: teal; font-family: Consolas; font-size: 13px;">CheckoutUserId</span><span style="font-family: "courier new"; font-size: 10pt;"> </span><span style="font-family: "courier new"; font-size: 10pt;"><span style="color: grey;">=</span> <span style="color: grey;">-</span>1</span></div>
<div>
<span style="font-family: "courier new"; font-size: 10pt;"> </span></div>
<div>
<span style="font-family: "courier new"; font-size: 10pt;"><span style="color: green;"> --Updating sharepoint field [checkoutUserId]
to a value different from -1 </span></span></div>
<div>
<span style="font-family: "courier new"; font-size: 10pt;"><span style="color: blue;"> </span></span><span style="color: magenta; font-family: Consolas; font-size: 13px;">UPDATE</span><span style="font-family: Consolas; font-size: 13px;"> </span><span style="font-family: "courier new"; font-size: 10pt;">[</span><span style="color: teal; font-family: Consolas; font-size: 13px;">AllDocs</span><span style="font-family: "courier new"; font-size: 10pt;">]</span></div>
<div>
<span style="font-family: "courier new"; font-size: 10pt;"><span style="color: blue;"> SET</span> </span><span style="color: teal; font-family: Consolas; font-size: 13px;">CheckoutUserId</span><span style="font-family: "courier new"; font-size: 10pt;"> <span style="color: grey;">=</span><span style="color: blue;"> </span><span style="color: grey;">(</span><span style="color: blue;">SELECT</span> <span style="color: blue;">TOP</span> 1 </span><span style="color: teal; font-family: Consolas; font-size: 13px;">CheckoutUserId</span></div>
<div>
<span style="font-family: "courier new"; font-size: 10pt;"><span style="color: blue;"> FROM</span> [</span><span style="color: teal; font-family: Consolas; font-size: 13px;">AllDocs</span><span style="font-family: "courier new"; font-size: 10pt;">]<span style="color: blue;">
</span><span style="color: grey;">(</span><span style="color: blue;">NOLOCK</span><span style="color: grey;">)</span></span></div>
<div>
<span style="font-family: "courier new"; font-size: 10pt;"><span style="color: blue;"> WHERE</span> </span><span style="color: teal; font-family: Consolas; font-size: 13px;">CheckoutUserId</span><span style="font-family: "courier new"; font-size: 10pt;"> <span style="color: grey;">></span> <span style="color: grey;">-</span>1<span style="color: grey;">)</span></span></div>
<div>
<span style="font-family: "courier new"; font-size: 10pt;">
<span style="color: blue;">WHERE</span> </span><span style="color: teal; font-family: Consolas; font-size: 13px;">CheckoutUserId</span><span style="font-family: "courier new"; font-size: 10pt;"> <span style="color: grey;">=</span> <span style="color: grey;">-</span>1</span><br />
<span style="font-family: "courier new"; font-size: 10pt;"><br /></span>
<br />
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: Consolas; font-size: 9.5pt;">SELECT</span><span style="font-family: Consolas; font-size: 9.5pt;"> <span style="color: grey;">*</span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;"> <span style="color: blue;">FROM</span> <span style="color: teal;">AllUserData</span><span style="color: blue;"> </span><span style="color: grey;">(</span><span style="color: blue;">NOLOCK</span><span style="color: grey;">)</span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;"> <span style="color: blue;">WHERE</span> <span style="color: teal;">tp_CheckoutUserId</span>
<span style="color: grey;">=</span> <span style="color: grey;">-</span>1<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;"> </span><span style="color: green; font-family: Consolas; font-size: 9.5pt;">--Updating
sharepoint field [tp_CheckoutUserId] to a value different from -1</span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;"> <span style="color: magenta;">UPDATE</span> <span style="color: teal;">[AllUserData]</span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;"> <span style="color: blue;">SET</span> <span style="color: teal;">tp_CheckoutUserId</span> <span style="color: grey;">=</span><span style="color: blue;"> </span><span style="color: grey;">(</span><span style="color: blue;">SELECT</span> <span style="color: blue;">TOP</span> 1 <span style="color: teal;">CheckoutUserId</span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;"> <span style="color: blue;">FROM</span> <span style="color: teal;">[AllDocs]</span><span style="color: blue;"> </span><span style="color: grey;">(</span><span style="color: blue;">NOLOCK</span><span style="color: grey;">)</span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;"> <span style="color: blue;">WHERE</span> <span style="color: teal;">CheckoutUserId</span> <span style="color: grey;">></span> <span style="color: grey;">-</span>1<span style="color: grey;">)</span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;"> <span style="color: blue;">WHERE</span> <span style="color: teal;">tp_CheckoutUserId</span>
<span style="color: grey;">=</span> <span style="color: grey;">-</span>1<o:p></o:p></span></div>
</div>
<div>
<span style="font-family: "courier new"; font-size: 10pt;">
<span style="color: blue;">END</span></span></div>
<div>
<span style="font-family: "courier new"; font-size: 10pt;">
<span style="color: blue;">END</span></span></div>
<div>
<span style="font-family: "courier new"; font-size: 10pt;">
<span style="color: green;">--Finish SharePoint update</span></span></div>
<div>
<span style="font-family: "courier new"; font-size: 10pt;">
<span style="color: blue;">PRINT</span> <span style="color: red;">'The
operation completed successfully.'</span></span></div>
<div>
<span style="font-family: "courier new"; font-size: 10pt;">
<span style="color: blue;">COMMIT</span> <span style="color: blue;">TRANSACTION</span></span></div>
<div>
<span style="color: blue; font-family: "courier new"; font-size: 10pt;">END</span><span style="font-family: "courier new"; font-size: 10pt;"> <span style="color: blue;">TRY</span></span></div>
<div>
<span style="color: blue; font-family: "courier new"; font-size: 10pt;"> </span></div>
<div>
<span style="color: blue; font-family: "courier new"; font-size: 10pt;">BEGIN</span><span style="font-family: "courier new"; font-size: 10pt;"> <span style="color: blue;">CATCH</span></span></div>
<div>
<span style="font-family: "courier new"; font-size: 10pt;">
<span style="color: blue;">IF</span> <span style="color: magenta;">XACT_STATE</span><span style="color: grey;">()</span>
<span style="color: grey;"><></span> 0</span></div>
<div>
<span style="font-family: "courier new"; font-size: 10pt;">
<span style="color: blue;">BEGIN</span></span></div>
<div>
<span style="font-family: "courier new"; font-size: 10pt;">
<span style="color: blue;">ROLLBACK</span> <span style="color: blue;">TRANSACTION</span></span></div>
<div>
<span style="font-family: "courier new"; font-size: 10pt;">
<span style="color: blue;">END</span></span></div>
<div>
<span style="font-family: "courier new"; font-size: 10pt;">
<span style="color: blue;">DECLARE</span> @ErrorInfo <span style="color: blue;">NVARCHAR</span><span style="color: grey;">(</span>4000<span style="color: grey;">)</span></span></div>
<div>
<span style="font-family: "courier new"; font-size: 10pt;">
<span style="color: blue;">SELECT</span> @ErrorInfo <span style="color: grey;">=</span> <span style="color: magenta;">ERROR_MESSAGE</span><span style="color: grey;">()</span></span></div>
<div>
<span style="font-family: "courier new"; font-size: 10pt;">
<span style="color: blue;">RAISERROR</span><span style="color: grey;">(</span>@ErrorInfo<span style="color: grey;">,</span> 16<span style="color: grey;">,</span> 1<span style="color: grey;">)</span></span></div>
<div>
<span style="color: blue; font-family: "courier new"; font-size: 10pt; line-height: 115%;">END</span><span style="font-family: "courier new"; font-size: 10pt; line-height: 115%;"> <span style="color: blue;">CATCH</span></span></div>
<div>
</div>
<div>
<span style="font-family: "courier new"; font-size: 10pt; line-height: 115%;"><span style="color: blue;"><span style="color: black;"><br /></span></span></span>
<span style="font-family: "courier new"; font-size: 10pt; line-height: 115%;"><span style="color: blue;"><span style="color: black;">This Solution <u>is</u> supported by Microsoft!</span></span></span></div>
<div>
</div>
</div>
Torben Rimmerhttp://www.blogger.com/profile/07881936404920054966noreply@blogger.com0tag:blogger.com,1999:blog-2259401561951857717.post-60254302657317558982013-03-04T10:33:00.001-08:002013-03-04T10:33:35.764-08:00SharePoint 2013 on Azure<br /><o:p></o:p><br />
<div class="MsoNormal">
So this blog post is about Windows new Azure platform. And will not have any technical contend. But take it as a fun story on me trying to figure out the price for a server on Windows Azure.<br />
<br />
I as a Microsoft Bizspark Partner was looking for an easy
way to set up a new SharePoint 2013 installation on Azure. Just to start a POC on
hosting SharePoint 2013 server. So i went to the portal administration panel to
create my first windows machine, so I could get started. <o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
My first concern was with the size, I should at least start with the
minimums requirements for SharePoint 2013, since I need to present this solution to some customers and need to show that my solution is running fast and problem
free. And also not get in to a discussion about my solution is running on at
testing environment and it of course would be much faster for the customer. So
to find out how big my installation needed to be I went to Microsoft to find
the minimums requirements, just to discover that its good sense and fully lives
up to my expatiation. So for the smallest installation I need 4 CPU and 8GB
RAM, this should be no problem. (I would strongly recommend a larger server) <o:p></o:p></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
http://technet.microsoft.com/en-us/library/cc262485.aspx<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
As a Bizspark Partner I have some benefit regarding Azure as I
can use some servers for free so I can get up and running before I have to pay
for the services I need. And trust me I have no problem with paying for a service. So I
went and signed up for Azure to get started. I thought to myself this is no problem, Microsoft
have this under control so it is just for me to start. And my expectation was correct, under offers I found a link and with no problem I was up and running. This process got me smiling. <o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
So to set up A virtual machine on Azure just go to the
administration portal click the big and easy to find plus sign and pick Virtual
machines (This of course demand that you sign up for the review program first). So I
thought to myself. Microsoft wants all to use SharePoint so they will make this
easy for me. I will just have to pick an image and off I go right.<br />
<br />
But I was
soon to get a lot wiser. First up to choose the Image, just to find that I can choose a SQL image, a windows image even a Linux image, but not a SharePoint image? So I figured out that they properly haven made
this one jet, so I will just need to create this myself. So I picked a clean
windows 2012 server. And then I needed to choose my Virtual machine size. And
then I got a little confused. I could choose from the following sizes.<o:p></o:p></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNGelx1ynUP9tfhoGho93lgQOSQI_JOpkaQIijvSeZOGAEP8egXQL7V0kPgSrpCgfKh6xRBnVMIR-zm9ZyCsgH7p-LUSvfzyiWpuq6vioBBAvBqZDy4Q-OGrCbDUqEBw7OblFT8RC4AIT7/s1600/azure-VM-size.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="155" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNGelx1ynUP9tfhoGho93lgQOSQI_JOpkaQIijvSeZOGAEP8egXQL7V0kPgSrpCgfKh6xRBnVMIR-zm9ZyCsgH7p-LUSvfzyiWpuq6vioBBAvBqZDy4Q-OGrCbDUqEBw7OblFT8RC4AIT7/s1600/azure-VM-size.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="MsoNormal">
Okay not the biggest machines in the world. I can as a bizspark partner choose extra small or small. So to have the
minimums demand in the back of my head, I found that I needed the extra large
server to install a single instance of SharePoint 2013. (BTW why can have a server with 768MB of RAM, that's not even enough to run a decent IIS).<br />
So looking at the largest
instance I can start using being the small server having 1 CPU and 1.75BG RAM it
would be a little hard to get something installed. So okay I thought, to get something up
and running I need to pay for my service. <o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
So to make a simple calculation on what I need to pay, for my
minimum installation. I went to the calculation site to look at some numbers. For
a single SharePoint installation with everything on the same box I need an Extra Large
server, since the Large server with 4 CPU’s only have 7GB RAM. Remembering that
the minimum RAM I need is 8GB.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
After finding out that I needed an Extra Large server, I
wanted to figure out what my monthly bill would be. I navigated to the calculator
and found out that I had to pay. <u>$460,80</u> per month for a single virtual
server to run SharePoint 2013. (I know that I should use Office 365 for Office
installation, and with good sense.) But I wanted to have full control over my
installation and did not want to invest in hardware.<o:p></o:p></div>
<div class="MsoNormal">
<br />
Azure is a good and fast system especial if you are using the "websites, databases or any other service", but in my sense it's not really
mature for a windows installation. Except if you want to pay some
really heavy prices. For my startup
installation, I would need at least two severs one for SharePoint and one for SQL. So
the price would be $921 on a monthly base. That’s a really heavy price to have
as a startup.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
So what is the key learning’s.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Azure is a really good alternative to buying servers yourself, and get
them hosted. But I think the price is a
little high for the machines you need. In my case I would have to spend almost $11.000 per year for two
servers. <o:p></o:p>Can I do this better? Well this depend on how good price I
can get in a hosting company like Rackspace. I can get a decent server for less
than $2.500 that matches the demands for running SharePoint and SQ. So I just need to find a place in the
country to store my servers for about $5.000 a year. Well maybe it’s okay to pay a little more be-course
my servers will hopeful work for more than one year. <o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<span style="font-family: "Calibri","sans-serif"; font-size: 11.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">So what will I do. Am not sure, I might call up
Microsoft and ask if they can raise the number of RAM in there large server,
this way it will support most of the applications for a little less on monthly base.</span><br />
<span style="font-family: "Calibri","sans-serif"; font-size: 11.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">Else I will go and figure out on how to use O365 and SharePoint 2013.</span><br />
Torben Rimmerhttp://www.blogger.com/profile/07881936404920054966noreply@blogger.com2tag:blogger.com,1999:blog-2259401561951857717.post-15302179335822794862013-02-28T10:36:00.002-08:002013-02-28T11:04:35.308-08:00Error on UserProfileManager and a funny SiteSubscriptionId<br />
<div class="MsoNormal">
<span style="color: #222222; font-family: "Segoe UI","sans-serif"; font-size: 11.5pt; line-height: 115%;">So I was struggling a little bit with an
old PowerShell script to import pictures to the user profiles on our Intranet.
The script was not working and I need to figure out what went wrong. <o:p></o:p></span></div>
<div class="MsoNormal">
<span style="color: #222222; font-family: "Segoe UI","sans-serif"; font-size: 11.5pt; line-height: 115%;">So the script is well documented on various
forums, so that should be no big deal in getting this to work. So I went head
first, and in to the pool I went. </span><br />
<span style="color: #222222; font-family: "Segoe UI","sans-serif"; font-size: 11.5pt; line-height: 115%;"></span><br />
<span style="color: #222222; font-family: "Segoe UI","sans-serif"; font-size: 11.5pt; line-height: 115%;">So the script looks like this. <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0pt;">
<span style="color: purple; font-family: Consolas; font-size: 10pt;">$site</span><span style="font-family: Consolas; font-size: 10pt;"> </span><span style="color: red; font-family: Consolas; font-size: 10pt;">=</span><span style="font-family: Consolas; font-size: 10pt;"> Get-SPSite </span><span style="color: purple; font-family: Consolas; font-size: 10pt;">$mySiteUrl</span><span style="font-family: Consolas; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0pt;">
<span style="color: purple; font-family: Consolas; font-size: 10pt;">$context</span><span style="font-family: Consolas; font-size: 10pt;"> </span><span style="color: red; font-family: Consolas; font-size: 10pt;">=</span><span style="font-family: Consolas; font-size: 10pt;"> Get-SPServiceContext
</span><span style="color: purple; font-family: Consolas; font-size: 10pt;">$site</span><span style="font-family: Consolas; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="color: purple; font-family: Consolas; font-size: 10pt; line-height: 115%;">$profileManager</span><span style="font-family: Consolas; font-size: 10pt; line-height: 115%;"> </span><span style="color: red; font-family: Consolas; font-size: 10pt; line-height: 115%;">=</span><span style="font-family: Consolas; font-size: 10pt; line-height: 115%;"> </span><span style="color: cadetblue; font-family: Consolas; font-size: 10pt; line-height: 115%;">New-Object</span><span style="font-family: Consolas; font-size: 10pt; line-height: 115%;"> </span><span style="color: maroon; font-family: Consolas; font-size: 10pt; line-height: 115%;">Microsoft.Office.Server.UserProfiles.UserProfileManager</span><span style="font-family: Consolas; font-size: 10pt; line-height: 115%;">(</span><span style="color: purple; font-family: Consolas; font-size: 10pt; line-height: 115%;">$context</span><span style="font-family: Consolas; font-size: 10pt; line-height: 115%;">)<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Consolas; font-size: 10pt; line-height: 115%;"><br /></span></div>
<div class="MsoNormal">
<span style="color: #222222; font-family: "Segoe UI","sans-serif"; font-size: 11.5pt; line-height: 115%;">So the first part was easy, just getting
the “mysite” URL, Next part to get the mysite service context. Now again quit
easy. But then I had to get the profile manager. Then some problems came up.<br />
So when trying to get the profile manager I got this error when running the
commands manual.<br />
<br />
</span><span style="color: red; font-family: "Segoe UI","sans-serif"; font-size: 8pt; line-height: 115%;">New-Object : Exception calling ".ctor" with "1"
argument(s): "Object reference not set to an instance of an object.” At
line:1 char:29<br />
+ $profileManager = New-Object <<<< Microsoft.Office.Server.UserProfiles.UserProfileManager($context)<br />
+ CategoryInfo : InvalidOperation: (:) [New-Object],
MethodInvocationException<br />
+ FullyQualifiedErrorId :
ConstructorInvokedThrowException,Microsoft.PowerShell.Commands.NewObjectCommand<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="color: #222222; font-family: "Segoe UI","sans-serif"; font-size: 11.5pt; line-height: 115%;"><br /></span></div>
<div class="MsoNormal">
<span style="color: #222222; font-family: "Segoe UI","sans-serif"; font-size: 11.5pt; line-height: 115%;">So this had to be the problem to my
script.<br />
After some quick test I found my context hade a funny SiteSubscriptionId<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="color: #222222; font-family: "Segoe UI","sans-serif"; font-size: 8pt; line-height: 115%;"><br /></span></div>
<div class="MsoNormal">
<span style="color: #222222; font-family: "Segoe UI","sans-serif"; font-size: 8pt; line-height: 115%;">SiteSubscriptionId<br />
------------------<br />
00000000-0000-0000-0000-000000000000<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="color: #222222; font-family: "Segoe UI","sans-serif"; font-size: 11.5pt; line-height: 115%;"><br /></span></div>
<div class="MsoNormal">
<span style="color: #222222; font-family: "Segoe UI","sans-serif"; font-size: 11.5pt; line-height: 115%;">So I found that the SiteSubscriptionId
will always be a blank Guid unless you have multi-tenancy enabled in the
environment, so the problem should be found elsewhere.<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="color: #222222; font-family: "Segoe UI","sans-serif"; font-size: 11.5pt; line-height: 115%;">I my case I found out that the user
running the script was net in the administrators group of the service provider,
so adding the user running the script to the group fixed the problem.<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="color: #222222; font-family: "Segoe UI","sans-serif"; font-size: 11.5pt; line-height: 115%;"><br /></span></div>
<div class="MsoNormal">
<span style="color: #222222; font-family: "Segoe UI","sans-serif"; font-size: 11.5pt; line-height: 115%;">Go to Central Administration =>
Application Management => Manage Service Applications </span></div>
<div class="MsoNormal">
<span style="color: #222222; font-family: "Segoe UI","sans-serif"; font-size: 11.5pt; line-height: 115%;">Highlight the row “User
Profile Service Application”</span></div>
<div style="text-indent: 0px;">
<span style="font-size: 11.5pt; line-height: 115%; text-indent: -0.25in;"><br /></span>Click the administrators in the ribbon and add the correct user.</div>
<span style="color: #222222; font-family: "Segoe UI","sans-serif"; font-size: 11.5pt; line-height: 115%;">Click the Permissions in the
ribbon and add the correct user<o:p></o:p></span><br />
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
Torben Rimmerhttp://www.blogger.com/profile/07881936404920054966noreply@blogger.com0tag:blogger.com,1999:blog-2259401561951857717.post-56183305531654045722013-02-27T10:59:00.004-08:002013-04-18T01:28:40.489-07:00Speech at jBoyeToday I hold a speech at the one of jBoye network seminar's, on the topic (High availability with SharePoint 2013). A fun presentation as this was my first try on using the Microsoft metro style. <br />
<br />
For the ones that know Danish will be able to read the slides. but your all welcome to leave a comment. <br />
(Please mind that all Saxo Bank specific slides have been removed)<br />
<br />
Slides<br />
<iframe frameborder="0" height="400" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/17056854" width="476"></iframe>
Torben Rimmerhttp://www.blogger.com/profile/07881936404920054966noreply@blogger.com0Nykredit HQ55.66933209698351 12.57475376129150455.667093096983507 12.569711261291504 55.671571096983513 12.579796261291504tag:blogger.com,1999:blog-2259401561951857717.post-73611394021290107782013-02-20T00:35:00.000-08:002013-02-20T00:35:03.016-08:00Adding SharePoint PowerShell snapins<br />
<div class="MsoNormal">
Over time I have seen a lot of ways to add the SharePoint
snapins. So I decided that I would share my point of view on this.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
So a lot of post on the internet is showing various ways to
do this, by as the structure fascist I am, I like to keep things organized. So
I always put my code in functions.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Why?<br /><br /><o:p></o:p></div>
<div class="MsoNormal">
Well first it gives you a nice overview of the code, Always
put your main code in a main function. This way it’s always on the top of your
script. Second. By adding all your code in functions you can call
the reuse then over and over again in your script.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: "Calibri","sans-serif"; font-size: 11.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">It’s
also a good idea to let your script tell you where in the process it is. This
gives you a nice overview over watt you script is doing</span></div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
So how do I add the snapin. <br /><br /><o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: Consolas; font-size: 8.0pt;">function</span><span style="font-family: Consolas; font-size: 8pt;"> </span><span style="color: navy; font-family: Consolas; font-size: 8.0pt;">snapin</span><span style="font-family: Consolas; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 8pt;">{<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: purple; font-family: Consolas; font-size: 8.0pt;">
$spSnapin</span><span style="font-family: Consolas; font-size: 8pt;"> </span><span style="color: red; font-family: Consolas; font-size: 8.0pt;">=</span><span style="font-family: Consolas; font-size: 8pt;"> </span><span style="color: cadetblue; font-family: Consolas; font-size: 8.0pt;">Get-PSSnapin</span><span style="font-family: Consolas; font-size: 8pt;"> | where {</span><span style="color: purple; font-family: Consolas; font-size: 8.0pt;">$_</span><span style="font-family: Consolas; font-size: 8pt;">.Name </span><span style="color: red; font-family: Consolas; font-size: 8.0pt;">-eq</span><span style="font-family: Consolas; font-size: 8pt;"> </span><span style="color: maroon; font-family: Consolas; font-size: 8.0pt;">"Microsoft.SharePoint.PowerShell"</span><span style="font-family: Consolas; font-size: 8pt;">} <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: Consolas; font-size: 8.0pt;"> if</span><span style="font-family: Consolas; font-size: 8pt;">(</span><span style="color: purple; font-family: Consolas; font-size: 8.0pt;">$spSnapin</span><span style="font-family: Consolas; font-size: 8pt;"> </span><span style="color: red; font-family: Consolas; font-size: 8.0pt;">-eq</span><span style="font-family: Consolas; font-size: 8pt;"> </span><span style="color: purple; font-family: Consolas; font-size: 8.0pt;">$null</span><span style="font-family: Consolas; font-size: 8pt;">)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 8pt;">
{<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 8pt;">
</span><span style="color: cadetblue; font-family: Consolas; font-size: 8.0pt;">Add-PSSnapin</span><span style="font-family: Consolas; font-size: 8pt;"> </span><span style="color: maroon; font-family: Consolas; font-size: 8.0pt;">Microsoft.SharePoint.PowerShell</span><span style="font-family: Consolas; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 8pt;">
</span><span style="color: cadetblue; font-family: Consolas; font-size: 8.0pt;">Write-Host</span><span style="font-family: Consolas; font-size: 8pt;"> </span><i><span style="color: cadetblue; font-family: Consolas; font-size: 8.0pt;">-ForegroundColor</span></i><span style="font-family: Consolas; font-size: 8pt;"> </span><span style="color: maroon; font-family: Consolas; font-size: 8.0pt;">"Green"</span><span style="font-family: Consolas; font-size: 8pt;"> </span><i><span style="color: cadetblue; font-family: Consolas; font-size: 8.0pt;">-Object</span></i><span style="font-family: Consolas; font-size: 8pt;"> </span><span style="color: maroon; font-family: Consolas; font-size: 8.0pt;">"SharePoint
PowerShell Snapin loaded"</span><span style="font-family: Consolas; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 8pt;">
}<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: Consolas; font-size: 8.0pt;"> else</span><span style="font-family: Consolas; font-size: 8pt;"> <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 8pt;">
{ <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 8pt;">
</span><span style="color: cadetblue; font-family: Consolas; font-size: 8.0pt;">Write-Host</span><span style="font-family: Consolas; font-size: 8pt;"> </span><i><span style="color: cadetblue; font-family: Consolas; font-size: 8.0pt;">-ForegroundColor</span></i><span style="font-family: Consolas; font-size: 8pt;"> </span><span style="color: maroon; font-family: Consolas; font-size: 8.0pt;">"Gray"</span><span style="font-family: Consolas; font-size: 8pt;"> </span><i><span style="color: cadetblue; font-family: Consolas; font-size: 8.0pt;">-Object</span></i><span style="font-family: Consolas; font-size: 8pt;"> </span><span style="color: maroon; font-family: Consolas; font-size: 8.0pt;">"SharePoint
PowerShell Snapin already loaded"</span><span style="font-family: Consolas; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 8pt;">
}<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 8pt;">}<o:p></o:p></span></div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
So
after adding this function I call this function just before I call the main
function. My structure will always look like this. <o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: Consolas; font-size: 8.0pt;"><br />function</span><span style="font-family: Consolas; font-size: 8pt;"> </span><span style="color: navy; font-family: Consolas; font-size: 8.0pt;">main</span><span style="font-family: Consolas; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: Consolas; font-size: 8.0pt;">function</span><span style="font-family: Consolas; font-size: 8pt;"> </span><span style="color: navy; font-family: Consolas; font-size: 8.0pt;">snapin<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: navy; font-family: Consolas; font-size: 8.0pt;">snapin<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: navy; font-family: Consolas; font-size: 8.0pt;">main<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: #00b050; font-family: Consolas; font-size: 8.0pt;"># end of script<o:p></o:p></span></div>
Torben Rimmerhttp://www.blogger.com/profile/07881936404920054966noreply@blogger.com0tag:blogger.com,1999:blog-2259401561951857717.post-80331905959458975962013-02-13T04:37:00.001-08:002013-02-13T06:38:35.568-08:00Adding December 2012 CU to the Codeplex AutoSPInstaller<br />
<div class="MsoNormal">
After struggling with the slipstreaming problem that Microsoft
has introduced after June 2012 CU. I decided to embed this update function to
the script itself. This also gives the flexibility to add future updates to the
script without using the slipstream functionality.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
The function is quit strait forward, just add the unattended
install line to a function and call this function after the language pack
install. You need to make a folder called "Hotfixes" inside the SharePoint bits folder, and place the update there.<br />
<br />
For more information on the AutoSPInstaller from codeplex follow this link.<br />
<a href="http://autospinstaller.codeplex.com/">http://autospinstaller.codeplex.com/ </a> <o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Here is the function to add<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: Consolas; font-size: 9.0pt;">#region</span><span style="font-family: Consolas; font-size: 9pt;"> Install CU updates<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: green; font-family: Consolas; font-size: 9.0pt;">#
===================================================================================<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: green; font-family: Consolas; font-size: 9.0pt;"># Func: Install SharePoint CU's<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: green; font-family: Consolas; font-size: 9.0pt;"># Desc: Installs the SharePoint
collumutive update in unattended mode<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: green; font-family: Consolas; font-size: 9.0pt;">#
===================================================================================<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: Consolas; font-size: 9.0pt;">function</span><span style="font-family: Consolas; font-size: 9pt;"> </span><span style="color: navy; font-family: Consolas; font-size: 9.0pt;">InstallCu</span><span style="font-family: Consolas; font-size: 9pt;">()<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9pt;">{<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9pt;">
</span><span style="color: blue; font-family: Consolas; font-size: 9.0pt;">if</span><span style="font-family: Consolas; font-size: 9pt;">(</span><span style="color: red; font-family: Consolas; font-size: 9.0pt;">!</span><span style="font-family: Consolas; font-size: 9pt;">(</span><span style="color: cadetblue; font-family: Consolas; font-size: 9.0pt;">test-path</span><span style="font-family: Consolas; font-size: 9pt;"> </span><i><span style="color: cadetblue; font-family: Consolas; font-size: 9.0pt;">-path</span></i><span style="font-family: Consolas; font-size: 9pt;"> </span><span style="color: purple; font-family: Consolas; font-size: 9.0pt;">$SPbits</span><span style="font-family: Consolas; font-size: 9pt;">\Hotfixes)){</span><span style="color: cadetblue; font-family: Consolas; font-size: 9.0pt;">Write-Host</span><span style="font-family: Consolas; font-size: 9pt;"> </span><span style="color: maroon; font-family: Consolas; font-size: 9.0pt;">"You do not have
an hotfix folder"</span><span style="font-family: Consolas; font-size: 9pt;">; </span><span style="color: blue; font-family: Consolas; font-size: 9.0pt;">return</span><span style="font-family: Consolas; font-size: 9pt;">}<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: purple; font-family: Consolas; font-size: 9.0pt;">
$Media</span><span style="font-family: Consolas; font-size: 9pt;"> </span><span style="color: red; font-family: Consolas; font-size: 9.0pt;">=</span><span style="font-family: Consolas; font-size: 9pt;"> </span><span style="color: cadetblue; font-family: Consolas; font-size: 9.0pt;">Get-ChildItem</span><span style="font-family: Consolas; font-size: 9pt;"> </span><span style="color: purple; font-family: Consolas; font-size: 9.0pt;">$SPbits</span><span style="font-family: Consolas; font-size: 9pt;">\Hotfixes | where {</span><span style="color: purple; font-family: Consolas; font-size: 9.0pt;">$_</span><span style="font-family: Consolas; font-size: 9pt;">.Extension </span><span style="color: red; font-family: Consolas; font-size: 9.0pt;">-eq</span><span style="font-family: Consolas; font-size: 9pt;"> </span><span style="color: maroon; font-family: Consolas; font-size: 9.0pt;">".exe"</span><span style="font-family: Consolas; font-size: 9pt;">} | </span><span style="color: cadetblue; font-family: Consolas; font-size: 9.0pt;">sort-object</span><span style="font-family: Consolas; font-size: 9pt;"> </span><span style="color: purple; font-family: Consolas; font-size: 9.0pt;">$_</span><span style="font-family: Consolas; font-size: 9pt;">.Name<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9pt;"> <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: Consolas; font-size: 9.0pt;"> if</span><span style="font-family: Consolas; font-size: 9pt;">(</span><span style="color: purple; font-family: Consolas; font-size: 9.0pt;">$Media</span><span style="font-family: Consolas; font-size: 9pt;"> </span><span style="color: red; font-family: Consolas; font-size: 9.0pt;">-eq</span><span style="font-family: Consolas; font-size: 9pt;"> </span><span style="color: purple; font-family: Consolas; font-size: 9.0pt;">$null</span><span style="font-family: Consolas; font-size: 9pt;">){</span><span style="color: cadetblue; font-family: Consolas; font-size: 9.0pt;">write-host</span><span style="font-family: Consolas; font-size: 9pt;"> </span><span style="color: maroon; font-family: Consolas; font-size: 9.0pt;">"There is now
(Cu).exe files in the Hotfix folder"</span><span style="font-family: Consolas; font-size: 9pt;">; </span><span style="color: blue; font-family: Consolas; font-size: 9.0pt;">return</span><span style="font-family: Consolas; font-size: 9pt;"> }<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: Consolas; font-size: 9.0pt;">
foreach</span><span style="font-family: Consolas; font-size: 9pt;">(</span><span style="color: purple; font-family: Consolas; font-size: 9.0pt;">$InstallationFile</span><span style="font-family: Consolas; font-size: 9pt;"> </span><span style="color: blue; font-family: Consolas; font-size: 9.0pt;">in</span><span style="font-family: Consolas; font-size: 9pt;"> </span><span style="color: purple; font-family: Consolas; font-size: 9.0pt;">$Media</span><span style="font-family: Consolas; font-size: 9pt;">)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9pt;"> </span><span style="color: cadetblue; font-family: Consolas; font-size: 9.0pt;">Write-Host</span><span style="font-family: Consolas; font-size: 9pt;"> </span><span style="color: maroon; font-family: Consolas; font-size: 9.0pt;">"Installing:"</span><span style="font-family: Consolas; font-size: 9pt;"> </span><span style="color: purple; font-family: Consolas; font-size: 9.0pt;">$InstallationFile</span><span style="font-family: Consolas; font-size: 9pt;">.Name<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9pt;"> </span><span style="color: purple; font-family: Consolas; font-size: 9.0pt;">$InstallStart</span><span style="font-family: Consolas; font-size: 9pt;"> </span><span style="color: red; font-family: Consolas; font-size: 9.0pt;">=</span><span style="font-family: Consolas; font-size: 9pt;"> </span><span style="color: cadetblue; font-family: Consolas; font-size: 9.0pt;">Get-Date</span><span style="font-family: Consolas; font-size: 9pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9pt;"> t</span><span style="color: blue; font-family: Consolas; font-size: 9.0pt;">ry</span><span style="font-family: Consolas; font-size: 9pt;"> <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9pt;"> {<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9pt;"> . </span><span style="color: purple; font-family: Consolas; font-size: 9.0pt;">$SPbits</span><span style="font-family: Consolas; font-size: 9pt;">\Hotfixes\</span><span style="color: purple; font-family: Consolas; font-size: 9.0pt;">$InstallationFile</span><span style="font-family: Consolas; font-size: 9pt;"> /passive /log:</span><span style="color: purple; font-family: Consolas; font-size: 9.0pt;">$CurrentPath</span><span style="font-family: Consolas; font-size: 9pt;">\Logs\</span><span style="color: purple; font-family: Consolas; font-size: 9.0pt;">$InstallationFile</span><span style="font-family: Consolas; font-size: 9pt;">.Name.txt | </span><span style="color: cadetblue; font-family: Consolas; font-size: 9.0pt;">out-null</span><span style="font-family: Consolas; font-size: 9pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9pt;"> }<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9pt;"> </span><span style="color: blue; font-family: Consolas; font-size: 9.0pt;">catch</span><span style="font-family: Consolas; font-size: 9pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9pt;"> {<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9pt;"> </span><span style="color: blue; font-family: Consolas; font-size: 9.0pt;">Throw</span><span style="font-family: Consolas; font-size: 9pt;"> </span><span style="color: maroon; font-family: Consolas; font-size: 9.0pt;">"- Installation of CU failed"</span><span style="font-family: Consolas; font-size: 9pt;"> <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9pt;"> }<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9pt;">
}<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: cadetblue; font-family: Consolas; font-size: 9.0pt;">
Write-host</span><span style="font-family: Consolas; font-size: 9pt;"> </span><span style="color: maroon; font-family: Consolas; font-size: 9.0pt;">" The installation of CU completed"</span><span style="font-family: Consolas; font-size: 9pt;"> <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9pt;">}<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="color: blue; font-family: Consolas; font-size: 9.0pt; line-height: 115%;">#endregion</span> <o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Notes:<o:p></o:p></div>
<div class="MsoNormal">
More info on using the slipstreaming read this post made by Todd.<o:p></o:p></div>
<div class="MsoNormal">
<a href="http://www.toddklindt.com/blog/Lists/Posts/Post.aspx?ID=295">http://www.toddklindt.com/blog/Lists/Posts/Post.aspx?ID=295</a><o:p></o:p></div>
Torben Rimmerhttp://www.blogger.com/profile/07881936404920054966noreply@blogger.com0tag:blogger.com,1999:blog-2259401561951857717.post-70848210379348211672013-02-08T06:07:00.002-08:002013-02-08T06:07:56.348-08:00#ESPC2013
<br />
I went to the conference for some inspiration and to hear a lot of great community
MVP’s talk about all the new stuff in SharePoint 2013. <o:p></o:p><br />
<br />
I will post some more comments and lessons learned later. <o:p></o:p><br />
Torben Rimmerhttp://www.blogger.com/profile/07881936404920054966noreply@blogger.com0tag:blogger.com,1999:blog-2259401561951857717.post-66718624273211995012013-01-15T05:43:00.000-08:002013-01-15T05:43:08.935-08:00How to create a emergincy website for mulible DNS's using PowershellOkay, There is a lot of ways to ad a IIS site using Powershell so this is defently not the ultimate guide to set it up.<br />
I will in this guide not use the IIS powershell snapin. This is becource this snapin dos not come out of the box when you nstall IIS7 (windows 2008 or 2008R2).<br />
So how to create a script, that create a website.<br />
<br />
Well the first thing we need to do is to make a folder to hold our website. This would nomaly be in the Inetpub folder, but it can also be placed in a more decired path.<br />
<br />
The powershell command for creating a folder in powershell where $FPath is the folder path.<br />
<b><span style="color: cadetblue; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">New-Item</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">
</span><i><span style="color: cadetblue; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">-Path</span></i><span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%;"> </span><span style="color: purple; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">$FPath</span><span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">
-type </span><span style="color: maroon; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">Directory</span><o:p></o:p><br />
<br />
To find out if the parth allready exists use this line, The command return $true or $false.<br />
<span style="color: purple; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">$FolderPath</span><span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">=</span><span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">
</span><span style="color: cadetblue; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">Exists-Dir</span><span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%;"> </span><span style="color: purple; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">$FPath</span><o:p></o:p><br />
<br />
Togetter it could look like this
<br />
<div class="MsoNormal" style="margin: 0in 0in 10pt;">
<span style="color: purple; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">$FolderPath</span><span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">=</span><span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">
</span><span style="color: cadetblue; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">Exists-Dir</span><span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%;"> </span><span style="color: purple; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">$FPath<br />
</span><span style="color: blue; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">if</span><span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%;"> (</span><span style="color: purple; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">$FolderPath</span><span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">
</span><span style="color: red; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">-ne</span><span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%;"> </span><span style="color: purple; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">$true</span><span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">){</span><b><span style="color: cadetblue; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">
New-Item</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%;"> </span><i><span style="color: cadetblue; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">-Path</span></i><span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">
</span><span style="color: purple; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">$FPath</span><span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%;"> -type </span><span style="color: maroon; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">Directory</span><span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">}</span><o:p></o:p></div>
<br />
So now that we have created a folder, we can move on to create a application pool in IIS7. To create this web application we need to import the webapplication modules to modify IIS objects. If you have the IIS snapin installed the server don't import this sanpin. To import the module add this to the first line in the script.<br />
<b><span style="color: cadetblue; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">import-module</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">
</span><span style="color: maroon; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">WebAdministration</span><o:p></o:p><br />
<br />
This will add some new methods to your powershell console. for more information on these please visit: <br />
<br />
After we have these methods awalieble we can start manipulating the IIS. To create a weapplication we will use this command where $AppPoolName is the name for the application pool.<br />
<b><span style="color: cadetblue; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">New-WebAppPool</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">
</span><i><span style="color: cadetblue; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">-Name</span></i><span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%;"> </span><span style="color: purple; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">$AppPoolName</span><o:p></o:p><br />
<br />
To check if this application pool allready exists, we can use the check status. this will retur a nice ugly error if its not there :o) (Okay I know its a cruel way) but by adding the erroraction silentcontinue we dont have to see it.<br />
<span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%;"> </span><span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">
</span><b><span style="color: cadetblue; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">Get-WebAppPoolState</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%;"> </span><i><span style="color: cadetblue; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">-Name</span></i><span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">
</span><span style="color: purple; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">$AppPoolName</span><span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%;"><br /> </span><i><span style="color: cadetblue; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">-ErrorAction </span></i><span style="color: maroon; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">SilentlyContinue</span><br />
<span style="color: maroon; font-family: Courier New; font-size: x-small;"></span><br />
<span style="color: black; font-family: Times New Roman; font-size: small;">
So to put this together we get this.</span><br />
<span style="color: black; font-family: Times New Roman; font-size: small;">
</span><span style="color: purple; font-family: "Courier New"; font-size: 10pt;">$webapp</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10pt;">=</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: cadetblue; font-family: "Courier New"; font-size: 10pt;">Get-WebAppPoolState</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><i><span style="color: cadetblue; font-family: "Courier New"; font-size: 10pt;">-Name</span></i><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: purple; font-family: "Courier New"; font-size: 10pt;">$AppPoolName</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> <br /> </span><i><span style="color: cadetblue; font-family: "Courier New"; font-size: 10pt;">-ErrorAction</span></i><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: maroon; font-family: "Courier New"; font-size: 10pt;">SilentlyContinue</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"><o:p></o:p></span><br />
<span style="color: black; font-family: Times New Roman; font-size: small;">
</span><span style="color: blue; font-family: "Courier New"; font-size: 10pt;">if</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> (</span><span style="color: red; font-family: "Courier New"; font-size: 10pt;">-not</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: purple; font-family: "Courier New"; font-size: 10pt;">$webapp</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;">)<o:p></o:p></span><br />
<span style="color: black; font-family: Times New Roman; font-size: small;">
</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;">{<o:p></o:p></span><br />
<span style="color: black; font-family: Times New Roman; font-size: small;">
</span><b><span style="color: cadetblue; font-family: "Courier New"; font-size: 10pt;">New-WebAppPool</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><i><span style="color: cadetblue; font-family: "Courier New"; font-size: 10pt;">-Name</span></i><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: purple; font-family: "Courier New"; font-size: 10pt;">$AppPoolName</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><br />
<div class="MsoNormal" style="margin: 0in 0in 10pt;">
<span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">}</span><o:p></o:p></div>
<span style="color: black; font-family: Times New Roman; font-size: small;">
</span><br />
<span style="color: black; font-family: Times New Roman; font-size: small;">So now we are ready to make the website. This can be made by using this command.</span><br />
<b><span style="color: cadetblue; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">New-Website</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">
</span><i><span style="color: cadetblue; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">-ApplicationPool</span></i><span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%;"> </span><span style="color: purple; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">$AppPoolName</span><span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">
<br /> </span><i><span style="color: cadetblue; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">-Name</span></i><span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%;"> </span><span style="color: purple; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">$SiteName</span><span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">
</span><i><span style="color: cadetblue; font-family: "Courier New"; font-size: 10pt; line-height: 115%;"></span></i><br />
<i><span style="color: cadetblue; font-family: "Courier New"; font-size: 10pt; line-height: 115%;"> -HostHeader</span></i><span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%;"> </span><span style="color: purple; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">$SiteName</span><span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">
</span><i><span style="color: cadetblue; font-family: "Courier New"; font-size: 10pt; line-height: 115%;"><br /> -PhysicalPath</span></i><span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%;"> </span><span style="color: purple; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">$FPath</span><span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">
</span><i><span style="color: cadetblue; font-family: "Courier New"; font-size: 10pt; line-height: 115%;"><br /> -Port</span></i><span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%;"> 80</span><o:p></o:p><br />
<span style="color: black; font-family: Times New Roman; font-size: small;">
</span><br />
<span style="color: black; font-family: Times New Roman; font-size: small;">And to check if the site exists use this command</span><br />
<span style="color: black; font-family: Times New Roman; font-size: small;">
</span><span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%;"> </span><span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">
</span><b><span style="color: cadetblue; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">Get-Website</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%;"> | </span><b><span style="color: cadetblue; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">Where</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">
{</span><span style="color: purple; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">$_</span><span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">.Name </span><span style="color: red; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">-eq</span><span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">
</span><span style="color: purple; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">$SiteName</span><span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">};</span><o:p></o:p><br />
<span style="color: black; font-family: Times New Roman; font-size: small;">
</span><br />
Bringing this together and creating a site could look like this.<br />
<span style="color: purple; font-family: "Courier New"; font-size: 10pt;">$website</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10pt;">=</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: cadetblue; font-family: "Courier New"; font-size: 10pt;">Get-Website</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> | </span><b><span style="color: cadetblue; font-family: "Courier New"; font-size: 10pt;">Where</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> {</span><span style="color: purple; font-family: "Courier New"; font-size: 10pt;">$_</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;">.Name </span><span style="color: red; font-family: "Courier New"; font-size: 10pt;">-eq</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: purple; font-family: "Courier New"; font-size: 10pt;">$SiteName</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;">};<o:p></o:p></span><br />
<span style="color: blue; font-family: "Courier New"; font-size: 10pt;">if</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> (</span><span style="color: red; font-family: "Courier New"; font-size: 10pt;">-not</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: purple; font-family: "Courier New"; font-size: 10pt;">$website</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;">)<o:p></o:p></span><br />
<span style="color: black; font-family: "Courier New"; font-size: 10pt;">{<o:p></o:p></span><br />
<span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span style="mso-tab-count: 1;"> </span></span><b><span style="color: cadetblue; font-family: "Courier New"; font-size: 10pt;">New-Website</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><i><span style="color: cadetblue; font-family: "Courier New"; font-size: 10pt;">-ApplicationPool</span></i><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: purple; font-family: "Courier New"; font-size: 10pt;">$AppPoolName</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> <br /> </span><i><span style="color: cadetblue; font-family: "Courier New"; font-size: 10pt;">-Name</span></i><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: purple; font-family: "Courier New"; font-size: 10pt;">$SiteName</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> <br /> </span><i><span style="color: cadetblue; font-family: "Courier New"; font-size: 10pt;">-HostHeader</span></i><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: purple; font-family: "Courier New"; font-size: 10pt;">$SiteName</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> <br /> </span><i><span style="color: cadetblue; font-family: "Courier New"; font-size: 10pt;">-PhysicalPath</span></i><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: purple; font-family: "Courier New"; font-size: 10pt;">$FPath</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><br />
<span style="font-family: Courier New;"><span style="font-size: x-small;"> <i><span style="color: cadetblue; font-size: 10pt;">-Port</span></i><span style="color: black; font-size: 10pt;"> 80<o:p></o:p></span></span></span><br />
<span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">}</span><o:p></o:p><br />
<br />
So now that we have created the site, its time to add bindings. For multible bindings I have created a xml file, holding all the bindings. Please note that the simple module give no method to check for a binding. This is why this script delete all bindings and adds them again.<br />
Note: You need to ad the primary binding (ex. <a href="http://www.yoursite.com/">www.yoursite.com</a>) in the bottom of the xml file. <br />
<br />
Here is the compleate function to add bindings.<br />
<span style="color: cadetblue; font-family: Courier New; font-size: x-small;"><span style="color: cadetblue; font-family: Courier New; font-size: x-small;"><span style="color: cadetblue; font-family: Courier New; font-size: x-small;"></span></span></span><br />
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="color: blue; font-family: "Courier New"; font-size: 10pt;">function</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: cadetblue; font-family: "Courier New"; font-size: 10pt;">AddBindings</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"><o:p></o:p></span></div>
<span style="color: black; font-family: "Courier New"; font-size: 10pt;">{<o:p></o:p></span><br />
<span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span style="mso-tab-count: 1;"> </span></span><span style="color: purple; font-family: "Courier New"; font-size: 10pt;">$BindingsXMLFile</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10pt;">=</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: purple; font-family: "Courier New"; font-size: 10pt;">$dp0</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10pt;">+</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: maroon; font-family: "Courier New"; font-size: 10pt;">"\Bindings.xml"</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"><o:p></o:p></span><br />
<span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span style="mso-tab-count: 1;"> </span>[</span><span style="color: teal; font-family: "Courier New"; font-size: 10pt;">xml</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;">]</span><span style="color: purple; font-family: "Courier New"; font-size: 10pt;">$BindingsConfig</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10pt;">=</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> [</span><span style="color: teal; font-family: "Courier New"; font-size: 10pt;">xml</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;">](</span><b><span style="color: cadetblue; font-family: "Courier New"; font-size: 10pt;">Get-Content</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: purple; font-family: "Courier New"; font-size: 10pt;">$BindingsXMLFile</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;">)<o:p></o:p></span><br />
<span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span style="mso-tab-count: 1;"> </span></span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span style="mso-tab-count: 1;"> </span></span><span style="color: blue; font-family: "Courier New"; font-size: 10pt;">if</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> (</span><span style="color: red; font-family: "Courier New"; font-size: 10pt;">-not</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: purple; font-family: "Courier New"; font-size: 10pt;">$BindingsConfig</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;">)<o:p></o:p></span><br />
<span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span style="mso-tab-count: 1;"> </span>{<o:p></o:p></span><br />
<span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span style="mso-tab-count: 2;"> </span></span><b><span style="color: cadetblue; font-family: "Courier New"; font-size: 10pt;">Write-Host</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: maroon; font-family: "Courier New"; font-size: 10pt;">"-
Bindings configuration file does not exist."</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"><o:p></o:p></span><br />
<span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span style="mso-tab-count: 2;"> </span></span><span style="color: blue; font-family: "Courier New"; font-size: 10pt;">break</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> 1<o:p></o:p></span><br />
<span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span style="mso-tab-count: 1;"> </span>}<o:p></o:p></span><br />
<span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span style="mso-tab-count: 1;"> </span></span><span style="color: blue; font-family: "Courier New"; font-size: 10pt;">else</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"><o:p></o:p></span><br />
<span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span style="mso-tab-count: 1;"> </span>{<o:p></o:p></span><br />
<span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span style="mso-tab-count: 2;"> </span></span><span style="color: purple; font-family: "Courier New"; font-size: 10pt;">$SiteBindings</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10pt;">=</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: cadetblue; font-family: "Courier New"; font-size: 10pt;">Get-WebBinding</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><i><span style="color: cadetblue; font-family: "Courier New"; font-size: 10pt;">-Name</span></i><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: purple; font-family: "Courier New"; font-size: 10pt;">$SiteName</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"><o:p></o:p></span><br />
<span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span style="mso-tab-count: 2;"> </span></span><span style="color: blue; font-family: "Courier New"; font-size: 10pt;">if</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> (</span><span style="color: purple; font-family: "Courier New"; font-size: 10pt;">$SiteBindings</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;">)<o:p></o:p></span><br />
<span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span style="mso-tab-count: 2;"> </span>{<o:p></o:p></span><br />
<span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span style="mso-tab-count: 3;"> </span></span><span style="color: blue; font-family: "Courier New"; font-size: 10pt;">foreach</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> (</span><span style="color: purple; font-family: "Courier New"; font-size: 10pt;">$bind</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: blue; font-family: "Courier New"; font-size: 10pt;">in</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: purple; font-family: "Courier New"; font-size: 10pt;">$SiteBindings</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;">)<o:p></o:p></span><br />
<span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span style="mso-tab-count: 3;"> </span>{<o:p></o:p></span><br />
<span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span style="mso-tab-count: 4;"> </span></span><b><span style="color: cadetblue; font-family: "Courier New"; font-size: 10pt;">Remove-WebBinding</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><i><span style="color: cadetblue; font-family: "Courier New"; font-size: 10pt;">-Name</span></i><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: purple; font-family: "Courier New"; font-size: 10pt;">$SiteName</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> <br /> </span><i><span style="color: cadetblue; font-family: "Courier New"; font-size: 10pt;">-BindingInformation</span></i><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: purple; font-family: "Courier New"; font-size: 10pt;">$bind</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;">.BindingInformation<o:p></o:p></span><br />
<span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span style="mso-tab-count: 3;"> </span>}<o:p></o:p></span><br />
<span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span style="mso-tab-count: 2;"> </span>}<o:p></o:p></span><br />
<span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span style="mso-tab-count: 1;"> </span><o:p></o:p></span><br />
<span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span style="mso-tab-count: 2;"> </span></span><span style="color: purple; font-family: "Courier New"; font-size: 10pt;">$BindingsEnabled</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10pt;">=</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: purple; font-family: "Courier New"; font-size: 10pt;">$BindingsConfig</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;">.SelectNodes(</span><span style="color: maroon; font-family: "Courier New"; font-size: 10pt;">"DeploymentConfig/Bindings/Binding"</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;">) | </span><b><span style="color: cadetblue; font-family: "Courier New"; font-size: 10pt;">where</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> {</span><span style="color: purple; font-family: "Courier New"; font-size: 10pt;">$_</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;">.Enable<span style="mso-spacerun: yes;"> </span></span><span style="color: red; font-family: "Courier New"; font-size: 10pt;">-ieq</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: maroon; font-family: "Courier New"; font-size: 10pt;">"True"</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;">}<o:p></o:p></span><br />
<span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span style="mso-tab-count: 2;"> </span></span><span style="color: blue; font-family: "Courier New"; font-size: 10pt;">if</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> (</span><span style="color: purple; font-family: "Courier New"; font-size: 10pt;">$BindingsEnabled</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;">)<o:p></o:p></span><br />
<span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span style="mso-tab-count: 2;"></span> {<o:p></o:p></span><br />
<span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span style="mso-tab-count: 3;"> </span></span><span style="color: blue; font-family: "Courier New"; font-size: 10pt;">foreach</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> (</span><span style="color: purple; font-family: "Courier New"; font-size: 10pt;">$binding</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: blue; font-family: "Courier New"; font-size: 10pt;">in</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: purple; font-family: "Courier New"; font-size: 10pt;">$BindingsEnabled</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;">)<o:p></o:p></span><br />
<span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span style="mso-tab-count: 3;"> </span>{<o:p></o:p></span><br />
<span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span style="mso-tab-count: 4;"> </span></span><span style="color: purple; font-family: "Courier New"; font-size: 10pt;">$BindingHostName</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10pt;">=</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: purple; font-family: "Courier New"; font-size: 10pt;">$binding</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;">.Hostname<o:p></o:p></span><br />
<span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span style="mso-tab-count: 4;"> </span></span><span style="color: purple; font-family: "Courier New"; font-size: 10pt;">$BindingPort</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10pt;">=</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: purple; font-family: "Courier New"; font-size: 10pt;">$binding</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;">.Port<o:p></o:p></span><br />
<span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span style="mso-tab-count: 4;"> </span></span><b><span style="color: cadetblue; font-family: "Courier New"; font-size: 10pt;">New-WebBinding</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><i><span style="color: cadetblue; font-family: "Courier New"; font-size: 10pt;">-Name</span></i><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: purple; font-family: "Courier New"; font-size: 10pt;">$SiteName</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> <br /> </span><i><span style="color: cadetblue; font-family: "Courier New"; font-size: 10pt;">-HostHeader</span></i><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: purple; font-family: "Courier New"; font-size: 10pt;">$BindingHostName</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"><br /> </span><i><span style="color: cadetblue; font-family: "Courier New"; font-size: 10pt;">-Port</span></i><span style="color: black; font-family: "Courier New"; font-size: 10pt;"></span><span style="color: purple; font-family: "Courier New"; font-size: 10pt;"> $BindingPort</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><i><span style="color: cadetblue; font-family: "Courier New"; font-size: 10pt;"><br /> -ErrorAction</span></i><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: maroon; font-family: "Courier New"; font-size: 10pt;">SilentlyContinue</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"><o:p></o:p></span><br />
<span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span style="mso-tab-count: 3;"> </span>}<o:p></o:p></span><br />
<span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span style="mso-tab-count: 2;"></span> }<o:p></o:p></span><br />
<span style="color: black; font-family: "Courier New"; font-size: 10pt;"> }<o:p></o:p></span><br />
<span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">}</span><o:p></o:p><br />
<br />
Here is an example of the structure in the xml file:<br />
<span style="color: blue; font-family: Consolas; font-size: 9.5pt;"><?</span><span style="color: #a31515; font-family: Consolas; font-size: 9.5pt;">xml</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt;"> </span><span style="color: red; font-family: Consolas; font-size: 9.5pt;">version</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt;">=</span><span style="font-family: Consolas; font-size: 9.5pt;">"<span style="color: blue;">1.0</span>"<span style="color: blue;"> </span><span style="color: red;">encoding</span><span style="color: blue;">=</span>"<span style="color: blue;">utf-8</span>"<span style="color: blue;">?></span><o:p></o:p></span><br />
<span style="color: blue; font-family: Consolas; font-size: 9.5pt;"><</span><span style="color: #a31515; font-family: Consolas; font-size: 9.5pt;">DeploymentConfig</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt;">></span><span style="font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span><br />
<span style="color: blue; font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;">
</span><</span><span style="color: #a31515; font-family: Consolas; font-size: 9.5pt;">Bindings</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt;"> </span><span style="color: red; font-family: Consolas; font-size: 9.5pt;">Name</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt;">=</span><span style="font-family: Consolas; font-size: 9.5pt;">"<span style="color: blue;">Bindings</span>"<span style="color: blue;">></span><o:p></o:p></span><br />
<span style="color: blue; font-family: Consolas; font-size: 9.5pt;"><span style="mso-tab-count: 1;"> </span><span style="mso-spacerun: yes;"> </span><</span><span style="color: #a31515; font-family: Consolas; font-size: 9.5pt;">Binding</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt;"> </span><span style="color: red; font-family: Consolas; font-size: 9.5pt;">Enable</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt;">=</span><span style="font-family: Consolas; font-size: 9.5pt;">"<span style="color: blue;">true</span>"<span style="color: blue;"> </span><span style="color: red;">Hostname</span><span style="color: blue;">="www.yoursite.com" </span><span style="color: red;">Port</span><span style="color: blue;">=</span>"<span style="color: blue;">80</span>"<span style="color: blue;">></</span><span style="color: #a31515;">Binding</span><span style="color: blue;">><o:p></o:p></span></span><br />
<span style="color: blue; font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;">
</span></</span><span style="color: #a31515; font-family: Consolas; font-size: 9.5pt;">Bindings</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt;">></span><span style="font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span><br />
<span style="color: blue; font-family: Consolas; font-size: 9.5pt;"></</span><span style="color: #a31515; font-family: Consolas; font-size: 9.5pt;">DeploymentConfig</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt;">><o:p></o:p></span><br />
Torben Rimmerhttp://www.blogger.com/profile/07881936404920054966noreply@blogger.com0tag:blogger.com,1999:blog-2259401561951857717.post-87585814806814483722012-12-17T01:13:00.001-08:002012-12-17T01:13:42.209-08:00How to get feature scope using powershell<span style="color: blue; font-size: x-small;"><span style="color: blue; font-size: x-small;"><span style="color: black; font-family: inherit; font-size: small;">As i promissed in last post, here is a quick example for a easy way to get the feature scope, when you want to enable a Sharepoint feature.</span></span></span><br />
<br />
I added two small functions that can activate a feature based its scope. this way you dont have to specify the feature scope in the script and this way you only need one function for all your features. This function will work fine with my lates post on how to specify all the features in an xml file.<br />
<br />
This function takes two parameters: The Identety of the feature, and the URL for a given site. If the url is empty it is set to $null.<br />
<br />
<br />
<span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">-------------------------------------</span></span></span><br />
<span style="font-size: x-small;"><span style="color: blue; font-family: Consolas;"><span style="color: blue; font-family: Consolas;"><span style="color: blue; font-family: Consolas;">function</span></span></span><span style="font-family: Consolas;"><span style="font-family: Consolas;"> </span></span><span style="color: navy; font-family: Consolas;"><span style="color: navy; font-family: Consolas;"><span style="color: navy; font-family: Consolas;">ActivateFeature</span></span></span></span><br />
<span style="color: navy; font-family: Consolas;"><span style="color: navy; font-family: Consolas;"><span style="color: navy; font-family: Consolas; font-size: x-small;">
</span></span></span><span style="font-size: x-small;"><span style="font-family: Consolas;"><span style="font-family: Consolas;">{
</span></span><span style="color: blue; font-family: Consolas;"><span style="color: blue; font-family: Consolas;"><span style="color: blue; font-family: Consolas;"> param</span></span></span><span style="font-family: Consolas;"><span style="font-family: Consolas;">(</span></span></span><br />
<span style="font-size: x-small;"><span style="font-family: Consolas;"><span style="font-family: Consolas;">
</span></span><span style="color: purple; font-family: Consolas;"><span style="color: purple; font-family: Consolas;"><span style="color: purple; font-family: Consolas;">$Identity</span></span></span><span style="font-family: Consolas;"><span style="font-family: Consolas;">,</span></span></span><br />
<span style="font-size: x-small;"><span style="font-family: Consolas;"><span style="font-family: Consolas;">
</span></span><span style="color: purple; font-family: Consolas;"><span style="color: purple; font-family: Consolas;"><span style="color: purple; font-family: Consolas;">$Url</span></span></span><span style="font-family: Consolas;"><span style="font-family: Consolas;"> </span></span><span style="color: red; font-family: Consolas;"><span style="color: red; font-family: Consolas;"><span style="color: red; font-family: Consolas;">=</span></span></span><span style="font-family: Consolas;"><span style="font-family: Consolas;"> </span></span><span style="color: purple; font-family: Consolas;"><span style="color: purple; font-family: Consolas;"><span style="color: purple; font-family: Consolas;">$null</span></span></span></span><br />
<span style="color: purple; font-family: Consolas;"><span style="color: purple; font-family: Consolas;"><span style="color: purple; font-family: Consolas; font-size: x-small;">
</span></span></span><span style="font-size: x-small;"><span style="font-family: Consolas;"><span style="font-family: Consolas;">)<br />
</span></span><span style="color: blue; font-family: Consolas;"><span style="color: blue; font-family: Consolas;"><span style="color: blue; font-family: Consolas;">if</span></span></span><span style="font-family: Consolas;"><span style="font-family: Consolas;"> (</span></span><span style="color: purple; font-family: Consolas;"><span style="color: purple; font-family: Consolas;"><span style="color: purple; font-family: Consolas;">$installedFeature</span></span></span><span style="font-family: Consolas;"><span style="font-family: Consolas;"> </span></span><span style="color: red; font-family: Consolas;"><span style="color: red; font-family: Consolas;"><span style="color: red; font-family: Consolas;">=</span></span></span><span style="font-family: Consolas;"><span style="font-family: Consolas;"> </span></span><span style="color: navy; font-family: Consolas;"><span style="color: navy; font-family: Consolas;"><span style="color: navy; font-family: Consolas;">checkFeatureInstalledAndScope</span></span></span><span style="font-family: Consolas;"><span style="font-family: Consolas;"> -FeatureID </span></span><span style="color: purple; font-family: Consolas;"><span style="color: purple; font-family: Consolas;"><span style="color: purple; font-family: Consolas;">$Identity</span></span></span><span style="font-family: Consolas;"><span style="font-family: Consolas;">)</span></span></span><br />
<span style="font-family: Consolas;"><span style="font-family: Consolas; font-size: x-small;">
</span></span><span style="font-size: x-small;"><span style="font-family: Consolas;"><span style="font-family: Consolas;">{
</span></span><span style="color: blue; font-family: Consolas;"><span style="color: blue; font-family: Consolas;"><span style="color: blue; font-family: Consolas;"> switch</span></span></span><span style="font-family: Consolas;"><span style="font-family: Consolas;"> (</span></span><span style="color: purple; font-family: Consolas;"><span style="color: purple; font-family: Consolas;"><span style="color: purple; font-family: Consolas;">$installedFeature</span></span></span><span style="font-family: Consolas;"><span style="font-family: Consolas;">.Scope)</span></span></span><br />
<span style="font-size: x-small;"><span style="font-family: Consolas;"><span style="font-family: Consolas;">
</span></span><span style="font-family: Consolas;"><span style="font-family: Consolas;">{
</span></span></span><br />
<span style="font-size: x-small;"><span style="color: maroon; font-family: Consolas;"><span style="color: maroon; font-family: Consolas;"><span style="color: maroon; font-family: Consolas;"> "Farm"</span></span></span><span style="font-family: Consolas;"><span style="font-family: Consolas;"> </span></span></span><br />
<span style="font-family: Consolas;"><span style="font-family: Consolas; font-size: x-small;">
</span></span><span style="font-size: x-small;"><span style="font-family: Consolas;"><span style="font-family: Consolas;">{</span></span></span><br />
<span style="font-family: Consolas; font-size: x-small;"> <span style="color: purple;"><span style="color: purple;"><span style="color: purple;">$feature</span></span></span> <span style="color: red;"><span style="color: red;"><span style="color: red;">=</span></span></span> (Get-SPFeature -Identity <span style="color: purple;"><span style="color: purple;"><span style="color: purple;">$Identity</span></span></span> -Farm </span><br />
<span style="font-family: Consolas;"><span style="font-family: Consolas; font-size: x-small;"> -erroraction silentlycontinue)</span></span><br />
<span style="font-family: Consolas; font-size: x-small;"> </span><span style="font-family: Consolas; font-size: x-small;"> }
<br /><span style="color: maroon;"><span style="color: maroon;"><span style="color: maroon;"> "WebApplication"</span></span></span> </span><br />
<span style="font-family: Consolas;"><span style="font-family: Consolas; font-size: x-small;">
</span></span><span style="font-size: x-small;"><span style="font-family: Consolas;"><span style="font-family: Consolas;">{</span></span></span><br />
<span style="font-family: Consolas; font-size: x-small;"> <span style="color: purple;"><span style="color: purple;"><span style="color: purple;">$feature</span></span></span> <span style="color: red;"><span style="color: red;"><span style="color: red;">=</span></span></span> (Get-SPFeature -Identity <span style="color: purple;"><span style="color: purple;"><span style="color: purple;">$Identity</span></span></span> -WebApplication <span style="color: purple;"><span style="color: purple;"><span style="color: purple;">$Url</span></span></span> </span><br />
<span style="font-family: Consolas;"><span style="font-family: Consolas; font-size: x-small;"> -erroraction silentlycontinue)</span></span><br />
<span style="font-family: Consolas;"><span style="font-family: Consolas; font-size: x-small;">
</span></span><span style="font-size: x-small;"><span style="font-family: Consolas;"><span style="font-family: Consolas;">}</span></span></span><br />
<span style="font-size: x-small;"><span style="color: maroon; font-family: Consolas;"><span style="color: maroon; font-family: Consolas;"><span style="color: maroon; font-family: Consolas;"> "Site"</span></span></span></span><br />
<span style="color: maroon; font-family: Consolas;"><span style="color: maroon; font-family: Consolas;"><span style="color: maroon; font-family: Consolas; font-size: x-small;">
</span></span></span><span style="font-size: x-small;"><span style="font-family: Consolas;"><span style="font-family: Consolas;">{</span></span></span><br />
<span style="font-family: Consolas; font-size: x-small;"> <span style="color: purple;"><span style="color: purple;"><span style="color: purple;">$feature</span></span></span> <span style="color: red;"><span style="color: red;"><span style="color: red;">=</span></span></span> (Get-SPFeature -Identity <span style="color: purple;"><span style="color: purple;"><span style="color: purple;">$Identity</span></span></span> -Site <span style="color: purple;"><span style="color: purple;"><span style="color: purple;">$Url</span></span></span> </span><br />
<span style="font-family: Consolas;"><span style="font-family: Consolas; font-size: x-small;"> -erroraction silentlycontinue)</span></span><br />
<span style="font-family: Consolas;"><span style="font-family: Consolas; font-size: x-small;">
</span></span><span style="font-size: x-small;"><span style="font-family: Consolas;"><span style="font-family: Consolas;">}</span></span></span><br />
<span style="font-size: x-small;"><span style="color: maroon; font-family: Consolas;"><span style="color: maroon; font-family: Consolas;"><span style="color: maroon; font-family: Consolas;"> "Web"</span></span></span></span><br />
<span style="color: maroon; font-family: Consolas;"><span style="color: maroon; font-family: Consolas;"><span style="color: maroon; font-family: Consolas; font-size: x-small;">
</span></span></span><span style="font-size: x-small;"><span style="font-family: Consolas;"><span style="font-family: Consolas;">{</span></span></span><br />
<span style="font-family: Consolas; font-size: x-small;"> <span style="color: purple;"><span style="color: purple;"><span style="color: purple;">$feature</span></span></span> <span style="color: red;"><span style="color: red;"><span style="color: red;">=</span></span></span> (Get-SPFeature -Identity <span style="color: purple;"><span style="color: purple;"><span style="color: purple;">$Identity</span></span></span> -Web <span style="color: purple;"><span style="color: purple;"><span style="color: purple;">$Url</span></span></span> </span><br />
<span style="font-family: Consolas;"><span style="font-family: Consolas; font-size: x-small;"> -erroraction silentlycontinue)</span></span><br />
<span style="font-family: Consolas;"><span style="font-family: Consolas; font-size: x-small;">
</span></span><span style="font-size: x-small;"><span style="font-family: Consolas;"><span style="font-family: Consolas;">}<br />
}<br />
</span></span><span style="color: cadetblue; font-family: Consolas;"><span style="color: cadetblue; font-family: Consolas;"><span style="color: cadetblue; font-family: Consolas;">Write-Host</span></span></span><span style="font-family: Consolas;"><span style="font-family: Consolas;"> </span></span><span style="color: maroon; font-family: Consolas;"><span style="color: maroon; font-family: Consolas;"><span style="color: maroon; font-family: Consolas;">"Enabling feature: "</span></span></span><span style="font-family: Consolas;"><span style="font-family: Consolas;"> </span></span><span style="color: purple; font-family: Consolas;"><span style="color: purple; font-family: Consolas;"><span style="color: purple; font-family: Consolas;">$installedFeature</span></span></span><span style="font-family: Consolas;"><span style="font-family: Consolas;">.Id </span></span><span style="color: maroon; font-family: Consolas;"><span style="color: maroon; font-family: Consolas;"><span style="color: maroon; font-family: Consolas;">"..."</span></span></span><span style="font-family: Consolas;"><span style="font-family: Consolas;"> </span></span><i><span style="color: cadetblue; font-family: Consolas;"><span style="color: cadetblue; font-family: Consolas;"><span style="color: cadetblue; font-family: Consolas;">-NoNewline</span></span></span></i></span><br />
<span style="font-size: x-small;"><i><span style="color: cadetblue; font-family: Consolas;"><span style="color: cadetblue; font-family: Consolas;"><span style="color: cadetblue; font-family: Consolas;">
</span></span></span></i><span style="color: blue; font-family: Consolas;"><span style="color: blue; font-family: Consolas;"><span style="color: blue; font-family: Consolas;">if</span></span></span><span style="font-family: Consolas;"><span style="font-family: Consolas;"> (</span></span><span style="color: purple; font-family: Consolas;"><span style="color: purple; font-family: Consolas;"><span style="color: purple; font-family: Consolas;">$installedFeature</span></span></span><span style="font-family: Consolas;"><span style="font-family: Consolas;">.scope </span></span><span style="color: red; font-family: Consolas;"><span style="color: red; font-family: Consolas;"><span style="color: red; font-family: Consolas;">-eq</span></span></span><span style="font-family: Consolas;"><span style="font-family: Consolas;"> </span></span><span style="color: maroon; font-family: Consolas;"><span style="color: maroon; font-family: Consolas;"><span style="color: maroon; font-family: Consolas;">"Farm"</span></span></span><span style="font-family: Consolas;"><span style="font-family: Consolas;">)</span></span></span><br />
<span style="font-family: Consolas;"><span style="font-family: Consolas; font-size: x-small;">
</span></span><span style="font-size: x-small;"><span style="font-family: Consolas;"><span style="font-family: Consolas;">{<br />
Enable-SPFeature -Identity </span></span><span style="color: purple; font-family: Consolas;"><span style="color: purple; font-family: Consolas;"><span style="color: purple; font-family: Consolas;">$Identity</span></span></span></span><br />
<span style="color: purple; font-family: Consolas;"><span style="color: purple; font-family: Consolas;"><span style="color: purple; font-family: Consolas; font-size: x-small;">
</span></span></span><span style="font-size: x-small;"><span style="font-family: Consolas;"><span style="font-family: Consolas;">}
</span></span></span><br />
<span style="font-size: x-small;"><span style="color: blue; font-family: Consolas;"><span style="color: blue; font-family: Consolas;"><span style="color: blue; font-family: Consolas;">else</span></span></span></span><br />
<span style="color: blue; font-family: Consolas;"><span style="color: blue; font-family: Consolas;"><span style="color: blue; font-family: Consolas; font-size: x-small;">
</span></span></span><span style="font-size: x-small;"><span style="font-family: Consolas;"><span style="font-family: Consolas;">{<br />
Enable-SPFeature -Identity </span></span><span style="color: purple; font-family: Consolas;"><span style="color: purple; font-family: Consolas;"><span style="color: purple; font-family: Consolas;">$Identity</span></span></span><span style="font-family: Consolas;"><span style="font-family: Consolas;"> -Url </span></span><span style="color: purple; font-family: Consolas;"><span style="color: purple; font-family: Consolas;"><span style="color: purple; font-family: Consolas;">$Url</span></span></span></span><br />
<span style="color: purple; font-family: Consolas;"><span style="color: purple; font-family: Consolas;"><span style="color: purple; font-family: Consolas; font-size: x-small;">
</span></span></span><span style="font-size: x-small;"><span style="font-family: Consolas;"><span style="font-family: Consolas;">}
</span></span><span style="color: cadetblue; font-family: Consolas;"><span style="color: cadetblue; font-family: Consolas;"><span style="color: cadetblue; font-family: Consolas;"></span></span></span></span><br />
<span style="font-size: x-small;"><span style="color: cadetblue; font-family: Consolas;"><span style="color: cadetblue; font-family: Consolas;"><span style="color: cadetblue; font-family: Consolas;">Write-Host</span></span></span><span style="font-family: Consolas;"><span style="font-family: Consolas;"> </span></span><i><span style="color: cadetblue; font-family: Consolas;"><span style="color: cadetblue; font-family: Consolas;"><span style="color: cadetblue; font-family: Consolas;">-ForegroundColor</span></span></span></i><span style="color: cadetblue; font-family: Consolas;"><span style="color: cadetblue; font-family: Consolas;"><span style="color: cadetblue; font-family: Consolas;"></span></span></span><span style="font-family: Consolas;"><span style="font-family: Consolas;"> </span></span><span style="color: maroon; font-family: Consolas;"><span style="color: maroon; font-family: Consolas;"><span style="color: maroon; font-family: Consolas;">Green </span></span></span><span style="color: maroon; font-family: Consolas;"><span style="color: maroon; font-family: Consolas;"><span style="color: maroon; font-family: Consolas;">"DONE"</span></span></span></span><br />
<span style="color: maroon; font-family: Consolas; font-size: x-small;"><span style="color: maroon; font-family: Consolas; font-size: x-small;"><span style="color: maroon; font-family: Consolas; font-size: x-small;">
</span></span></span><br />
<span style="color: maroon; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">function</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> </span></span><span style="color: navy; font-family: Consolas; font-size: x-small;"><span style="color: navy; font-family: Consolas; font-size: x-small;"><span style="color: navy; font-family: Consolas; font-size: x-small;">checkFeatureInstalledAndScope</span></span></span><br />
<span style="color: navy; font-family: Consolas; font-size: x-small;"><span style="color: navy; font-family: Consolas; font-size: x-small;"><span style="color: navy; font-family: Consolas; font-size: x-small;">
</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">{ <br /> </span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">param</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">(</span></span></span><span style="color: maroon; font-family: Consolas; font-size: x-small;"><span style="color: purple; font-family: Consolas; font-size: x-small;"><span style="color: purple; font-family: Consolas; font-size: x-small;"><span style="color: purple; font-family: Consolas; font-size: x-small;">$FeatureID</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">)</span></span></span><br />
<span style="color: maroon; font-family: Consolas; font-size: x-small;"></span><br />
<span style="color: maroon; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"> if</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> (</span></span><span style="color: purple; font-family: Consolas; font-size: x-small;"><span style="color: purple; font-family: Consolas; font-size: x-small;"><span style="color: purple; font-family: Consolas; font-size: x-small;">$feature</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> </span></span><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;">=</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> (get-spfarm).FeatureDefinitions | ?{</span></span><span style="color: purple; font-family: Consolas; font-size: x-small;"><span style="color: purple; font-family: Consolas; font-size: x-small;"><span style="color: purple; font-family: Consolas; font-size: x-small;">$_</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">.Id </span></span><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;">-eq</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> </span></span><span style="color: purple; font-family: Consolas; font-size: x-small;"><span style="color: purple; font-family: Consolas; font-size: x-small;"><span style="color: purple; font-family: Consolas; font-size: x-small;">$FeatureID</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">})</span></span><br />
<span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">
</span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> {</span></span><br />
<span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"></span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">return</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> </span></span><span style="color: purple; font-family: Consolas; font-size: x-small;"><span style="color: purple; font-family: Consolas; font-size: x-small;"><span style="color: purple; font-family: Consolas; font-size: x-small;">$feature</span></span></span><br />
<span style="color: purple; font-family: Consolas; font-size: x-small;"><span style="color: purple; font-family: Consolas; font-size: x-small;"><span style="color: purple; font-family: Consolas; font-size: x-small;">
</span></span></span>
<span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> }</span></span></span><br />
<span style="color: maroon; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"> return</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> </span></span><span style="color: purple; font-family: Consolas; font-size: x-small;"><span style="color: purple; font-family: Consolas; font-size: x-small;"><span style="color: purple; font-family: Consolas; font-size: x-small;">$null</span></span></span><br />
<span style="color: purple; font-family: Consolas; font-size: x-small;"><span style="color: purple; font-family: Consolas; font-size: x-small;"><span style="color: purple; font-family: Consolas; font-size: x-small;">
</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">}</span></span></span>Torben Rimmerhttp://www.blogger.com/profile/07881936404920054966noreply@blogger.com0tag:blogger.com,1999:blog-2259401561951857717.post-4329966350513544102012-12-12T07:15:00.002-08:002012-12-13T01:16:04.124-08:00Activate features using XML fileI have worked with a smal powershell script that activate a lot of features specified in a XML file.<br />
<br />
I was strucling with a script that had all features hardcoded in the script, and I thought to myself, that there should be a better way to du this! More stuctured! Easyer to maintain!<br />
<br />
The way to activate a feature using powershell is well known. <br />
<span style="font-family: "Courier New", Courier, monospace;">- Enable-SPFeature -Identity "Identity"</span><br />
Look here for more information on the Enable-SPFeature command <br />
<a href="http://technet.microsoft.com/en-us/library/ff607803.aspx">http://technet.microsoft.com/en-us/library/ff607803.aspx</a><br />
<br />
So how can we then make this more structured. Well my idear is to use a xml file to hold all the features that need enables. his also makes the maitanece more simple. <br />
For this scrip I use true/false to activate features in the xml file.<br />
<br />
This is an example on the xml structure I use.<br />
<span style="font-family: "Courier New", Courier, monospace;"><?xml version="1.0" encoding="utf-8"?><br /><DeploymentConfig><br /> <Features Name="Farm"></span><br />
<span style="font-family: "Courier New", Courier, monospace;"> <Feature Enable="true" Scope="Farm" Identity=""></Feature></span><br />
<span style="font-family: "Courier New", Courier, monospace;"> </Features><br /></DeploymentConfig></span><br />
So how to import the xml file in the script. <br />
$dp0 = the location of the script.<br />
<br />
<span style="font-family: "Courier New", Courier, monospace;">$featureXMLFile = $dp0 + "\xx.xml"<br />[xml]$FeatureConfig = [xml](Get-Content $featureXMLFile)</span><br />
<br />
<span style="font-family: inherit;">Using this xml file in a scrip to find the features that need activating.</span><br />
<br />
<span style="font-family: "Courier New", Courier, monospace;">$featuresEnabled = $FeatureConfig.SelectNodes</span><br />
<span style="font-family: "Courier New", Courier, monospace;">#Finding features set to be enabled (Enable="true")</span><br />
<span style="font-family: "Courier New", Courier, monospace;">("DeploymentConfig/Features/Feature") | where {$_.Enable -ieq "true"}<br /> </span><br />
<span style="font-family: "Courier New", Courier, monospace;">if ($featuresEnabled)<br />{<br /> Write-Host -ForegroundColor Green "--------------------------"<br /> Write-Host -ForegroundColor Green "- Activating Features"<br /> </span><br />
<span style="font-family: "Courier New", Courier, monospace;"> #Farm scoped features<br /> $farmFeatures = $featuresEnabled | where {$_.Scope -eq 'Farm'}<br /> if ($farmFeatures)<br /> {<br /> Write-Host -ForegroundColor Green " - Enabling Farm scoped feature:"<br /> foreach ($feature in $farmFeatures)<br /> {<br /> </span><span style="font-family: "Courier New", Courier, monospace;">$FeatureUID = $feature.Identity<br /> </span><span style="font-family: "Courier New", Courier, monospace;">Enable-SPFeature -Identity $FeatureUID<br /> }<br /> }<br /> else<br /> {<br /> Write-Warning "No Farm features to activate"<br /> }</span><br />
<span style="font-family: "Courier New", Courier, monospace;">}</span><br />
<br />
This little script only handles farm features. To use it for weballication/sitecollection features you need to add a webapplication/site to the command.<br />
<span style="font-family: Courier New;">Enable-SPFeature </span><span style="font-family: "Courier New", Courier, monospace;">-Identity $FeatureUID -Url $Url</span><br />
<br />
<span style="font-family: inherit;">To make this possible you need to create a new section in the xml file that specify the features that need activation. in this example I use webapplication.</span><br />
<span style="font-family: Courier New;"><span style="font-family: "Courier New", Courier, monospace;"><Features Name="WebApplication"><br /> <Feature Enable="false" Scope="WebApp" Site="" Identity=""></Feature></span></Features> </span><br />
<span style="font-family: Courier New;"><span style="color: purple; font-family: Consolas;"><span style="color: purple; font-family: Consolas;"><span style="color: purple; font-family: Consolas;"></span></span></span><br /></span>The code should look like this.<br />
<span style="font-family: Courier New;">$webappFeatures = $featuresEnabled | where {$_.Scope -eq 'WebApp'}<br /> if ($webappFeatures )<br /> {<br /> Write-Host -ForegroundColor Green " - Enabling webapplication scoped feature:"<br /> foreach ($feature in $webappFeatures )</span><br />
<span style="font-family: Courier New;"> {<br /> $FeatureUID = $feature.Identity</span><br />
<span style="font-family: Courier New;"> $Url = $feature.Site<br /> Enable-SPFeature <span style="font-family: "Courier New", Courier, monospace;">-Identity $FeatureUID -Url $Url</span> </span><br />
<span style="font-family: Courier New;"> }</span><br />
<span style="font-family: Courier New;">}</span><br />
<span style="font-family: Courier New; font-size: x-small;"></span><br />
<span style="font-family: inherit;">You can of course build this into a larger script, and I will in a later post discripe how to find out if a feature is farm, webapp, site or web.</span><br />
<br />
Have fun with powershell.<br />
<span style="font-family: Courier New; font-size: x-small;"> </span>Torben Rimmerhttp://www.blogger.com/profile/07881936404920054966noreply@blogger.com0tag:blogger.com,1999:blog-2259401561951857717.post-56630883426655479892012-09-07T02:04:00.001-07:002012-09-20T06:44:13.218-07:00Sharepoint 2010 SPUpdatedConcurrencyException FixProblems when installing the June_CU_2011 (KB) for SharePoint Server.<br />
<br />
After installing the CU, and running the online command <psconfig –cmd upgrade –inplace b2b –wait> to update the second server in the farm. You may get this error just after step 2:<br />
<br />
===<br />
<br />
<span style="font-size: 8pt;"><i>An exception of type
Microsoft.SharePoint.Administration.SPUpdatedConcurrencyException was
thrown. Additional exception information: An update conflict has
occurred, and you must re-try this action. The object SPUpgradeSession
Name=Upgrade -20110924-194525-15 was updated by DOMAIN\ACCOUNT, in the
PSCONFIG (7240) process, on machine SERVER. View the tracing log for
more information about the conflict.<br />
</i></span><br />
<span style="font-size: 8pt;"><i>Total number of configuration settings run: 3<br />
</i></span><br />
<span style="font-size: 8pt;"><i>Total number of successful configuration settings: 2<br />
</i></span><br />
<span style="font-size: 8pt;"><i>Total number of unsuccessful configuration settings: 1<br />
</i></span><br />
<span style="font-size: 8pt;"><i>Successfully stopped the configuration of SharePoint Products.<br />
</i></span><br />
<span style="font-size: 8pt;"><i>Configuration of SharePoint
Products failed. Configuration must be performed before you use
SharePoint Products. For further details, see the diagnostic log located
at [LOCATION OF LOG] and the application event log.<br />
</i></span><br />
<br />
<br />
To Resolve this in a fast an easy way:<br />
<ol>
<li>stsadm -o setproperty -pn command-line-upgrade-running -pv No</li>
<li>IISReset</li>
<li>Restart the Windows SharePoint Timer</li>
<li>psconfig –cmd upgrade –inplace b2b –wait –force</li>
</ol>
This PSConfig make a check to see if a installation is allready running. And if this sitting is set to yes the PSConfig throw an exeption. <br />
To fix this, you can set the "command-line-upgrade-running" property to "No" and viola, the installation can finish.<br />
<br />To learn more see:<br />
<a href="http://technet.microsoft.com/en-us/library/cc263303.aspx">http://technet.microsoft.com/en-us/library/cc263303.aspx</a><br />
<br />
<ol>
</ol>
Torben Rimmerhttp://www.blogger.com/profile/07881936404920054966noreply@blogger.com0tag:blogger.com,1999:blog-2259401561951857717.post-31203638330568573732012-09-07T02:04:00.000-07:002012-09-07T02:04:31.998-07:00How to Make PDF icons visibleJust a short guide to make PDF icons visible in SharePoint 2010.<br />
<br />
I found this article on the Net and found that it is usefull if you want icons in your search results. This article is using PDF iFilter.<br />
<br />
http://www.codeproject.com/KB/sharepoint/PDFiFIlterSharePoint2010.aspx<br />
http://www.sharepointsharon.com/2010/03/sharepoint-2010-and-adobe-pdf/<br />
<br />
Foundation<br />
http://support.microsoft.com/kb/2518465Torben Rimmerhttp://www.blogger.com/profile/07881936404920054966noreply@blogger.com0