Tag Archives: 2013

2013 – My year in review, MDT, MCT, Music, Vinyl, Concerts and more…

Published / by Rens Hollanders / Leave a Comment

OK guys, last day of the year. Time for a recap from me –  Rens Hollanders. 2013 has been a interesting year for me. A year which I have started on most of my blogs (since I started with blogging somewhere back in 2010). Also a year I have gained more knowledge and worked with Microsoft Deployment Toolkit then ever before…

But before all of this became so interesting to me, I started the year in mourning over the loss of a family member who was very dear to me, my uncle Wil (Willem), who unfortunately died at the age of 55 one week before 2013. Although losing someone who is dear to you is never a great experience, since it causes much sorrow and grief. The positive thing about it, is that it has brought our family closer to my experience then ever before. Something I will cherish from this day on.

Kicking it of on TechdaysNL (7 & 8 March) The Hague, was a very inspiring moment for me, when first meeting Johan Arwidmark in person, known for his deployment blogs: http://www.deployvista.com/ and http://deploymentresearch.com/

Johan inspired me to commit myself more on the topic of Operating System Deployment, and through my own experiences, you can now read my practical experiences on the things I encountered and have dealt with.

2013 Was also the year I followed the didactic course which allowed me to subscribe myself as an Microsoft Certified Trainer. Having this title means, that I may teach and explain the topics which are in my area of expertise and I have a Microsoft Certificate of.

The great thing about becoming an MCT is that it enables me to carry out my enthusiasm for the products I work with, to hopefully inspire other people to do the same. Also it enables me to get trained better at speaking with people from all levels of the (IT) society; talking alignnone stuff to a tech guy, and talking fluffy-talk to managers and the board requires empathy and the ability to translate the things you want to say or explain each on a different level and angle.

I often have coffee breaks with a colleague of mine who is a IT architect, to talk about the ‘this and that’ of IT, and to my personal opinion IT is about 40% technique and 60% communication. Something I will always have in the back of my mind when talking to people, and I would like to give the same advice to whomever this is reading.

2013 Was also a year I became overly active on social.technet.com, especially on the MDT forum part. Having more replies then ever before and more answers then ever before, this is a part of my contribution back to the community. Helping people out when I’m trying to reach the top of the league myself, is something I can only see as the appropriate thing to do. Giving back to the community, as much as I can, as much as is relevant.

As for my own website, these where the most read articles in 2013 (since I started tracking with Google Analytics):

  1. MDT 2012 Settings for fully automated LTI deployment, Part II: Customsettings.ini 8259 hits
  2. MDT 2012 Settings for fully automated LTI deployment, Part I: Bootstrap.ini 3745 hits
  3. MDT 2013 – Deploy HP Elitepad 900 using the HP Expansion Jacket, HP Dockingstation, MDT2013, WinPE 5.0 and ADK 8.1 2367 hits
  4. SCCM / MDT: identifying SSD’s from your Task Sequence by Windows Performance Index! 2155 hits
  5. MDT 2012 – Creating those nice round figured Hard Disk partitions! 1528 hits

Thank you all for visiting my site, I hope you all enjoy reading the material that I’m posting, and any feedback or reaction will be appreciated!

But it isn’t all about technology, I do have a life outside MDT 🙂 As some of you may know I’m a music fanatic, enthusiast who loves to listen to music all day long, talk and discuss about it and visit as much as concerts and festivals that I can possibly do in my spare time. (Not that I’m so busy with working all the time, but visiting concerts during the weekdays is really exhausting)

In 2013 I visited 16 different venues, differentiating from concerts (mostly) and festivals. The ones that have left a permanent stain on my retina are:

  1. 2013-01-05 DeWolff @ Effenaar, Eindhoven
  2. 2013-02-18 Jacco Gardner @ 013, Tilburg
  3. 2013-05-30 Wolf People @ Doornroosje, Nijmegen
  4. 2013-10-25 Alter Bridge @ Ancienne Belgique, Brussel
  5. 2013-11-14 Touché Amoré @ JC de Klinker, Aarschot
  6. 2013-12-06 Di-Rect @ Niewe Nor, Heerlen
  7. 2013-12-20 Orgel Vreten @ Tivoli Utrecht

