I recently had the opportunity to design and implement two Sharepoint migrations. One was from Sharepoint 3.0 to Office 365 and the other was Sharepoint 2003 to Sharepoint 2013.
For the original project (WSS 3.0 – O365), we originally chose the Dell Sharepoint Migration Suite, however, I encountered a lot of issues with it, mainly the fact that I was having difficulty migrating data because it was very inconsistent, some of it was there and some of it was missing.
In the end, I opted to use a tool called “Sharegate” and I had such good experience with it, that I wanted to write a whole post dedicated to it. Sharegate’s main feature is the Migrating Tool, but it does include a Sharepoint Management application that can report on anything that you could think of in a customer’s environment. Need a report for files a certain size? Got that. Need a report to audit site collection permissions? Got that too Need a report to list the content of every site collection and subsites? Check that one off too. It even has a nice tool to find obsolete permissions in your environment and automatically clean them up in preparation to a migration. Sweet!
The migration interface is pretty easy to use, you just connect to the source Central Admin (or Site Collection or Subsite) and then connect to the destination Central Admin or Sharepoint Administrator in Office 365’s case. You can then drag and drop the content to be copied and choose to overwrite or merge any differences. This process can be done with Sharepoint, OneDrive and even Google Drive. I also love the fact that you can run a pre-migration check report and be able to resolve any issues beforehand, so as to have the smoothest possible run.
Where I think this application excels the most, is the ease of use and how easy it is to map user and group permissions for content you are migrating for which a user is no longer active at your organization. I was also able to script out the migration to save time and make sure any errors due to configuration of the migration minimized.
For those interested in my Sharegate Migration Powershell Script and how to use it for your My Sites migrations, follow these steps:
- Map your users and groups in the Sharegate Migration Tool, if you have no users, I would map the unresolved users and groups at the very least.
- In Sharegate, you should have the option to export this list into a SGUM file.
- Create a CSV file with the following headers, SourceURL, DestinationURL and sAMAccountName. Populate these fields accordingly. My CSV and Powershell was tailored specifically to migrate My Sites which is why you see the sAMAccountName field, which should be populated with the username of the person’s My Site who you are migrating.
- Put the CSV and SGUM file into the same folder as the below Powershell and run it. I like to run it in the Powershell ISE. The script will create a report for each user that it migrates.
#Import the Sharegate Powershell module.
#Import CSV file with 3 columns; SourceURL, DestinationURL, sAMAccountName
$table = Import-Csv -Path "C:\Script\SP2013-MySites-Restart.csv"
#Import user and group mappings from GUI exported file
$usermappings = Import-UserAndGroupMapping -Path "C:\Script\UserAndGroupMappings.sgum"
#Uncomment for incremental copy settings and uncomment copysettings parameter in line 22 "Copy-Site"
$copysettings = New-CopySettings -OnContentItemExists IncrementalUpdate
#Loop through each row in the CSV file
ForEach ($row in $table)
#Set variables based on CSV columns
$srcSite = Connect-Site -Url $row.SourceURL
$dstSite = Connect-Site -Url $row.DestinationURL
$username = $row.sAMAccountName
#Copy site and capture migration results
$result = Copy-Site -Site $srcSite -DestinationSite $dstSite -MappingSettings $usermappings -Merge -Subsites -InsaneMode -CopySettings $copysettings
#Export results to Excel workbook
Export-Report $result -Overwrite -Path C:\Script\MySites-Results\$username.xlsx
If you are a System Center professional living in South Florida or are interested in networking with a System Center professional in South Florida, make sure to join our user group on LinkedIn.
It was started on January 30, 2014 and we are planning on meeting at least twice a month with permission to use Microsoft’s Fort Lauderdale campus and other venues to meet.
For any questions, please contact the group’s owner, fellow colleague, Balaji Karrupuswamy or feel free to browse directly to the group’s link.
See you soon!
I know it’s been almost a month since System Center Universe 2014 was held in Houston, TX. There were many industry experts that served as guest speakers, a few names I’m sure you all have heard, Kent Agerlund from Coretech and Wally Mead from Microsoft’s Configuration Manager team.
While all presenters entertained us with a wealth of information, industry tips and tricks and excellent demos, the very first presentation by Kent Agerlund stood out the most to me. His presentation titled “Become the Hero in the Datacenter” (link to his PowerPoint deck), featured all open source tools meant to making the administration of your SCCM infrastructure much easier. Make sure to check out his blog entry for a listing of all tools he discussed during his presentation.
If you did not attend either in person or via live stream, I would suggest to not miss next year’s session as there is a treasure trove of information that is discussed.
Recordings: To view the presentations from this year’s conference, please view thevideo playlist.
PowerPoint Presentations: To download the speakers’ PowerPoint presentations, click here.
Microsoft Office 2013 ships with a great utility to manage volume licensing in the form of VBScript. You can use it to manage volume licensing for the local computer or even a remote computer; provided you enter credentials with administrative access to the remote system.
This VBScript is called OSPP.VBS and is located here:
To run this file, open a command prompt in administrator mode and change directory to the above path.
Some common switches I use are below:
- Activating a license
cscript.exe ospp.vbs /act
- Resetting a license
cscript.exe ospp.vbs /rearm
- Status of a license
cscript.exe ospp.vbs /dstatus
- Input a new key
cscript.exe ospp.vbs /inpkey:<KMS/MAK volume key>
- Removing a license (You need to get the last 5 characters of the license to be removed via /dstatus)
cscript.exe ospp.vbs /unpkey:<last 5 of volume license to be removed>
- Manually set KMS host
cscript.exe ospp.vbs /sethst:<FQDN of KMS host>
- Manually set KMS host port
cscript.exe ospp.vbs /setprt:<port - 1688 is default>
- Manually configure DNS domain in which KMS SRV records are found
cscript.exe ospp.vbs /skms-domain:<FQDN>
- Of course if you need help, you can always display the full switch list by running
You can also combine several commands into one continuous command to achieve several actions. For example, to manually configure a KMS host, port and activate, use the following command:
cscript.exe ospp.vbs /sethst:kmshost.domain.com & cscript.exe ospp.vbs /setprt:1688 & cscript.exe ospp.vbs /act
Also, here is a link to the KMS client setup keys for VL Office activations. I hope this aids you with replacing and deleting volume licensing without having to reinstall the entire Microsoft Office Suite.
If you’re in an environment that is just starting to adopt Windows 8.1, Microsoft Office 2013 and Windows Server 2012 R2, make sure you install KB2885698 to your Windows Server 2008/ 2012 or 7 KMS host to add support.
While were on topic, remember to use a valid KMS Client Setup Key when attempting to activate.
The command to activate is:
slmgr.vbs /ipk <setup key>
Now that the Windows ADK for Windows 8 (WADK) superseded the old Windows AIK, the procedure to create a Windows PE image has slightly changed. In my opinion, it has greatly improved as Microsoft has now included a simple command-line utility that is capable of creating both ISO and USB flash drives. The name of this utility is MakeWinPEMedia.cmd, and once the WADK is installed, you can find this utility here:
C:\Program Files (x86)\Windows Kits\8.0\Assessment and Deployment Kit\Windows Preinstallation Environment\MakeWinPEMedia.cmd
OK, so how do you create a WinPE 4.0 image? Let’s read ahead!
- You will need to download and install Windows ADK for Windows 8. The installation is as simple as running the adksetup.exe executable and making sure to check off the Windows Pre-installation Environment option.
- Once installed, click on Start, All Programs, Windows Kits, Windows ADK, Deployment and Imaging Tools Environment.
- Type the following commands depending on what hardware architecture you need:
copype.cmd x86 C:\WinPE_x86
copype.cmd amd64 C:\WinPE_x64
- Once the files are copied, you can optionally mount the boot.wim. You would want to do this in order to integrate mass storage, USB and ethernet hardware drivers and/or scripts.
ImageX.exe /Mountrw C:\WinPE_x86\media\sources\boot.wim 1 C:\WinPE_x86\mount
For hardware drivers integration, I like to use DISM GUI, a graphical user interface to the excellent command-line utility, DISM.EXE. Though it has no documentation yet, the interface is pretty intuitive. In a nutshell, you choose the WIM file and mount location, then go to the Driver Management tab and choose a directory of drivers to integrate.
For utility and/ or scripts, I always add GImageX, which is a graphical user interface for IMAGEX.EXE command-line utility. When adding this utility, the original Microsoft ImageX.exe executable is not needed, only the GImageX.exe executable is required. Also, please make sure to add this to the “C:\WinPE_x86\mount\Windows\System32” directory.
- Once your changes to the WIM are complete, you will need to dismount and commit all changes:
ImageX.exe /Unmount /Commit C:\WinPE_x86\mount
- Now we can build out our WinPE image depending on our target, USB or ISO image:
MakeWinPEMedia.cmd /ISO C:\WinPE_x86 C:\WinPE_x86\WinPE_x86.ISO
USB Flash Drive
MakeWinPEMedia.cmd /UFD /F C:\WinPE_x86 G:
I hope you have enjoyed this tutorial as much as I have enjoyed making it for you. If you have any questions, please comment. Thank you in advance.
I’m not going to reinvent the wheel here, especially since there’s an extensive post by Liuxiang Chen detailing all the log files in SCCM.
I will say this however, to make it easier to read these files use CMTRACE.EXE in SCCM 2012 or SMSTRACE.EXE in SCCM 2007.
CMTRACE.EXE has been included in the latest ConfigMgr 2012 Toolkit SP1 or on the SCCM server at the following share:
Obviously the preferred client installation method is either via an automatic client push or manually pushing out the client using the SCCM Administration Console:
However, this method sometimes doesn’t work either because of permissions issues or WMI corruption. Of course, you want to fix the underlying problem that is causing a manual client push not to work.
For those of you interested in an alternative way to install the client, you can use the excellent PSEXEC.EXE command-line tool from Mark Russinovich Sysinternals Suite:
PSEXEC.EXE command window with server names blurred.
psexec.exe \\RemoteComputer -s -d \\SCCMServer\SMS_SiteCode\Client\ccmsetup.exe /logon SMSSITECODE=ABC /MP:MPServer.domain.local CCMHOSTNAME=cm.domain.com
In the above example, PSEXEC.EXE initiates a remote connection to “\\RemoteComputer” using the System Account (/S) and then passes the command and terminates immediately (/D).
For a list of PSEXEC.EXE switches go to http://technet.microsoft.com/en-us/sysinternals/bb897553.
For a list of CCMSETUP.EXE switches go to http://technet.microsoft.com/en-us/library/gg699356.aspx.
Thank you for visiting my blog! I have always wanted to write one, but I could never find a subject I thought would be worthy enough for most people to read. Until one evening, after applying for a role at Microsoft as a Premier Field Engineer – SCCM, it dawned on me that I would love to write more about my specific experience with System Center and focus primarily on SCCM 2012. I hope that my experiences and tips will be able to help a fellow colleague. Thank you very much and please feel free to comment.