When trying to restore a site down to a test server for developers to work with the other day I got a big red error in PowerShell that said the site was already created in SharePoint in another place. I retried the restore a couple of different ways, but I kept getting the error:
Duplicate site found with name already exists
To prove this, open up SSMS on your SharePoint box and select the content database with the site in it you are trying to restore.
Run this SQL query against the content database:
CONCAT([DirName], N’/’, [LeafName]) AS [FullRelativePath],
LEN(CONCAT([DirName], N’/’, [LeafName])) AS [Length]
If any of your results come back larger than 256 value, that’s the issue. You need to go into the SharePoint site and either delete the offending content or rename it with a smaller shorter file name below the 256 character limit.
Once this is done, you should be able to take a backup from one farm and restore it to your dev farm onto another separate content database.
This is one way we handle restoring dev sites in multiple places that might have the same name previously in another place. I just make sure to use something like : $a = Get-SPSite -id blah blah
Today I wanted to share that I took and passed the AZ-900 certification exam. The test was something I had wanted to start looking at for a while and really helped give me a good start to learn the basics of the services and products that are offered by Azure. Plus it gives a good overview if you are new to cloud concepts in general that someone could build on and use in many different paths.
If you saw my previous post on taking and passing the MS-900 test, you can find that one here:
For this exam I started strong in my studying and then took a break in the middle of the month due to working more during the evening, but then about a week before the exam reviewed as much content and I could before taking the test.
I hope this helps anyone trying to prepare for the test as well. Let me know in the comments below anything that helped with your studying for this exam.
This past Saturday I had the opportunity to attend another great day of training provided by the great folks who are a part of the Nashville SQL Server User group as SQL Saturday Nashville 2020.
This was the 9th year in a row for the group to put on the event and this year the event was actually held outside of Nashville on the campus of Middle Tennessee State University in the Business and Aerospace building.
It was a great event location spread across multiple floors and had a great layout for being able to find the right session that you were supposed to go to.
The list of sessions for the event can be found here:
AzureDevOps has a bit more granular ability to approve based on files and others
The Future is Here for Containers
Given by Marsha Pierce, Architect, Pure Storage
Docker going away being replaced by Kubernetes
Containers use Linux functions to isolate and get better consolidation
Check out Bob Ward’s session on containers
Why Containers work better with Storage Strategies:
Deploy containers in seconds
Create clones in seconds
Mount multiple copies of DB’s without consuming extra space.
Majority of people are running Linux based containers
If you go with windows based, you might be tied down to certain vendor relationships
When using persistent storage, add files as a variable to use later when deploying the container
MS demo has a good walkthrough of creating a container, check the session slides
Rancher is a good place to start for setting up a place to test containers
Clone the volume for multiple instances
Ansible and terraform for orchestration or Jenkins
Moving past imposter syndrome
Given by Wendy Pastrick
Not necessarily how to overcome it but to reframe it as self-doubt
Alicia Liu – great blog
Fake it until you make it misrepresentation
Only an issue if you have no ideal or motivation to find the answer
Dunning-Kruger effect (overconfidence)
There is often environmental factors
Take a moment and ask is it me, or could it be other externalized factors
Don’t let the world stifle being able to have fun and enjoy what you are doing
The reality is when we share what we know with others we benefit each other
Self-doubt can be a good driver to learn more
PowerShell for the DBA
Given by Amy Herold
Blog at sqlkitten
DBATools.io getting set up and installed
Always review the code on this
Check out GitHub repo for her scripts to be able to learn more about dba tools
Also grab the Pshell module for AD groups and tools
Source Control – GitHub, TFS
Also used SQL compare and such to help with code verification
All in all it was a great day with so much new stuff to learn and was a great time had by all.
Thanks to everyone of the speakers and volunteers who help put on the events and of course thanks to all the sponsors who help put on these free events! We couldn’t do this without your help and support!
Hope to see everyone again next year for the big 10th anniversary!
Today I am happy to announce I was able to take and pass the MS-900 certification exam. It was a truly hard test for me that kept me guessing in several areas (mainly Exchange and the security sections), but I was able to score well enough to pass the exam.
So, the next questions is, what did I do to prepare and get to a point to pass the exam?
Let’s start with my current workload. As of now (January 2020), I am in a job role where I have been working with Office 365 and Microsoft 365 on a daily basis for about a year now. I normally don’t get too deep into the technical sides of things in certain areas, but I do focus most of my time in Azure AD and SharePoint Online.
This part is hard to prepare for unless you sign up for a developer tenant and really go in and try new things out or support an existing tenant on an ongoing basis. There was one test lab guide that I found that was a great overview on how to look at different aspects of Microsoft 365.
Another main resource I used for my time to study was the exam prep guide offered by @Microsoft365Pro here:
There are so many good resources in this website if you are starting as a beginner to get you all the details needed to pass the exam in this site. For the test there are a lot of other specific details you should dive deeper into in the source above to help round out your knowledge.
Another great resource to prepare for this exam is by Vlad Catrinescu. He has a great guide found here:
I applaud the folks who worked on this section of courses. There was great content and in certain cases they even had demo walkthroughs you could do to get more familiar with a topic. Great material here to prep for the exam with.
All in all I would say from a time perspective I committed about a good solid month of time to prep for this exam before going and taking it. It might take a shorter amount of time if you dig into a lot of advanced areas of the 365 product group or have been working on it a lot longer.
One thing to keep in mind through all of this is that you should focus on business ideas for this exam. Its not tech heavy and focuses on the overall view of services and concepts in Microsoft 365.
I hope this helps anyone trying to prepare for the test as well. If you have any luck from it, feel free to comment below.
This article is to describe how I resolved a very odd error in the ULS logs and with some external help, I was able to figure out and remove it to get the issue out of the way for an upcoming conversion from 2013 to 2016.
The error showed up when I ran Upgrade-SPContentDatabase on a database I got some errors described below:
Feature Upgrade: Hidden activation dependency Feature ‘MediaWebPart’ (Id: 15/’5b79b49a-2da6-4161-95bd-7375c1995ef9′) could not be activated. Exception: Failed to instantiate file “AlternateMediaPlayer.xaml” from module “MediaPlayerStyles”: The specified list does not exist..
Feature upgrade incomplete for Feature ‘PublishingWeb’ (Id: 15/’94c94ca6-b32f-4da9-a9e3-1f3d343d7ecb’) in Web ‘http://webappname.domain.com/sites/sitename/subsite1/‘. Exception: Failed to instantiate file “AlternateMediaPlayer.xaml” from module “MediaPlayerStyles”: The specified list does not exist. (Inner Exception: <nativehr>0x81070588</nativehr><nativestack></nativestack>Failed to instantiate file “AlternateMediaPlayer.xaml” from module “MediaPlayerStyles”: The specified list does not exist.)
So in order to verify this was a problem I looked into the Site Contents section and from there we noticed the style library folder wasn’t showing on the site contents.
Here’s the strange part:
If I opened up another library in explorer mode or looked at the site in SharePoint Designer I does in fact show a library named ‘Style Library’. Um…okay…
Maybe it was corrupted? At this point I am not sure.
The start of the fix was renaming the existing Style Library one so it doesn’t conflict any more. In my specific case I just added ‘_Error’ to the library name in explorer mode or SP Designer.
Next, I created a brand new document library on the site and named it ‘Style Library’.
Once that was created I needed an uncorrupted Style Library from another site to copy its contents from. Luckily I have about 250 or so to pick from… 🙂
The next step was to open the uncorrupted Style Library from either explorer mode or SharePoint Designer and copy the 4 sub folders and contents from the good site to a newly created library in the upgrade error site.
Once we did this, then we could run the upgrade-spcontentdatabase command without getting any errors. I think for good measure I may have done an IISRESET on the site as well after the upgrade attempt.
In my case though this didn’t remove the upgrade message from central admin, but after running psconfig after this the message was removed from central admin.
Hope this helps anyone who sees the same error and helps move things along to upgrade more versions of SharePoint.
I really learned a
lot of good content and best practices for different parts of using DevOps in
the day to day work I do. However, for me the best part of the day was during
the afternoon sessions called Open Spaces.
The crux of open
spaces is that the attendees can define topics or talks that they would like to
be developed or discussed further in a self-organized manner with people who
may have already done the topic or are just looking to
find out more about
The two topics I
attended for open spaces were DevOps for non-developers and automated
Just from these two
sessions alone I was able to hear from many different people from different
companies talk about how they tackled each of these as well as different tools
they are using to accomplish it.
Also we had one
entire session on trying to find out exactly what tools were available to be
content for someone who doesn’t know maybe where to start or how to begin.
I would recommend
this again to anyone from beginner to advanced in the area of DevOps, because I
think there was truly something for everyone who could benefit at this event.
I am looking forward
to this event again next year!
Thanks to all the
speakers and volunteers who made this event possible! You did a great job!
How do you go about
learning about Office 365 if you don’t have access to it? That’s a great
question and one that I personally have tried to figure out without having to
pay any money. I am of the opinion that if something is worth learning, then
there should be free ways to go about learning more about it and getting your
hands dirty while learning it.
Fortunately this is
the case with Office 365. It’s quite a beast to get your arms around with so
many service offerings and options to go out and start playing with. My goal
with this post is to show you some resources that not only get you started with
Office 365, but also help you get a demo environment with some data in it that
makes testing actually useful.
Frist thing we are
going to need if we want to start learning about Office 365 is a demo tenant.
Again fortunately there is an option for this if you sign up through the
Microsoft Developer Program at https://developer.microsoft.com
When you go to this
site you’ll be able to click into the Office 365 developer section that will
allow you to sign up for a 90 day E5 (the license with most of the bells and
whistles) tenant to practice with.
After signing up for
the developer program and verifying your email, then it will take a few hours
to spin up a tenant with the information provided. Another description of this
ca be found here:
After about an hour
of poking around, its nice, but wouldn’t it be great if there were some test
data to sort of flesh things out? I’m glad you asked! The next two items I will
describe help do just that.
On the provisioning
site, you can click under the view the designs section to see what all kinds of
different sites are being offered. As you go through and view each of them
there is a list of features, web parts, and content used that is described in each
Before trying to
deploy one or all of these examples, I think when I originally did this for the
first time I had to deploy an app catalog in my test tenant before it could
I wanted to describe
an upgrade error I ran across the other day in a SharePoint 2016 site that
needed to be cleared in order for the content database to be upgraded
First, the error I received when trying to do Upgrade-SPContentDatabase:
Feature upgrade action ‘CustomUpgradeAction.Activate404ErrorPage’ threw an exception upgrading Feature ‘Publishing’ (Id: 15/’22a9ef51-737b-4ff2-9346-694633fe4416′) in Web ‘https://webapplication/sites/spsite ‘: The site is not valid. The ‘Pages’ document library is missing.
So the error I got
is pretty straight forward, but when I went to look deeper inside the site, I
noticed that indeed in the past or for some unknown reason the library ‘Pages’
had been removed or renamed to something else.
I am fortunate in
that I have the migration tool ShareGate at my disposal to use to help this. So
what I did was find a default site with the Publishing feature enabled as well.
Then I set up my source as the default publishing site and the target as the
problem site missing the pages library. The I used the copy structure option in
order to bring the pages library over to this site that was missing it.
One thing I noticed when it copied this
library is it also copied over the ‘Reusable Content’ list as well in this
I guess if you do
not have ShareGate at your disposal, you could always download a trial copy of
the program from here
or you could copy both the pages library and the reusable content over to the
needed site by PowerShell or other method…YMMV.
After the copy had
completed, I noticed the library was in place correctly as it should be and
nothing looked to be wrong with the main site itself.
Finally I fired up
PowerShell and ran the Upgrade-SPContentDatabase command with the correct
content database and sure enough now this previous error did not show up and
the DB is now marked ‘No Action Required’
Hope this helps
anyone who runs into this error in the future.
On August 9th and 10th I had the wonderful privilege to attend and speak at the 2nd annual PowerShell conference in Chattanooga, TN. It was held again at the great venue of Chattanooga State Community College. It was a great event put on by @PSJamesP , @LittlejohnPSH , and a great group of folks who knocked it out of the park again this year!
Friday the all day session I attended was Advanced PowerShell Scripting WorkShop given by none other than @JeffHicks . I learned even more about best practices when building new scripts and have included my notes in my new GitHub repo here.
On Saturday, it was a busy time of multiple short 45 minute talks given by a great group of speakers:
This is a quick reminder that there’s a great local event coming up on August 9 and 10th in Chattanooga, TN if you are free for a full two days of learning PowerShell and various other topics related to PowerShell.