I experience visiting concerts and listening to music as the balance I need to perform in my day to day work. Enjoying the performance of one or more artists at a venue, experiencing the exuberance when a crowd goes crazy. Witnessing those epic long jams certain songs develop into when you are at a concert. Something you will never ever hear on their album, just makes it all worth while to travel almost the entire country to see the bands that I like.

Also I gain more and more, and new music from almost every thinkable source out there. A TV commercial, music which is played before the beginning of a venue. Music from a game that I’m playing, it doesn’t matter. If I like it, I always go on a little exploration for ‘more where that came from’.

Then there is one more thing about me and music, I collect records, and I can say that for the last part of 2012 and the first part of 2013, I have never bought as much of music (on Vinyl) as I did ever before. My collection of records grew to a staggering 313 records and 76 cd’s, with small and large gems as:

  1. Queens of the Stone Age – … Like Clockwork
  2. Arcade Fire – Reflektor
  3. Touché Amoré – Is Survived By
  4. Nick Cave & The Bad Seeds – Push The Sky Away
  5. National, The – Trouble Will Find Me 
  6. Efterklang – Piramida
  7. Wolf People – Fain
  8. Daughter – If You Leave

..And many many more.

What 2014 will bring, no one knows, as long as it will bring health, luck and love to the people that are most dear to you and me. Besides that I hope to continue to do the things that I love, which is working with technology and advancing my career in the way I have done for 2012 and 2013!

Happy new year, and the best wishes to all of you!

MDT 2013 – Deploy HP Elitepad 900 using the HP Expansion Jacket, HP Dockingstation, MDT2013, WinPE 5.0 and ADK 8.1

Published / by Rens Hollanders / 4 Comments on MDT 2013 – Deploy HP Elitepad 900 using the HP Expansion Jacket, HP Dockingstation, MDT2013, WinPE 5.0 and ADK 8.1

Well… that’s a mouth full, but I couldn’t describe it better any other way 🙂 Because that’s what I’m doing right now!

In this ‘tutorial’, I will explain the steps I did to achieve a basic MDT LTI deployment based on:

  • MDT Lite Touch Deployment
  • FAT32 Formatted USB Bootable WinPE 5.0 stick
  • Deploy HP ElitePad 900 with all drivers installed working out-of-the-box

For a new project I’m working for a major health care facility which are going to use approx. 800 HP Elitepad 900 tablets, who will be running not the stock Windows 8, but the recently released Windows 8.1.

Currently I’m in testing phase so I’ve got a nice setup at home, running some VM’s, a connection to my deployment share and of course a HP Elitepad 900 tablet, with HP Expansion Jacket and HP Dockingstation

To get things going I first installed a MDT 2013 dedicated machine, with the newly released Windows ADK 8.1 which brings us support for Windows 8.1 and Server 2012R2.

Then I recovered the HP Elitepad 900 which was already used for some testing, back to factory settings and started the whole operation.

For the following weeks, I will try to keep track of the most important things I encounter and share my experiences with you all.

The first thing I had to do is create a driver folder structure in MDT which makes sense (at least for me it does).

figure 1.1: Deployment Share Driver folder structure

DriverStructure_ElitePad_900

As you can see I created several additional driver folders parenting in the WinPE folder, this is all for driver manageability.

HP offers perfect support when it comes to driver packs for the various WinPE environments, so I have downloaded all available packs and imported them into MDT.

The drivers of the HP ElitePad 900 came from the following sources:

HP Website

Microsoft Windows Update Catalog

Extraction of the following HP executable, which can be downloaded from the HP website listed above: “.\sp64292\x86_Win8.1\Driver – Firmware and Chipset\HP\sp63851

Keep in mind you need to extract the SP64292 file AND the SP63851, when all drivers are extracted, together with all other HP ElitePad 900 drivers, target the “Import Drivers” step to the parenting folder which possesses all drivers.

When all drivers are imported, it should look something like this

figure 1.2: HP ElitePad 900 drivers

