Michael Niehaus' Windows and Office deployment ramblings
A new script has been added to the standard client task sequence template in Deployment 4 Beta 3. This script helps with the USMT data migration process by scanning the existing OS to see what file types are registered to applications installed on the machine, then generates a new USMT XML file to tell USMT to grab all files of those types. While this doesn't do anything to help with the migration of settings associated with those applications, it at least does make sure that data files are captured and restored.
Check out the ZTIAppXmlGen.wsf script to see how this works. Right now, this will only work for Lite Touch and SMS 2003 deployments.
I know it's kind of old news by now, but if you've missed the various blog entries, e-mails, and other assorted announcements, we have released a new beta 3 of Deployment 4 (the codename for the next version of BDD 2007 - the "official" name is still being determined) on the http://connect.microsoft.com site. To access this web site, you need to follow these steps:
Please download it and give it a try. This new beta can be installed on the same computer as BDD 2007, so you can try it out side-by-side. (Just don't point both versions to the same distribution directory as that would probably confuse BDD 2007.)
Microsoft Research has created a new Live Search front end that uses Silverlight. Imagine that, a combination of search and a rich user experience :-) Check out http://www.tafiti.com to see it in action. Be sure to click on the little tree icon to see a tree view (literally) of your results.
It took a while to get around to it, but we finally got it posted. You can download the MSI installer from http://www.microsoft.com/downloads/details.aspx?FamilyId=6A67F884-D629-4962-BD0A-C51BAD560354&displaylang=en. For those of you who downloaded the source for the original BDD 2007 release, this source will install into a separate directory, and from there you can compare the two to see the changes made for the patch.
See the blog posting at http://blogs.technet.com/mu/archive/2007/08/14/the-microsoft-update-catalog-v1-is-live.aspx for more details. For those of you who have been looking for one place to download content from Microsoft Update and Windows Update, this is the place. Content available includes security updates, drivers, and much more. For all the items you want to download, place them in the download cart and download them in one big batch.
For security updates, the web site will download the needed MSU file that you can import into BDD 2007 Workbench. For drivers, it will download a CAB file containing the needed driver files, so you'll first need to extract the contents of the CAB file before you can import them into Workbench.
I do have to say, though that some of the files names that it uses are quite entertaining. Here's what it called the driver CAB file that I downloaded:
X86-ar_zh-tw_cs_da_de_el_en_es_fi_fr_he_hu_it_ja_ko_nl_no_pl_pt-br_ru_sv_tr_zh-cn_pt-1074443_26d7f118b7b3ebaba7c1314234ba7c7930de25d1
Yes, you can. However, because there is no volume license version of Windows Vista Ultimate, you would need to have a separate license key for each machine being deployed, and each of these machines would need to activate to the Microsoft activation servers on the Internet.
The simplest way of handling this is to use BDD 2007 Lite Touch and tell the wizard to prompt for a product key; the person performing the deployment would then need to make sure each key is used once and only once. And if Windows Vista Ultimate were ever reinstalled on the computer, you would want to use the exact same key the next time.
So while the manual approach is certainly doable, with a little creativity it is possible to do this using BDD 2007's database capabilities to complete automate the whole process. The required pieces:
So first let's look at the table. It's pretty simple, as only two columns are needed: the product key, and the computer that has claimed it. If the key is unclaimed, the second column would be blank. So that leads to the next question: how to identify the computer. My preference is to use a unique value like the asset tag of the computer, although there are other options too (SMBIOS UUID, MAC address, serial number, etc.). So here's the SQL statement to create the table:
CREATE TABLE [dbo].[ProductKeyMapping]( [ProductKey] [varchar](50) NOT NULL, [AssetTag] [nvarchar](250) NULL)
Then, we need a stored procedure that will first look for an already-claimed key and if one isn't found, claims a new one. In either case it needs to return the assigned key back to the caller. Here's the source for the stored procedure:
CREATE PROCEDURE [dbo].[GetProductKey] ( @assetTag varchar(250) )AS DECLARE @foundCount int SET NOCOUNT ON /* Look for the existing row */ SELECT @foundCount = COUNT(*) FROM ProductKeyMapping WHERE AssetTag = @assetTag IF @foundCount = 0 BEGIN /* Not found, consume a key */ BEGIN TRANSACTION UPDATE TOP (1) ProductKeyMapping SET AssetTag = @assetTag WHERE AssetTag IS NULL COMMIT TRANSACTION END /* Now return the row */ SELECT ProductKey FROM ProductKeyMapping WHERE AssetTag = @assetTag RETURN
Then all you need to do is tell BDD to call the stored procedure. Assuming the database is on server SERVER1, uses the default instance, and is named BDD2007, the entries needed in CustomSettings.ini would look something like this:
[Settings]Priority=ProductKeyMapping [ProductKeyMapping]SQLServer=SERVER1Database=BDD2007StoredProcedure=GetProductKeyParameters=AssetTagSQLShare=ZTI$
[Settings]Priority=ProductKeyMapping
[ProductKeyMapping]SQLServer=SERVER1Database=BDD2007StoredProcedure=GetProductKeyParameters=AssetTagSQLShare=ZTI$
So where's the rest of the CustomSettings.ini? Well, this is only a sample; you would want to merge this into your (likely bigger) existing file. And what about the last line, specifying SQLShare=ZTI$? That is so that BDD can make a secure, integrated security connection to the database even from Windows PE: the BDD scripts will first map a driver to the specified server and share (e.g. \\SERVER1\ZTI$ from this example), then make a secure named pipe connection using the same credentials from that connection. (If you want to use TCP sockets instead of named pipes, you would need to specify a SQL ID and password to make the database connection, as Windows PE isn't able to make an integrated security connection using TCP.)
This same process can be used for both Lite Touch and Zero Touch (SMS 2003) deployments. See, not that complicated :-)
Desktop deployment is a fairly broad topic, covering various products, tools, processes, etc. We try to cover as much as we can in the Business Desktop Deployment solution accelerator (http://www.microsoft.com/bdd), on the TechNet Desktop Deployment TechCenter (http://www.microsoft.com/desktopdeployment), at conferences like TechEd, Microsoft Management Summit, and IT Forum. But most of that is one way: Microsoft providing information to the IT Pros.
We also try to stay involved in deployment communities, probably not as much as we'd like, but we try our best. The places that you are likely to see me online:
The MSSMS list probably gets most of my attention, for one important reason: it's delivered right into my Outlook inbox and I can reply with no special effort required. Visiting the others requires extra effort. (Yes, the others are available via RSS subscriptions, but they have some significant limitations, e.g. not providing the whole thread, that keeps those feeds from being terribly convenient or easy to use.)
If you get really desperate, feel free to e-mail me directly at mniehaus@microsoft.com. Just don't expect an immediate reply, especially on more complex questions. There's a reason I have gigabyte of e-mail, and most days I'm not able to keep up.
Interesting in viewing some of the sessions presented at the largest Microsoft conferences held worldwide? Check out the Microsoft TechNet EMEA IT's Showtime web site at http://www.microsoft.com/emea/itshowtime/. They have recordings from MMS, TechEd US, TechEd IT Forum (Europe), TechEd Australia, and other conferences.
Included in the list is one of the sessions that Tim Mintner and I did at TechEd 2007 in Orlando:
http://www.microsoft.com/uk/technet/itsshowtime/sessionh.aspx?videoid=531
Kevin Turner (Microsoft's COO) announced during his keynote session at the Worldwide Partner Conference this week that Windows Server 2008, Visual Studio 2008, and SQL Server 2008 will all launch on February 27, 2008. While that probably feels like a long time off to you, I can assure you that it instills in me a sense of panic: We are planning to offer full Windows Server 2008 (and Windows Server 2003) deployment support in the next version of BDD. The days are ticking away...
Rest assured we are working hard on this and have it working well in our labs already, so we will be fully prepared for this launch date.
Now, keep in mind that the System Center Configuration Manager 2007 launch date is several months earlier, so if the Windows Server 2008 date makes me panic, just imagine what that SCCM date must do :-)
p.s. If you are in Denver at the conference, be sure to look me up.
If you have manually moved the distribution share since you installed BDD 2007, updating the HKLM\Software\Microsoft\BDD\Distribution_Dir registry value to tell BDD the new location, you may notice that the patch install still tries to update the old location. This happens because MSI still thinks its in the old location.
To avoid this particular problem, you can add an additional parameter to the patch installation command line:
msiexec /update BDD2007_x86_Patch1.msp REINSTALL=ALL REINSTALLMODE=as DISTRIBUTIONDIR=c:\distribution /quiet
Just substitute your location for "c:\distribution" and you should be all set.
If you have made modifications to any of the scripts used in BDD 2007, you will want to make a backup copy of your changed scripts before installing the patch. The above command will cause the customized scripts to be overwritten. After the patch has been installed, you can compare the copied files against the newly patched files, then reintegrate your changes (if necessary - some of the changes in the patch were made so that you don't need to make as many script modifications).