Summary This is my 2nd version of SharePoint Population Script with a few minor changes. Removed the Hosts file and host header creation to simplify the process. The new script will only create a single DB. A new Web Application using the server host name over a different port is now allowed. A Modern Team […]
Summary This blog details how to install and configure BGINFO to start on multiple servers. What is BGINFO? BGINFO stands for “Background Information”. This program will allow users to display computer details on the desktop wallpaper. This is very handy when working with multiple virtual servers that all have the same default background. Example: Get […]
Problem Description After installing the May 2021 CU you will not be able to open or add new SharePoint Store apps, because the iframe from the appinv.aspx page is now blocked by default. This is an example of the error: Browser Error: Chrome-error://chromewebdata/:1 Refused to display ‘https://spaad.contoso.local/’ in a frame because it set multiple ‘X-Frame-Options’ […]
Problem Summary Your company decided to use Exchange Online for e-mail, but leave the SharePoint Servers on-prem. After doing this you may have noticed that Exchange Online will not be able to deliver e-mail to the Drop folder, were SharePoint processes email for delivery. At this point the incoming e-mail feature in SharePoint is totally […]
Summary After configuring SharePoint with Incoming email and the SharePoint Directory Management Service” to create Distribution Lists in Active Directory, you are unable to create new groups with the following error. Sorry, something went wrong The following error has occurred while attempting to contact the Directory Management Service: The request failed with HTTP status 401: […]
Summary A customer asked if there was a method to identity documents stored in SharePoint online that were encrypted with passwords. Since nothing like this existed, it was created using PowerShell. I’m sharing this because the logic in the script may be useful for others. The Code
#Description: Iterates through each item in a specified list to find documents stored with passwords.
#Author: Mike Lee
#Disclaimer: This PowerShell script is provided "as-is" with no warranties expressed or implied. Use it at your own risk.
#Dependencies: SharePoint Online Client Components SDK: https://www.microsoft.com/en-us/download/details.aspx?id=42038
#Tested with SharePoint Online Client Components SDK version 16.0.6906.1200
#Parameters: $SiteURL, $ListName, $username
#Add references to SharePoint client assemblies
#Your SPO Tenant
$SiteURL = "https://tenant.sharepoint.com"
#The name of your document library
$Listname = "Documents"
#The admin account that has access to the library
$username = "firstname.lastname@example.org"
$password = Read-Host "Enter Password" -AsSecureString
$ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($userName, $password)
$List = $ctx.Web.Lists.GetByTitle($ListName)
#CAML Query to recursively look at all items in the library with a 5000 item row limit.
$camlQuery = New-Object Microsoft.SharePoint.Client.CamlQuery
$camlQuery.ViewXml = @"
<OrderBy><FieldRef Name='ID' Ascending='TRUE'/></OrderBy>
$items = $list.GetItems($camlQuery)
#function to read documents
function find-docpasswords($ctx, $FileUrl)
#Collect Documents Data
$FileURL = $Item.FieldValues['FileRef']
#Read the files from SharePoint online document library.
$fileInfo = [Microsoft.SharePoint.Client.File]::OpenBinaryDirect($ctx,$FileURL)
$stream = New-Object System.IO.MemoryStream
#Read the first row of bytes as text
$Start = [System.Text.Encoding]::Default.GetString($stream.ToArray()[0000..2000])
# Record files that are password protected
if($Start -match "E.n.c.r.y.p.t.e.d.P.a.c.k.a.g.e")
Write-Host "$SiteURL$FileURL -- Is Password Protected" -ForegroundColor Yellow
Write-Host "$SiteURL$FileURL -- Not Password Protected" -ForegroundColor Green
#Run the function to loop through all items in the library and find documents stored with passwords
foreach($item in $items)
$fileUrl = $item.FieldValues["fileref"]
find-docpasswords $ctx $fileurl
Takeaways This scripts loops though a specified […]
What is SharePoint Perfwiz and why do we need a replacement? SharePoint Perfwiz was a tool used by Product Support to create performance log counters on SharePoint servers to troubleshoot performance issues. This tool has been deprecated but there is still a need to collect performance data for those pesky performance issues. The Perfwiz tool […]
Summary Just a quick blog to discuss a misleading status message within SharePoint Apps “From You Organization“. Problem You may find that after installing a SharePoint App into your App Catalog, you are unable to install the app in your Site collection and the status will display “You can’t add this app here“. Cause This […]
Summary I recently worked on a case where News from associated sites are not displayed in the hub News Webpart. This took several months to resolve due to the complexity of hub news webpart and how it integrates with the Search Engine to retrieve and display news from the associated sites. Before getting into the […]
Problem Summary I recently worked on a few cases where SharePoint “Access Request” e-mails are not delivered, but “Alert” e-mails work. Since Alert e-mail are working, we know that outgoing e-mail is configured properly. However, when users request access to a new site, the access request email would never make it to the site admin […]