SharePoint Open with Explorer always prompts for credentials

Quick fix:
1. Open Registry Editor
2.Locate and then click the following registry subkey:


3.On the Edit menu, point to New, and then click Multi-String Value.
4.Type AuthForwardServerList, and then press ENTER.
5.On the Edit menu, click Modify.
6.In the Value data box, type the URL of the server that hosts the Web share, and then click OK.


7.Exit Registry Editor.
8. Open Control Panel > Administrative Tools > Services
9. Restart “Web Client” service

KB Reference:


How to insert image into SharePoint Survey Questions

1. Add SharePoint Survey Question and put the identifier tag to display the image.

e.g. Question:

What do you think about images below:


A. Amazing

B. Nothing special

C. Ugly

2. Add content editor and insert JavaScript to replace the identifier tag with image link.

<script language="JavaScript">

var className;
className = ‘ms-formlabel’;

var elements = new Array();
var elements = document.getElementsByTagName(‘td’);

for (var e = 0; e < elements.length; e++)
        if (elements[e].className == className)
                elements[e].innerHTML = elements[e].innerHTML.replace(‘#img01#‘,'<img src="{image path}"></img><br><br>’);


Note items with yellow highlight above.


Create email notification for SharePoint health analyzer result using Windows PowerShell


1. Create a file with extension .ps1, e.g. SPErrNotification.ps1

2. Edit the file and paste the following script


if ($PSVersionTable) {$Host.Runspace.ThreadOptions = ‘ReuseThread’}
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue

$serverName = $args[0]

#Get Central Admin Web Application and Web objects
$caWebApp = (Get-SPWebApplication -IncludeCentralAdministration) | ? { $_.IsAdministrationWebApplication -eq $true }
$caWeb = Get-SPWeb -Identity $caWebApp.Url

#Set up from, to and server addresses
$toAddress = ""
$ccAddress = ""
$fromAddress = $caWebApp.OutboundMailReplyToAddress
$serverAddress = $caWebApp.OutboundMailServiceInstance.Server.Address

#Get Health Analyzer list on Central Admin site
$healthList = $caWeb.GetList("\Lists\HealthReports")
$displayFormUrl = $caWeb.Url + ($healthList.Forms | where { $_.Type -eq "PAGE_DISPLAYFORM" }).ServerRelativeUrl
$queryString = "<Where><Neq><FieldRef Name=’HealthReportSeverity’ /><Value Type=’Text’>4 – Success</Value></Neq></Where>"
$query = New-Object Microsoft.SharePoint.SPQuery
$query.Query = $queryString
$items = $healthList.GetItems($query)
#Set up e-mail message subject and HTML body
$DateToday = Get-Date
$msgTitle = $serverName + " – Health Analyzer results for farm " + $caWebApp.Farm.Name + " – " + $DateToday
$msgSubject = $serverName + " – Health Analyzer results – " + $DateToday
#HTML head
$head = "<style type=`"text/css`">.tableStyle { border: 1px solid #000000; font-size:11pt; }</style>"
$head = $head + "<Title>$msgTitle</Title>"
#Create HTML body by walking through each item and adding it to a table
$body = "<H3>$msgTitle</H3><table cellspacing=`"0`" class=`"tableStyle`" style=`"width: 100%`">"
foreach ($item in $items)
    $itemUrl = $displayFormUrl + "?id=" + $item.ID
    [array]$itemValues = @($item["Severity"], $item["Category"], $item["Explanation"], $item["Modified"])
    $body = $body + "<tr>"
    $body = $body + "<td class=`"tableStyle`"><a href=`"" + $itemUrl + "`">" + $item.Title + "</a></td>"
    $itemValues | ForEach-Object {
        $body = $body + "<td class=`"tableStyle`">$_</td>"
    $body = $body + "</tr>"
$body = $body + "</table>"
#Create message body using the ConvertTo-Html PowerShell cmdlet
$msgBody = ConvertTo-Html -Head $head -Body $body
#Create e-mail message object using System.Net.Mail class
$msg = New-Object System.Net.Mail.MailMessage($fromAddress, $toAddress, $msgSubject, $msgBody)
$msg.IsBodyHtml = $true
#Send message
if ($items.Count -gt 0)
    $smtpClient = New-Object System.Net.Mail.SmtpClient($serverAddress)

3. Schedule to run the script using Windows Task Scheduler

powershell.exe –noexit  [FilePath]\SPErrNotification.ps1 [SERVERNAME]