<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Shared Points for SharePoint</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/mcsnoiwb/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/mcsnoiwb/feed.xml</link>
    <description>The blog of the SharePoint Team from Microsoft Consulting Services, Norway</description>
    <lastBuildDate>Wed, 17 Apr 2019 04:03:25 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>How to copy a file via remote desktop connection</title>
      <link>https://docs.microsoft.com/archive/blogs/mcsnoiwb/how-to-copy-a-file-via-remote-desktop-connection</link>
      <pubDate>Fri, 29 Jun 2012 04:29:53 GMT</pubDate>
      <dc:creator><![CDATA[Thomas Svensen]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mcsnoiwb/2012/06/29/how-to-copy-a-file-via-remote-desktop-connection/</guid>
      <description><![CDATA[In some cases, you may need to copy a file from your local computer to a server, or vice versa, via...]]></description>
      <content:encoded><![CDATA[<p>In some cases, you may need to copy a file from your local computer to a server, or vice versa, via a remote desktop connection (RDP). In most cases, you can easily do it by exposing your local disks directly to the remote machine. But in some case, this is not possible. For example, where I work now, I have to RDP to one machine, and then from there to a third machine. Copying a log file from that external machine to my local PC for further investigation is then a challenge.</p>  <p>Fortunately, I colleague of mine, Denis Heliszkowski, had a cunning solution. Starting on your source environment, follow these steps:</p>  <ol>   <li>Copy (Ctrl-C) the file from the Explorer window</li>    <li>Open WordPad and paste the document in there, it will then look something like this:     <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/07/metablogapi/1651.image_4A268C06.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-85-07-metablogapi/1651.image_5F00_4A268C06.png"><img style="display: inline; background-image: none;" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/07/metablogapi/6428.image_thumb_7FEBF72D.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-85-07-metablogapi/6428.image_5F00_thumb_5F00_7FEBF72D.png" width="341" height="231" /></a></li>    <li>Now, copy this file again, but now from WordPad.</li>    <li>Switching to your target environment (typically your own PC)</li>    <li>Open WordPad and paste into the empty document</li>    <li>Again, copy this file from WordPad</li>    <li>Open Explorer and paste</li> </ol>  <p>Voila – your file has been transferred to your local disk!</p>  <p>This of course also works in the other direction, which can be useful if you need to copy something like the Sysinternal tools to a server which does not have connectivity to the internet.</p>  <p>I must admit that I cannot in detail explain why or how this works. According to Denis, it’s about the file object being converted to a COM object when inserted into a document. I gues the most important thing is that it just works. <img style="style" class="wlEmoticon wlEmoticon-smile" alt="Smilefjes" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/07/metablogapi/3678.wlEmoticon-smile_1D5FA254.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-85-07-metablogapi/3678.wlEmoticon_2D00_smile_5F00_1D5FA254.png" /></p>]]></content:encoded>
    </item>
    <item>
      <title>Lost authentication cookies in SharePoint</title>
      <link>https://docs.microsoft.com/archive/blogs/mcsnoiwb/lost-authentication-cookies-in-sharepoint</link>
      <pubDate>Sun, 10 Jun 2012 15:39:00 GMT</pubDate>
      <dc:creator><![CDATA[Tarjei Lægreid]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mcsnoiwb/2012/06/10/lost-authentication-cookies-in-sharepoint/</guid>
      <description><![CDATA[Are your users complaining about losing their session in your&nbsp;SharePoint&nbsp;environment? Or...]]></description>
      <content:encoded><![CDATA[<p>Are your users complaining about losing their session in your&nbsp;SharePoint&nbsp;environment? Or do your users complain about being thrown out&nbsp;after a while? This might be the explanation.</p>
<p>When the user has entered his credentials,&nbsp;a cookie is returned to the client (when using claims authentication or other cookie-based authentication methods). This cookie is contained in the header of the requests as long as the user is logged in.</p>
<p>Internet Explorer stores up to <a href="https://support.microsoft.com/kb/941495">50 cookies per domain</a>. This means that if your code generates a lot of cookies, your authentication cookie might sooner or later be lost (as cookies are handled on a First-In-First-Out basis).</p>
<p>SharePoint list view pages generates cookies (normally 2). After browsing a number of list view pages&nbsp;the browser&nbsp;will receive a high number of cookies. When the number reaches 50, the authentication cookie will be replaced in IE. What the user will experience is that he is "thrown out" (redirected to the log-in page).</p>
<p>If we log on through firefox&nbsp;we can easily see all the cookies generated through firebug</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/07/8611.1.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-85-07/8611.1.png"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/07/8611.1.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-85-07/8611.1.png" /></a><br />This picture shows the "View all site content page". There are currently 6 cookies&nbsp;from&nbsp;the site domain. After browsing all the list view pages linked from this page we get the following cookies:</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/07/3348.2.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-85-07/3348.2.png"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/07/3348.2.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-85-07/3348.2.png" /></a></p>
<p>As you might&nbsp;see at the picture, the cookies <em>stsSyncIconPath,</em> <em>stsSyncAppName, databaseBtnText </em>and<em> databaseBtnDesc </em>(depending on list type)&nbsp;cookies are written to list relative paths. After browsing a number of pages like these, the number of cookies will sooner or later reach 50. If the user is browsing through IE, the authentication cookie (FedAuth in this example) will be lost.<br />Note: if you debug the same behavior through Fiddler you will not be able to see these cookies as they are generated client side (through javascripts).</p>
<p>If you do experience this&nbsp;issue you could consider a couple of workarounds:</p>
<p>- Wait for a future fix (the behavior will hopefully be changed in one of the next SharePoint CUs)</p>
<p>- Avoid exposure of list views unless you really need them</p>
<p>- Take a look at how the cookies are generated (hint: ows.js/init.js). Remember that modifying the out of the box files is not supported by Microsoft</p>]]></content:encoded>
    </item>
    <item>
      <title>Deploying search synonyms to SharePoint Search</title>
      <link>https://docs.microsoft.com/archive/blogs/mcsnoiwb/deploying-search-synonyms-to-sharepoint-search</link>
      <pubDate>Wed, 06 Jun 2012 04:08:00 GMT</pubDate>
      <dc:creator><![CDATA[Thomas Svensen]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mcsnoiwb/2012/06/06/deploying-search-synonyms-to-sharepoint-search/</guid>
      <description><![CDATA[SharePoint 2010 Search enables you to add search synonyms via XML configuration files on the server....]]></description>
      <content:encoded><![CDATA[<p>SharePoint 2010 Search enables you to add search synonyms via XML configuration files on the server. The configuration is well described on <a href="https://technet.microsoft.com/en-us/library/dd361734.aspx" target="_blank">TechNet</a> and seems pretty straighforward. There are sample files in the installation, that you can use as a starting point, but straight away, we saw some challenges related to governance and deployment:</p>
<ul>
<li>Manual editing of XML files only works for really small files</li>
<li>Deployment is cumbersome - it must be done on each server, and the path includes GUIDs</li>
</ul>
<p>We therefore decided to script the rollout, taking a CSV file as input. CSV is easily edited using Excel, and PowerShell is great at parsing CSV and writing XML. This way, both problems could be easily solved. But, as we started trying this out, we ran into additional challenges:</p>
<ul>
<li>Adding anything except letters, numbers and spaces seem to breaks the feature</li>
<li>In some environments, the reference to the XML schema causes problems</li>
<li>Duplicate synonym entries makes the feature fail silently (this caused us a lot of headache&hellip;)</li>
<li>We needed to log onto each individual search server to restart it</li>
</ul>
<p>The XML schema problem appears in the event viewer and looks like this:</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/07/metablogapi/0285.clip_image002_002250B9.gif" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-85-07-metablogapi/0285.clip_5F00_image002_5F00_002250B9.gif"><img style="display: inline; background-image: none;" title="clip_image002" border="0" alt="clip_image002" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/07/metablogapi/1447.clip_image002_thumb_71972EC6.gif" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-85-07-metablogapi/1447.clip_5F00_image002_5F00_thumb_5F00_71972EC6.gif" width="704" height="186" /></a></p>
<p>We found that removing the XML namespace reference at the start of the XML file solved the problem.</p>
<p>To make a long story short, we have created a script which handles everything you need:</p>
<ul>
<li>Converts CSV to XML</li>
<li>Replaces, &amp;, :, ;, etc. with spaces</li>
<li>Barfs at you if you have duplicates</li>
<li>Looks up the correct guid-folders for your servers</li>
<li>Distributes the XML files</li>
<li>Does an automatic&nbsp;restart of the OSearch14 windows service on all servers listed</li>
</ul>
<p>Configuration is done via a simple PowerShell file which is passed as input to the main script. A couple of things to note regarding configuration:</p>
<ul>
<li>An arbitrary number of columns can be added - just make sure to add corresponding dummy-headings. Headings are required for PowerShell to parse the CSV properly.</li>
<li>Deploying to "tsneu" is probably sufficient, as is done in the supplied config, but you can add a list of languages if needed.</li>
</ul>
<p>Download the attached zip for the complete source. Thanks to my colleague Stig Lytjohan for doing much of the hard work! <img class="wlEmoticon wlEmoticon-smile" alt="Smilefjes" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/07/metablogapi/5483.wlEmoticon-smile_08760043.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-85-07-metablogapi/5483.wlEmoticon_2D00_smile_5F00_08760043.png" /></p>
<p>Enjoy!</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/10/31/58/41/ConfigureSearchSynonyms.zip" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-10-31-58-41/ConfigureSearchSynonyms.zip">ConfigureSearchSynonyms.zip</a></p>]]></content:encoded>
    </item>
    <item>
      <title>How is the link to people’s My Site from Outloook provided?</title>
      <link>https://docs.microsoft.com/archive/blogs/mcsnoiwb/how-is-the-link-to-peoples-my-site-from-outloook-provided</link>
      <pubDate>Wed, 30 May 2012 03:27:35 GMT</pubDate>
      <dc:creator><![CDATA[Thomas Svensen]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mcsnoiwb/2012/05/30/how-is-the-link-to-peoples-my-site-from-outloook-provided/</guid>
      <description><![CDATA[In Lync and Outlook you can hover over a contact to get a popup showing ways to interact with the...]]></description>
      <content:encoded><![CDATA[<p>In Lync and Outlook you can hover over a contact to get a popup showing ways to interact with the person. This is what it looks like in our environment:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/07/metablogapi/1273.image_4E49C413.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-85-07-metablogapi/1273.image_5F00_4E49C413.png"><img style="display: inline; background-image: none;" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/07/metablogapi/3326.image_thumb_3DEE4C5A.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-85-07-metablogapi/3326.image_5F00_thumb_5F00_3DEE4C5A.png" width="304" height="95" /></a></p>  <p>When hovering over the persons name, you <em>should</em> get the option to view the persons profile page, or “My Site”. But in a standard installation, this connection is not enabled, and you will only be able to highlight the name, e.g. as shown here:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/07/metablogapi/7633.image_519B35EE.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-85-07-metablogapi/7633.image_5F00_519B35EE.png"><img style="display: inline; background-image: none;" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/07/metablogapi/2350.image_thumb_49A3938C.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-85-07-metablogapi/2350.image_5F00_thumb_5F00_49A3938C.png" width="304" height="95" /></a></p>  <p>In an installation with a proper MySite-link, it will look like this when I hover over “Thomas Svensen” in the popup:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/07/metablogapi/8117.Link-to-My-site_6F9943E2.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-85-07-metablogapi/8117.Link_2D00_to_2D00_My_2D00_site_5F00_6F9943E2.png"><img style="display: inline; background-image: none;" title="Link to My site" border="0" alt="Link to My site" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/07/metablogapi/1373.Link-to-My-site_thumb_27D7BAFB.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-85-07-metablogapi/1373.Link_2D00_to_2D00_My_2D00_site_5F00_thumb_5F00_27D7BAFB.png" width="304" height="80" /></a></p>  <p>And clicking the name will open the person’s MySite in your default browser. Worth noting here is that <strong>there is not a direct link to the user’s MySite</strong>, instead the My Site that you are connected to, is queried using the email address of the person in question. This can be verified by using <a href="https://www.fiddler2.com" target="_blank">Fiddler</a> to show the trace of network calls made.</p>  <p>This link to the user’s MySite is stored in the Registry:</p>  <p>[HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Common\Server Links\Published\<font style="background-color: rgb(255, 255, 0);">My Site</font>\Profile Site]     <br />&quot;LinkType&quot;=hex(b):00,00,00,00,00,00,00,01     <br />&quot;IsMember&quot;=dword:00000000     <br />&quot;IsPublished&quot;=dword:00000001     <br />&quot;Url&quot;=&quot;https://my:80/Person.aspx?user=&quot;</p>  <p>I have highlighted “My Site” in the registry path, because this name can be anything. Testing has shown that the first entry listed under “Published” is used, whatever the name is. With SharePoint 2010, the only way we have found to create this link in the registry, is to:</p>  <ol>   <li>Open some document library</li>    <li>Click “Library tools &gt; Library” in the ribbon</li>    <li>Click “Connect to Office &gt; Add to SharePoint sites”</li>    <li>Click “OK” in the dialog that appears.</li>  </ol>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/07/metablogapi/4426.image_192D0F16.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-85-07-metablogapi/4426.image_5F00_192D0F16.png"><img style="display: inline; background-image: none;" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/07/metablogapi/2766.image_thumb_2CD9F8AA.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-85-07-metablogapi/2766.image_5F00_thumb_5F00_2CD9F8AA.png" width="604" height="199" /></a></p>  <p>This procedure is not really something we can instruct all our thousands of users to do, of course. There are some suggestions floating around on the net, saying that the PortalConnect popup that appeared in earlier SharePoint version can be enabled for SP2010, e.g. as described by <a href="https://vanhooijdonk.wordpress.com/2010/05/21/set-default-mysite-not-working-with-office-2010-rtm-x64/" target="_blank">Stef van Hooijdonk</a>. But applying those registry updates didn’t not change anything for us; neither does it seem to work <a href="https://social.technet.microsoft.com/Forums/lv/sharepoint2010setup/thread/fbb66a06-d45f-4ef8-b7d0-5b99d985d279" target="_blank">for others on the SharePoint TechNet forum</a>. The obvious alternative is pushing out the registry update shown above via a GPO – Group Policy Object, but there is no official guidance on this, e.g. in the <a href="https://www.microsoft.com/en-us/download/details.aspx?id=18968" target="_blank">Office 2010 Group Policy and OCT Settings reference spreadsheet</a>. We are trying to get some guidance, but currently, this is the state of affairs. </p>]]></content:encoded>
    </item>
    <item>
      <title>Removing an invalid WebConfigModification using Powershell</title>
      <link>https://docs.microsoft.com/archive/blogs/mcsnoiwb/removing-an-invalid-webconfigmodification-using-powershell</link>
      <pubDate>Tue, 29 May 2012 03:29:00 GMT</pubDate>
      <dc:creator><![CDATA[Frank Jusnes]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mcsnoiwb/2012/05/29/removing-an-invalid-webconfigmodification-using-powershell/</guid>
      <description><![CDATA[SharePoint supports adding web.config modifications programmatically.&nbsp;Here is an&nbsp;example...]]></description>
      <content:encoded><![CDATA[<p>SharePoint supports adding web.config modifications programmatically.&nbsp;Here is an&nbsp;<a title="example  " href="https://msdn.microsoft.com/nb-no/library/microsoft.sharepoint.administration.spwebconfigmodification(v=office.12).aspx">example</a> from MSDN.&nbsp;Each modification is stored&nbsp;with a&nbsp;web application, and you are able to list them using the following command:</p>
<p style="padding-left: 30px;"><span style="font-family: courier new,courier;">$webapp = Get-SPWebApplication https://&lt;your web app&nbsp;url&gt;</span><br /><span style="font-family: courier new,courier;">$w.WebConfigModifications</span></p>
<p>If you want to remove an invalid entry, use the following commands:</p>
<p style="padding-left: 30px;"><span style="font-family: courier new,courier;">$modification = $webapp.WebConfigModifications | where { $_.Name -eq "&lt;the name of your key&gt;" }</span><br /><span style="font-family: courier new,courier;">$webapp.WebConfigModifications.Remove($modification)</span><br /><span style="font-family: courier new,courier;">$webapp.Update()</span></p>]]></content:encoded>
    </item>
    <item>
      <title>Incorrect syntax near the keyword 'AS'</title>
      <link>https://docs.microsoft.com/archive/blogs/mcsnoiwb/incorrect-syntax-near-the-keyword-as</link>
      <pubDate>Tue, 22 May 2012 00:24:30 GMT</pubDate>
      <dc:creator><![CDATA[Frank Jusnes]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mcsnoiwb/2012/05/22/incorrect-syntax-near-the-keyword-as/</guid>
      <description><![CDATA[The error "Incorrect syntax near the keyword 'AS'" can occur when you try to run SQL scripts that...]]></description>
      <content:encoded><![CDATA[<p>The error "Incorrect syntax near the keyword 'AS'" can occur when you try to run SQL scripts that require SQL Server 2008 on an earlier version of SQL Server. In my case it occurred while installing NewsGator Social Sites. SharePoint 2010&nbsp;supports SQL Server 2005 (in some scenarios), but NewsGator requires SQL Server 2008 SP1.</p>]]></content:encoded>
    </item>
    <item>
      <title>How to speed up SharePoint Management Shell startup</title>
      <link>https://docs.microsoft.com/archive/blogs/mcsnoiwb/how-to-speed-up-sharepoint-management-shell-startup</link>
      <pubDate>Wed, 25 Apr 2012 03:27:57 GMT</pubDate>
      <dc:creator><![CDATA[Frank Jusnes]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mcsnoiwb/2012/04/25/how-to-speed-up-sharepoint-management-shell-startup/</guid>
      <description><![CDATA[On&nbsp;virtual machines&nbsp;without internet access it may take 1-2 minutes to start SharePoint...]]></description>
      <content:encoded><![CDATA[<p>On&nbsp;virtual machines&nbsp;without internet access it may take 1-2 minutes to start SharePoint Management Shell. The problem is that when loading signed assemblies the .NET Framework checks the Internet based certificate revocation list. The timeout for each check is 30 seconds. To avoid this check, set the following registry key:</p>
<p><span style="font-family: courier new,courier;">[HKEY_USERS\&lt;userid&gt;\Software\Microsoft\Windows\CurrentVersion\WinTrust\Trust Providers\Software Publishing] </span><br /><span style="font-family: courier new,courier;">"State"=dword:00023e00</span></p>]]></content:encoded>
    </item>
    <item>
      <title>Troubleshooting SharePoint logging</title>
      <link>https://docs.microsoft.com/archive/blogs/mcsnoiwb/troubleshooting-sharepoint-logging</link>
      <pubDate>Tue, 24 Apr 2012 01:48:00 GMT</pubDate>
      <dc:creator><![CDATA[Frank Jusnes]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mcsnoiwb/2012/04/24/troubleshooting-sharepoint-logging/</guid>
      <description><![CDATA[Both the Event Log and the&nbsp;ULS log&nbsp;are invaluable sources of information when monitoring...]]></description>
      <content:encoded><![CDATA[<p>Both the Event Log and the&nbsp;ULS log&nbsp;are invaluable sources of information when monitoring or debugging your SharePoint solution. Sometimes logging doesn't work. In my experience these are the most frequent reasons:</p>
<ol>
<li>The log disk is&nbsp;full.</li>
<li>The application pool account of your web application is not a member of the&nbsp; "Performance Log Users" group on ALL servers in the farms.</li>
<li>For being able to create custom event logs from an event receiver,&nbsp;the timer service account needs&nbsp;write permissions&nbsp;to the following key in registry:<br /><br />HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servicese\Eventlog</li>
</ol>
<p>If you are just starting to implement logging in&nbsp;your application, a few tips may help you on the way:</p>
<ul>
<li>A good logging experience requires some effort, so you may find&nbsp;that using the logging classes in <a title="Patterns &amp;amp; Practices SharePoint Guidance" href="https://spg.codeplex.com/" target="_blank">Patterns &amp; Practices SharePoint Guidance</a>&nbsp;can save you some work.</li>
<li>ULS Viewer is&nbsp;of great help when reading the ULS log. Download it&nbsp;from MSDN: <a href="https://archive.msdn.microsoft.com/ULSViewer">https://archive.msdn.microsoft.com/ULSViewer</a></li>
</ul>]]></content:encoded>
    </item>
    <item>
      <title>Configure redirect via IIS using command line script</title>
      <link>https://docs.microsoft.com/archive/blogs/mcsnoiwb/configure-redirect-via-iis-using-command-line-script</link>
      <pubDate>Fri, 20 Apr 2012 05:03:00 GMT</pubDate>
      <dc:creator><![CDATA[Thomas Svensen]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mcsnoiwb/2012/04/20/configure-redirect-via-iis-using-command-line-script/</guid>
      <description><![CDATA[In our current project, we were moving an old SharePoint installation to a new farm, As part of this...]]></description>
      <content:encoded><![CDATA[<p>In our current project, we were moving an old SharePoint installation to a new farm, As part of this migration, we got a new, nicer DNS name. We wanted to support old users who had bookmarks etc., by doing a redirect. First of all, we configured both DNS&rsquo;s to point to the same IP address, like this:</p>
<ul>
<li>long-old-url.company.com &ndash;&gt; 10.10.10.10</li>
<li>nice-url.company.com &ndash;&gt; 10.10.10.10</li>
</ul>
<p>This way, both new and old users could access the same backend transparently. But, we wanted the old users to be redirected to the new URL, so that going forward everyone would see &ldquo;https://nice-url.company.com&rdquo; in their browser address bar. Fortunately, version 7 of IIS added support for redirects. But it turns out that the redirect module is not enabled by default. You must go into the &ldquo;Windows features&rdquo; to enable it.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/07/7752.Redirect%20-%20windows%20feature.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-85-07/7752.Redirect-_2D00_-windows-feature.png"><img alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/07/7752.Redirect%20-%20windows%20feature.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-85-07/7752.Redirect-_2D00_-windows-feature.png" border="0" /></a><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/07/metablogapi/3125.Redirect---windows-feature_34660A58.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-85-07-metablogapi/3125.Redirect_2D002D002D00_windows_2D00_feature_5F00_34660A58.png"></a></p>
<p>Once the redirect feature was enabled, it was easy enough to configure the redirect using the UI.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/07/metablogapi/7002.Redirect-config---IIS_661101E0.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-85-07-metablogapi/7002.Redirect_2D00_config_2D002D002D00_IIS_5F00_661101E0.png"></a>&nbsp;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/07/4762.Redirect%20config%20-%20IIS.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-85-07/4762.Redirect-config-_2D00_-IIS.png"><img alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/07/4762.Redirect%20config%20-%20IIS.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-85-07/4762.Redirect-config-_2D00_-IIS.png" border="0" /></a></p>
<p>UPDATE:<br />I though it was this easy, but it turns out that query parameters are not passed along when using the straightforward redirect function, but you need to add $V$Q and check the "Exact destination", like this:</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/07/5305.iis-redirect-with-query-parameters.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-85-07/5305.iis_2D00_redirect_2D00_with_2D00_query_2D00_parameters.png"><img alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/07/5305.iis-redirect-with-query-parameters.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-85-07/5305.iis_2D00_redirect_2D00_with_2D00_query_2D00_parameters.png" border="0" /></a></p>
<p>&nbsp;</p>
<p>As&nbsp;we have multiple environments were this needs to be configured, we wanted to do it all via the command line. It took some research to figure out the steps to activate the windows feature and even more to do the IIS configuration via the command line. So, for your convenience, here is a complete batch script which takes as input four parameters and sets it all up in one go. The four parameters are:</p>
<ol>
<li>Old URL</li>
<li>New URL</li>
<li>Old port (defaults to 80)</li>
<li>New port (defaults to 80)</li>
</ol>
<p>And here is the complete script with inline comments to explain the required steps:</p>
<p><span style="font-family: Courier New;" face="Courier New">@echo off</span></p>
<p></p>
<p><span style="font-family: Courier New;" face="Courier New">REM Configuration <br />set oldUrl=%1 <br />set newUrl=%2 <br />if "%3" == "" (set oldPort=80) else (set oldPort=%3) <br />if "%4" == "" (set newPort=80) else (set newPort=%4)</span></p>
<p></p>
<p><span style="font-family: Courier New;" face="Courier New">set siteId=1001 <br />set siteName=%oldUrl% <br />set virtualDir=c:\inetpub\wwwroot\wss\VirtualDirectories\%oldUrl%-%oldPort%</span></p>
<p></p>
<p><span style="font-family: Courier New;" face="Courier New">REM ************************************************ <br />REM Enable HTTP Redirect feature <br />REM ************************************************ <br />dism /online /Enable-Feature /FeatureName:IIS-HttpRedirect</span></p>
<p></p>
<p><span style="font-family: Courier New;" face="Courier New">REM ************************************************ <br />REM Create virtual directory for site <br />REM ************************************************ <br />mkdir "%virtualDir%"</span></p>
<p></p>
<p><span style="font-family: Courier New;" face="Courier New">REM ************************************************ <br />REM Create site <br />REM ************************************************ <br />%windir%\system32\inetsrv\AppCmd ADD SITE /name:%siteName% /id:%siteId% /bindings:http/*:%oldPort%:%oldUrl% /physicalPath:"%virtualDir%"</span></p>
<p></p>
<p><span style="font-family: Courier New;" face="Courier New">REM ************************************************ <br />REM Add redirect setting to web.config <br />REM ************************************************ <br />%windir%\system32\inetsrv\AppCmd SET config %siteName% /section:httpRedirect /enabled:true /destination:https://%newUrl%:%newPort%$V$Q /exactDestination:true<br /></span></p>
<p><span style="font-family: Courier New;" face="Courier New">REM ************************************************ <br />REM Grant read access to Everyone recursively <br />REM (Automatic when done via UI, but not via cmd) <br />REM ************************************************ <br />icacls "%virtualDir%" /t /q /grant:r everyone:(GR) </span></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/10/29/57/64/ConfigureIISRedirect.cmd.txt" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-10-29-57-64/ConfigureIISRedirect.cmd.txt">ConfigureIISRedirect.cmd.txt</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Connecting custom service application proxies using Powershell</title>
      <link>https://docs.microsoft.com/archive/blogs/mcsnoiwb/connecting-custom-service-application-proxies-using-powershell</link>
      <pubDate>Wed, 14 Dec 2011 14:02:19 GMT</pubDate>
      <dc:creator><![CDATA[Frank Jusnes]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mcsnoiwb/2011/12/14/connecting-custom-service-application-proxies-using-powershell/</guid>
      <description><![CDATA[In my current project we have scripted a NewsGator install in a multi-server farm. One of the...]]></description>
      <content:encoded><![CDATA[<p>In my current project we have scripted a NewsGator install in a multi-server farm. One of the challenges we faced is that we needed to connect a proxy for the NewsGator Social Platform Services service application. This is very straight forward for the out-of-the-box service applications in SharePoint, as each have specific Powershell cmdlets:</p>  <blockquote>   <p><font size="2" face="Consolas">New-SPSubscriptionSettingsServiceApplicationProxy        <br />New-SPBusinessDataCatalogServiceApplicationProxy         <br />New-SPMetadataServiceApplicationProxy         <br />New-SPSecureStoreServiceApplicationProxy         <br />New-SPStateServiceApplicationProxy         <br />New-SPEnterpriseSearchServiceApplicationProxy         <br />New-SPPerformancePointServiceApplicationProxy         <br />New-SPProfileServiceApplicationProxy         <br />New-SPVisioServiceApplicationProxy         <br />New-SPWebAnalyticsServiceApplicationProxy</font></p> </blockquote>  <p>For custom service applications it’s a little bit more complicated. By the way, I most cases you need to <a href="https://blogs.msdn.com/b/mcsnoiwb/archive/2010/02/05/how-to-publish-a-managed-metadata-service-for-cross-farm-consumption.aspx#step1">set up a trust relationship</a> between the servers before trying to connect the proxy. This also applies to the out-of-the box proxies. The next step is to get the connection URI for the service application. You can use the topology web service for that:</p>  <blockquote>   <p><font size="2" face="Consolas">$connectionUri = (Receive-SPServiceApplicationConnectionInfo `        <br />&#160;&#160;&#160; -FarmUrl </font><a href="https://publisher:32844/Topology/topology.svc"><font size="2" face="Consolas">https://publisher:32844/Topology/topology.svc</font></a></p> </blockquote>  <p>Next, loop through all the service proxies to find the right proxy type. Notice that we need to look at each service proxy through the eyes of the IServiceProxyAdministration interface to get access to the GetProxyTypes method.</p>  <blockquote>   <p><font size="2" face="Consolas">foreach($sp in (Get-SPFarm).ServiceProxies)       <br />{        <br />&#160;&#160;&#160; $spa = $sp -as `        <br />&#160;&#160;&#160;&#160;&#160; </font><font size="2" face="Consolas">[Microsoft.SharePoint.Administration.IServiceProxyAdministration]       <br />&#160;&#160;&#160; $types = $spa.GetProxyTypes()        <br />&#160;&#160;&#160; $type = $types | ? { $_.FullName –eq $ProxyTypeName }        <br />&#160;&#160;&#160; if ($type –ne $null) { break }</font><font size="2" face="Consolas">       <br />}</font></p> </blockquote>  <p>Finally, create and provision the proxy:</p>  <blockquote>   <p><font size="2" face="Consolas">[Microsoft.SharePoint.Administration.SPServiceProvisioningContext] `        <br />&#160;&#160;&#160; $provisioningContext = $null         <br />$serviceApplicationProxy = $serviceProxyAdministration.CreateProxy( `         <br />&#160;&#160;&#160; $type, &quot;NG Proxy&quot;, $connectionUri, $provisioningContext)         <br />$serviceApplicationProxy.Provision()</font></p> </blockquote>  <p>(Using null for the provisioning context parameter seems to work fine, so I didn’t spend more time trying to figure out what that value should be.)</p>  <p>You can now verify that the service proxy is available in Central Administration | Manage service applications.</p>  <p>NOTICE! To make this post more readable all error handling has been removed from the scripts.</p>]]></content:encoded>
    </item>
  </channel>
</rss>