ElitePad Drivers List

Because the HP ElitePad 900 also has touchpad (which actually works in WinPE IF you embed this into the boot image) drivers and other specific drivers, I targeted these drivers specifically in a separate folder.

With these folders, I have created selection profiles. These selection profiles target individual (driver) folders and present only the content that is residing in that folder during a certain step in the task sequence. This way I have managed to create a WinPE x64 and x86 folder, and I can target these folders individually when generating the boot images for x64 and x86 deployments.

Figure 1.3: Selection Profile Properties

SelectionProfile_ElitePad_900_WinPE_x86

Makes sense right? Each selection profile targets a different WinPE platform folder

figure 1.4: Overview of Selection Profiles

SelectionProfile_ElitePad_900

How this looks on the deployment share properties?

figure 1.5: WinPE x64 Properties

DepShareProperties_x64

figure 1.6: WinPE x86 Properties

DepShareProperties_x86

Next we can have a look at targeting the drivers for the HP ElitePad 900 in a decent manner. (Johan Arwidmark has described a new driver management approach for MDT 2013 Lite Touch, read it here).

First I have executed the following ‘query’, on the HP ElitePad 900 in a command prompt:

wmic computersystem get model“, which showed the following result

figure 1.7: Result of query

wmic HP Elitepad 900

Since we have imported the drivers of the HP ElitePad 900 in a earlier stage, the remainder of what we need to do is modify the “Inject Drivers” step in the task sequence to target only the drivers for the HP ElitePad 900. So open up the deployment task sequence, and advance to the step “Preinstall\Inject Drivers”, and select the driver Profile matching the HP ElitePad 900

figure 1.8: Inject Drivers based on Selection Profile

InjectDrivers

Now to make sure that these drivers are only applied if the model equals the HP ElitePad 900 our little query comes in handy

figure 1.9: WMI Condition on Inject Drivers step

DriverCondition

The exact WMI query used is: ” Select * FROM Win32_ComputerSystem WHERE Model like “%HP Elitepad 900%” ” (without the two “” at both ends, that’s just me explaining the query 😉 )

The next thing we need to configure is disk partitioning of the HP ElitePad 900, since it’s a UEFI based machine, it uses GPT, so advance to the step: “Preinstall\New Computer Only\Format and Partition Disk” and change the disk type from: Standard (MBR) to GPT

figure 1.10: Format and Partition Disk GPT

GPT

Click Apply and OK.

Basically we are ready to perform a deployment test, and that’s what I have done during the writing of this blog, to see the following results:

Figure 1.11: Device Manager OK! (no unknown devices left) and Deployment Finished successfully!

HP Elitepad 900 Device Manager

Also what we can see is that by selecting the GPT Disk type, during deployment the GPT partitions have been created automatically.

figure 1.12: Disk Management GPT Scheme

diskmanagement

This concludes my little tutorial of how to deploy Windows 8.1 to the HP ElitePad 900.

In the upcoming period I’m going to:

  • Configure the Default User Profile
  • Configure the start screen with the Start-Layout PowerShell command
  • Configure Bitlocker
  • Configure Direct Access
  • Configure and tweak Windows 8.1 wherever it is needed
  • Configure the LTI deployment furthermore so that it becomes fully automated just like ZTI 🙂
  • Configure RES Automation Manager and RES Workspace Manager for automation and user workspace management

And of course the test environment will be mitigated to a Windows Server 2012R2 with WDS and PXE Boot enabled to deploy these tablets via PXE, and we will see how that goes!

I’ll leave you all with a little package that might become handy when you are going to approach the same challenge. In the attached zip file you will find:

  • BDD.log_properties which are quite useful to determine al kinds of conditions, queries and variables
  • A Driver list which is an export of my HP ElitePad 900 driver folder, so you can verify if all drivers are present
  • All screenshots used in this tutorial

zip
HP_ElitePad_900.zip

Keep on automating my young padawans 😀

! Any general reconsideration’s to keep in mind are:

  • Format the bootable USB drive with FAT32, NTFS is not read by the HP ElitePad 900
  • When staging a HP ElitePad 900, make sure a USB keyboard is attached if you are performing an LTI deployment, yes touch works, but that doens’t mean you can type in WinPE!!!

 

