Wednesday, October 2, 2013

Bringing MMS to TechEd

Today Microsoft announced that they'll combine MMS with TechEd North America 2014.

I'm sad...
I'm disappointed...

I doubt it'll positively influence the quality of the event and that we'll get what we used to during previous MMS events.

Friday, September 6, 2013

Wednesday, June 26, 2013

change Source Path(s) in ConfigMgr 2012

i was migrating a ConfigMgr 2007 site to ComfigMgr 2012 ...
basically you can use built-in migration tool and it should work...
and yes, it even works ... in most cases
and usually you don't have to do much things afterwards.

I'm not gonna cover all the possible pitfalls right now, but only a few regarding content source location.

as it has already been explained here and there, and amog others in the blog mentioned below, Migration Tool DOES NOT / CAN NOT change the content source path!


That's not a problem, we can simply use the script from Inframon Blog to bulk update package content source.
There is however one nasty issue with that script and it should be corrected - the script is using String.Replace and this is case sensitive. This won't change anything if your $source and PkgSourcePath contain even one letter in different cases.
But it is easy to fix by adding ToLower() just before Replace :)
below is the case insensitive version to replace package source path

=====================================================

$sitecode = "XYZ"
$source = "\\OLD_PATH\sccm_source"
$dest = "\\NEW_PATH\sccm_source"

$packages = Get-WMIObject -namespace "root\sms\site_$sitecode" -class SMS_Package
foreach ($package in $packages) {
  $id = $package.PackageID
  $single = Get-WMIObject -namespace "root\sms\site_$sitecode" -class SMS_Package -filter "PackageID='$id'"

  foreach ($object in $single) {
    $path = $object.PkgSourcePath.ToLower().Replace($source, $dest)
    $object.PkgSourcePath = $path
    $object.Put()
  }
}

=====================================================

This is it....
or not yet ;)

The script above will update only the package content source path, and what about the rest?

if you've got drivers - you'll have to update driver source path as well!
the following script is a modification of the above to replace driver source path

=====================================================

$sitecode = "XYZ"
$source = "\\OLD_PATH\sccm_source"
$dest = "\\NEW_PATH\sccm_source"

$drivers = Get-WMIObject -namespace "root\sms\site_$sitecode" -class SMS_Driver
foreach ($driver in $drivers) {
  $id = $driver.CI_UniqueID
  $single = Get-WMIObject -namespace "root\sms\site_$sitecode" -class SMS_Driver -filter "CI_UniqueID='$id'"

  foreach ($object in $single) {
    $path = $object.ContentSourcePath.ToLower().Replace($source, $dest)
    $object.ContentSourcePath = $path
    $object.Put()
  }
}

=====================================================

information about WMI calsses used:
SMS_Packages - http://msdn.microsoft.com/en-us/library/cc144959.aspx
SMS_Driver - http://msdn.microsoft.com/en-us/library/cc146249.aspx

Using information from TechNet you can modify anything you want ;)

Disclaimer: the scripts are provided as-is without any warranty or support!

Thursday, March 7, 2013

SCCM 2012 SP1 OSD changes

Microsoft has changed the way how Operating System Deployment works in SCCM 2012 SP1 to improve Windows 7 and Windows 8 deployments.
All the new things in SCCM SP1 are described HERE , just look for Operating System Deployment.

One important thing to know is that build and capture works now different and OS deployment with Setup.exe is not supported any more.
How to build and deploy Windows 7 using SCCM 2012 SP is already covered in these two blogs and i'm not going to describe it again.
http://www.toolzz.com/?p=879
http://scug.be/sccm/2013/01/13/configmgr-sp1-windows-7-deployment-is-not-supported-anymore-from-the-setup-exe/

I'd like to highlight a few operating system deployment failures when using autogenerated vanilla SCCM 2012 SP1 task sequences.

when you create your Build&Capture Task Sequence from the menu, you'll get the following format disk step




Before you'll go and capture your image, do not forget to add "Fix C drive" step, as mentioned in the blogs above. You must set task sequence variable OSDPreserveDriveLetter to false if you want your Windows 7 to be running from C-drive.


When you capture the image when the disk was formatted in this way, your WIM will contain two partitions





let's create out-of-the-box deployment task sequence with default settings ;)

point to the Windows 7 image, we've created in the previous step and pay attention to the Image section


If you've chosen "All Images", then you probably should read futher...

just click through the next windows to finish the TS creation.

And here we are, this is our vanilla deployment task sequence


unfortunately, if you'll run it just like this, it will most likely fail :(
Please note: if you've left check-box"configure TS to use with BitLocker" switched on, it may also fail, but due to a different reason which is outside the scope of this post. to make sure your test deployment won't fail on BitLocker steps - remove, disable or set "continue if failed" for "Enable BitLocker" step.

Failure 1. TS fails with 0x8000FFFF error just a few seconds after launch.



Cause - wrong partition sizing

Let's take a close look at Format disk step





When the WIM image was selected ConfigManager inherited the disk geometry from the image. The step is failing even if it is running on the same system where i've created the image!
THIS IS REALLY BAD! 
This is like we are back in 90's when cloning disks using some tools was suffering from incompatibility between different disk types. In my opinion it must be fixed by Microsoft.
Solution is quiet simple - change partition size from fixed size to 100% or what ever you want and this problem is solved.

Failure 2. TS fails with 0x80004005 error when applying data image


Cause -Apply Data Image step configuration
Look at the destination configuration



Solution:
- you have to either get rid of this step at all or at least disable it for now
- or you have to change the destination to target to the right disk and partition.