SharePoint, Office 365, Azure, and Front end JS geek. – Chicago IL
SharePoint, Office 365, Azure, and Front end JS geek. – Chicago IL

PowerShell

Clone Content Database – SQL Copy + Generate SPSite GUID

Tried of waiting for Backup-SPSite / Restore-SPSite?  Me too.  Why not clone the SQL content database with SQL backup and restore?  

 

Well, SharePoint requires every Site Collection on a given to have a unique GUID.  When we clone a SQL content database and attempt Mount-SPContentDatabase an error comes up that the GUID already exists on the local farm.  No bueno.

Why not generate and replace the GUID?   In theory, we can UDPATE the SQL database internally with fresh new GUID numbers and SharePoint would recognize as new site collections.  No conflict.  That is exactly what the PowerShell below does.  By walking the schema, finding “SiteID” and “tp_SiteID” columns, and replacing the old GUID with a new GUID.

The larger the site collection, the better this works on time savings.  SQL internally can backup and restore a database much faster than waiting for Backup-SPSite/Restore-SPSite to export/import binary data across the wire to the SharePoint front end file system.

In the example below you can see a brand new team site created with GUID “82dad5a8-aa6e-4480-a10e-16cd2597c18b” in a dedicated SQL content database, taken offline, updated with PowerShell to replace old GUID with new GUID “0f59c302-92ea-4fac-b32b-799f3dd41264” and then successfully consumed again.

 

  • NOTE – You still need a unique URL, so be sure to run Mount-SPContentDatabase against a secondary web application.
  • NOTE – This is completely unsupported.  Use at your own risk.   Worked well on Dev and Test environments for me.

 

PowerShell Source Code

 

Context Diagram

image

Screenshots

image
image
image
image
image
image
image
image
image

 

 

References

Many ways to query AD users

There are multiple good PowerShell options to query an Active Directory user object.   Below are three code snippets which all locate an AD user.   Cheers!

 

Option 1- Get-ADUser Login

 

Option 2- Get-ADUser Filter

 

Option 3 – LDAP Directory Searcher

 

Option 4 – DSA.MSC

  1. Open Active Directory Users and Computers.
  2. Right-click the domain object and select Find.
IC125695
  1. Active Directory Users and Computers Select Find
  2. Click the drop-down list next to Find, and then select Custom Search.
IC25246
  1. From the next screen, select the Advanced tab.
  2. Type the appropriate LDAP statement under Enter LDAP query.

 

Option 5 – LDP.EXE

  1. Download from https://www.microsoft.com/en-us/download/details.aspx?id=15326
  2. On the Browse menu, click Search.
  3. The Search dialog box opens.
  4. To search for all users that have a first name of John and a last name of either Smith or Jones, type the following in the Filter field:
  5. (&(objectClass=user)(givenName=John)(|(sn=Smith)(sn=Jones))))
Image result for ldp.exe

 

 

References

PowerShell – Cache AD User Lookup

Given a filter value, this PowerShell function will query Active Directory to find a matching user object and store results in a memory cache.  By default “samAccountName” is used for filter.  Optional field name can be provided to filter by any field such as Manager, Mail, or DN. 

Cheers!  

shades_smile

 

 

Source Code

https://github.com/spjeff/spadmin/blob/master/lookupADUser.ps1

 

 

Screenshot

2017-01-27_14-18-07

Replace CE / SE Web Part Content PS1

Managing front end code (HTML/JS) embedded within Script and Content Editor Web Parts can be a hassle.   With multiple instances scattered across ASPX pages, web part galleries, and many sites quickly becomes untenable.

The below PowerShell script gives SharePoint admins a new way to search/replace the internal text of CEWP/SEWP web parts within a target site collection.    Updating a URL reference or DNS name can now be done across potentially hundreds  of WP in just a few minutes.

For example, a team site having 1 CEWP and 1 SEWP with the world “hello” can be quickly replaced with “hola” by running this script.

Cheers! 

shades_smile

 

Source Code

 

Screenshot – Before

1

 

3

 

Screenshot – After

5
6
7

 

8

© Copyright 2016
@ SPJeff

Return to Top ▲Return to Top ▲