MDT 2012 will HideShell=YES and LTISuspend.wsf work together in one task sequence?

Published / by Rens Hollanders / 6 Comments on MDT 2012 will HideShell=YES and LTISuspend.wsf work together in one task sequence?

Short answer: YES 😀

Recently I have created a Build Task Sequence for a customer where it was needed to do some checks upfront, before the operating system, running on a virtual machine would be captured to a WIM file.

As some of you might know, the LTISuspend.wsf script, residing in the SCRIPTROOT of MDT (DeploymentShare\Scripts), can be called after the ‘State Restore’ step in the task sequence.

At any given moment, but preferably under the ‘Custom Action’s’ folder, create a ‘Run Command Line’, with the following commandline: “cscript.exe %SCRIPTROOT%\LTISuspend.wsf”

figure 1.1: Suspend Task Sequence Step

LTISuspend_ts

this will postpone the task sequence and create a shortcut on the desktop called ‘Resume Task Sequence’. However when using the following property in your customsettings.ini: “HideShell=YES”, your desktop shell will not be fully loaded, thus it would be possible that no desktop, taskbar and other icons where presented during the LTISuspend.wsf.

figure 1.2: No Explorer Shell

TS Progress

Luckily this isn’t the case. When the machine is suspended and HideShell is set to YES in the customsettings.ini the task sequence will be succesfully postponed, however the Windows theme, will be set to basic, as we can see by the screenshot I took:

figure 1.3: Suspended Task Sequence

LTISuspend

So use it with confidence!

Keep on automating my young padawan learners! 😀

Windows 8.1 DPI and Modern UI Display Settings

Published / by Rens Hollanders / 2 Comments on Windows 8.1 DPI and Modern UI Display Settings

Last week I have upgraded my Windows 8 to Windows 8.1, unfortunately because of the fact I’m using an Enterprise Volume License version, I was forced to do a re-install of my computer. So no Marketplace Windows 8.1 Upgrade for me 🙁

Since every disadvantage has its advantage (id’ ordered a new SSD, which is the fantastic Samsung 840 EVO 250 Gb) I re-installed my computer with the all new Windows 8.1

Upgrading from Windows 7 to Windows 8 and Windows 8.1 within 1 year, wasn’t a big game changer for me when it comes to getting familiar with the new user interface (I consider myself UI insusceptible 🙂 ). However some settings I’d like to maintain.

Something that immediately had my attention was the scaling and sizing settings that were active out-of-the-box.

First the DPI scale, it’s default setting was set to ‘Larger – 150% (default)

Setting this setting back to ‘Smaller – 100%‘ is the way how it was configured out-of-the-box with Windows 8

figure 1.1: Windows 8 DPI Settings

Display

The second setting might be a bit harder to find, since it is related to the Modern UI, I noticed immediately that the Charms bar had grown to ridiculous proportion. It seems that Microsoft automatically assumes every Windows 8.1 installation is a tablet installation. So I went to the Modern UI ‘PC Settings‘, ‘PC and Devices‘, ‘Display‘, and at this screen we can adjust the following setting: ‘More Options‘, ‘Change the size of applications, text and other items on the screen (only applies to displays that can support it)

Once I’d switched the setting from ‘Default‘ to ‘Smaller‘, all Windows 8.1 ‘buttons’, native Modern UI apps like ‘Mail’, ‘News’ etc. changed theire display size.

figure 1.2: Modern UI Settings

PC Settings

Hopefully, you’ll find this information useful 🙂

 

MDT 2012 Settings for fully automated LTI deployment, Part II: Customsettings.ini

Published / by Rens Hollanders / 48 Comments on MDT 2012 Settings for fully automated LTI deployment, Part II: Customsettings.ini

So my second part of how to achieve a fully automated deployment, can be used to create a reference image or to deploy a computer.

Lets start customizing 🙂

First of all we can set our priority and fortunately the ‘deployment bunny’ has written a great blog about the available properties for setting the priority in which order MDT executes which task with which properties:

[Settings]
Priority=MACAddress, Default
Properties=MyCustomProperty

In my case I have set the priority on MACAddress first, this means that MDT will look for a machine with the given MACAddress and apply the custom defined properties only for this machine. This is especially handy when we want to use our deploymentshare for more then one purpose alone. In my case the ability to create an automatic reference image but also being able to use other task sequences from that same deploymentshare to other computers.

So if we specify our MACAddress here, we can then apply the settings we want. In my case I start again with configuring the IP address for a virtual machine which occurs in a back-end server environment with no particular DHCP present on the VLAN.

[00:00:00:00:00]
OSDAdapterCount=1
OSDAdapter0EnableDHCP=FALSE
OSDAdapter0IPAddressList=192.168.1.45
OSDAdapter0SubnetMask=255.255.255.0
OSDAdapter0Gateways=192.168.1.1
OSDAdapter0DNSServerList=192.168.1.11,192.168.1.12
OSDAdapter0DNSSuffix=contoso.local

Then I specify that the task sequence wizard needs to be skipped by providing the following option: SkipTaskSequence=YES
And immediately after that I fill-in the desired TaskSequenceID which needs to be executed automatically, which is in my case OSB001 (Operating System Build 001)

SkipTaskSequence=YES
TaskSequenceID=OSB001

Next we need to provide an computer name for our reference build. With the SkipComputerName=YES we prevent the hostname wizard, but when we do this, we also need to provide an hostname for the upcoming deployment. The task sequence variable “OSDComputerName” will be picked up and understood by the scripts if provided.

SkipComputerName=YES
OSDComputerName=OSBUILD

Then to capture the created reference image we provide the following parameters:
SkipCaptures=YES obviously the wizard pane needs to be skipped. But because we want to capture our reference image, we provide the DoCapture=YES setting too, followed by the backup location which needs to point to an accessible network-share and provide the file-name for the captured WIM file.

SkipCapture=YES
DoCapture=YES
ComputerBackupLocation=\\server01.contoso.local\deploymentshare$\Captures
BackupFile=W7ENTSP1x64EN.wim

So far our custom properties for one particular fully automated Task Sequence. When all the other configurable options will remain the same we can configure these options beginning with the organization name displayed during deployment. The organization name displayed can be modified by providing the parameter “_SMSTSOrgName” and a value for the organizational name, for example “Contoso IT”. Further, OSInstall lets MDT know we want to deploy and operating system.

[Default]
_SMSTSOrgName=Contoso IT
OSInstall=Y

The following options are for preventing the multiple wizard panes popping up for input or requesting input. At default, we don’t want the Task Sequence wizard to skip, therefore we set this setting to “NO”. With SkipApplications and SkipAppsOnUpgrade we can see the apps that will be installed if the Application Guid has been provided in the customsettings.ini. Once again, Andrew Barnes has written a nice blog about that particular subject.

Skipping the capture, makes sure that your deployment will not ask you to start capturing at the end of the deployment and defining the property DoCapture=NO answers the question that your deployment will not be captured.

SkipTaskSequence=NO
SkipApplications=NO
SkipAppsOnUpgrade=YES
SkipCapture=YES
DoCapture=NO

Then a few more obvious properties; SkipAdminPassword prevents the wizard pane for providing your local admin password for the machine that will be deployed. SkipProductKey will skip the request for a valid product key which should / could already be filled in in your unattended.xml. The SkipDeploymentType and DeploymentType evaluate what kind of deployment scenario will be used, because there are tree scenario’s possible: NEWCOMPUTER, REFRESH, REPLACE

NEWCOMPUTER
The target computer is a new computer that has never been a member of the network.
REFRESH
The target computer is an existing computer on the network that needs the desktop environment standard to be redeployed.
REPLACE
An existing computer on the network is being replaced with a new computer. The user state migration data is transferred from the existing computer to a new computer.

SkipAdminPassword=YES
SkipProductKey=YES
SkipDeploymentType=YES
DeploymentType=NEWCOMPUTER

Then we are going to join the computer to our domain, SkipDomainMembership=YES means we will not see the domain join wizard pane. If we provide the following additional parameters the computer will automatically join the specified domain:

SkipDomainMembership=YES
MachineObjectOU=OU=Computers,OU=Laptops,DC=contoso,DC=local
NetworkLocation=Work
JoinDomain=contoso
DomainAdmin=srv-rollout
DomainAdminDomain=contoso
DomainAdminPassword=

If there is userdata that needs to be migrated the following can be specified “SkipUserData” and “UserDataLocation”, if any existing profiles are present on the computer an USMT MIG file will be created which can be placed back after the OS deployment has been completed. More information on MDT in combination with USMT, please check this blog

SkipUserData=YES
UserDataLocation=\\server01.contoso.local\deploymentshare$\USMTdata

The only wizard pane we would like to see if we cannot prepopulate the hostname in advance is the ComputerName pane, by providing the following setting we will be asked for an hostname:

SkipComputerName=NO

Then the locale selection can be prepopulated too! “SkipLocaleSelection” and “SkipTimeZone” will hide or show the locale selection wizard pane, providing the following parameters will set the locale settings:

SkipLocaleSelection=YES
SkipTimeZone=YES
TimeZoneName=W. Europe Standard Time
TimeZone=110
AreaCode=045
Language=00000413
SystemLocale=00000413
UserLocale=en-US
UILanguage=en-US
InputLocale=nl-US
KeyboardLocale=nl-US

A new addition to my customsettings.ini (which I have added december 2013) is setting the native resolution for each device, by providing the following settings, the machine will be forced to start “enable auto detection” of display settings. This way, you’re always getting the most optimized resolution settings for your device. See this blog for more information.

; Display Settings
BitsPerPel=32
VRefresh=60
XResolution=1
YResolution=1

“SkipBitLocker” will show the Bitlocker configuration pane during deployment, and the last of the regular wizard panes “SkipSummary” wil not show the configured properties of which the deployment will commense with after we have clicked next.

SkipBitLocker=YES
SkipSummary=YES

Setting the homepage for every deployment that will be executed, use the property: Home_page=

Home_page=http://www.contoso.com

Supplying the eventservice, makes sure that live monitoring will be reported back to the MDT deploymentshare at which current step your deploymentphase actually is.
Providing the value “SLSShareDynamicLogging” provides actual replication of the BDD.log which covers all the actions executed by the task sequence and is a nice feature for centrally logging the deployment progress!
In the end, using “HideShell” makes the Windows 7 GUI disappear and only the MDT progressbar visible for the length of the deployment.

EventService=http://CONTOSO01:9800
SLShareDynamicLogging=%DeployRoot%\Logs\%COMPUTERNAME%
HideShell=YES

In the end we specify which WSUS updates will not be included in the update process. Because enabling the two steps already present in the task sequence “Windows Update (Pre-Application Installation)” and “Windows Update (Post-Application Installation)” will start querying your WSUS server or Windows Update Server on the internet and download all available Windows update present at that time. To exclude certain updates we can first of al run a /query from which we can easily see which updates are being advertised to our computers.

By providing the following additional command: “/query” to the already existing command: “cscript.exe “%SCRIPTROOT%\ZTIWindowsUpdate.wsf”” we can see in our BDD.log which updates are being advertised to the system.

In my case I wanted to exclude the following updates:

;Microsoft Browser Choice Screen Update for EEA Users of Windows 7 for x64-based Systems (KB976002)
WUMU_ExcludeKB1=976002
;Microsoft Silverlight (KB2636927)
WUMU_ExcludeKB2=2636927
;Windows Internet Explorer 9 for Windows 7 for x64-based Systems (KB982861)
WUMU_ExcludeKB3=982861
;Bing Desktop (KB2694771)
WUMU_ExcludeKB4=2694771

Note that each update that needs to be excluded needs to be specified seperately, and numbered each time with a higher number for every new to be excluded updated.

Hope that this provides some insight in creating a fully automated reference image and explains the purpose of each property in the way that I have experienced it.

Download the script here:

zip
CustomSettings.txt