The Deployment Bunny

Subscribe to The Deployment Bunny feed The Deployment Bunny
OS Deployment, Virtualization, Microsoft based Infrastructure...
Updated: 1 min 46 sec ago

PowerShell is King – Create the “missing” VM on all the lab machines

Wed, 07/09/2014 - 14:26

Lets assume that you are running a class and suddenly someone raise the hand and say “I’m missing one of the VMs…” That is far from god, but wait a minute, what about PowerShell to the rescue?, of course, so here it is:

Code snip below:

$servers = 1..21 | ForEach-Object {
“VIAMONSTRA{0:D3}” -f $_
}

foreach ($Server in $Servers)
{
    Invoke-Command -ComputerName $Server -ScriptBlock {
        HostName
        #$VMName = "FS01"
        #$VMMemory = 2048MB
        #$VMDiskSize = 60GB
        #$VMNetwork = "Internal"
        #$VMLocation = "C:\VMs"
        #New-VM -Name $VMName -Generation 2 -MemoryStartupBytes $VMMemory -SwitchName $VMNetwork -Path $VMLocation -NoVHD | Out-Null
        #New-VHD -Path "$VMLocation\$VMName\Virtual Hard Disks\$VMName-Disk1.vhdx" -SizeBytes $VMDiskSize | Out-Null
        #Add-VMHardDiskDrive -VMName $VMName -Path "$VMLocation\$VMName\Virtual Hard Disks\$VMName-Disk1.vhdx" | Out-Null
        }
}


Categories: MDT

Back to Basic–Where to find Drivers for Servers and Clients

Tue, 07/08/2014 - 04:16

During one of the sessions today (at the Geek Week in Redmond) we talked about drivers and where to find them. This is absolutely nothing “new” or amazing, its more of a “note to attendees” kind of post.

HP Clients

The HP SoftPaq Download Manager from HP. The tools has the ability to download drivers for every business model that is supported into a repository, which you can then export drivers from. It also provides .CVA files that gives you instructions on how to silently execute drivers and tools that needs to be installed as an application. HP also provides .CAB files for some newer models. http://www8.hp.com/us/en/ads/clientmanagement/drivers-bios.html

Dell Clients

Dell have a really great webpage with ready made .CAB files, ready for download. It also includes Windows PE drivers, be sure to pick the correct version. A general rule is to NOT add any Windows PE driver unless you really NEED them, in other words. If you get any IP address and you can see the disk using diskpart, you don’t NEED any drivers. http://en.community.dell.com/techcenter/enterprise-client/w/wiki/2065.dell-driver-cab-files-for-enterprise-client-os-deployment.aspx

Lenovo Clients

For Lenovo a nice tool is the ThinkVantage Update Retriever. The tool is pretty straightforward, just create a repository folder, download all the drivers for your models. The most important thing here is that you should not grab the drivers from that folder, instead you should use the to tool to export them. http://support.lenovo.com/en_US/detail.page?LegacyDocID=TVAN-ADMIN

(For fun, search for it and you will ALWAYS find at least one dog… http://www.bing.com/images/search?q=ThinkVantage+Update+Retriever&qs=n&form=QBIR&pq=thinkvantage+update+retriever&sc=5-29&sp=-1&sk=)

HP Servers

For HP Servers the best way I have found so far is to install the HP Proliant in the operating system during deployment using (scripts or MDT/SCCM applications/Packages or in SCVMM as Host Command line post OSD)

That means that I usually don’t import other drivers then Network and Storage drivers in the deployment solution, since the Support Pack will take care of the rest.

The HP Proliant Service Pack: http://h17007.www1.hp.com/us/en/enterprise/servers/products/service_pack/spp/index.aspx

However, you do need Windows PE Drivers and the easiest way to find them is to look somewhere else. You will find them in the HP Scripting Toolkit for Windows.

http://www.hp.com/swpublishing/MTX-4bbbd9504e2a4286b6ae8300b4

Dell Servers

I have to be honest, I do deploy more HP servers then Dell servers, but when I do I use the standard webpage to download drivers. For servers Dell provides Driver Application Packages, which will install all the drivers for that particular model. Download it and run it as a part of the TaskSequence or do it Post OSD.

http://www.dell.com/support/home/us/en/04/Products/ser_stor_net/poweredge

What about System Center Integration?

Yes, there are ready made applications for System Center Integration.

For HP it is called Insight Management: https://h20392.www2.hp.com/portal/swdepot/displayProductInfo.do?productNumber=IMDVD#7.3

For Dell it is called OpenManage Integration Suite for Microsoft System Center: http://en.community.dell.com/techcenter/systems-management/w/wiki/4111.openmanage-integration-suite-for-microsoft-system-center.aspx

/Mike


Categories: MDT

Nice to Know–Presenting applications in the MDT Wizard based on location

Mon, 07/07/2014 - 18:09

A friend (You know how you are…) asked me today “I need to have different application bundles in the MDT Wizard based on location, any ideas?” and since I cant refuse to help a friend, here is a solution.

Use WizardSelectionProfile, Selection Profile and Default Gateway

So here is a step by step, kind of.

Configure CustomSettings.ini

You need to add DefaultGateway to the customsettings.ini to match your environment. So it should look something like this:

[Settings]
Priority=DefaultGateway

[DefaultGateway]
192.168.1.1=NewYork
192.168.2.1=Stockholm

[NewYork]
WizardSelectionProfile=Wizard – HQ

[Stockholm]
WizardSelectionProfile=Wizard – BO

Create the Application folder

In the Deployment Workbench, create a Application folder, where you can store the applications that should be available at the BO site, something like this.

Create your WizardSelectionProfile’s

In the Deployment Workbench, Advanced Settings, Selection Profiles – Create a Selection Profile called “Wizard – HQ”. It should contain everything that should be selectable at the HQ site. In this case the folder is not available at HQ.

In the Deployment Workbench, Advanced Settings, Selection Profiles – Create a Selection Profile called “Wizard – BO”. It should contain everything that should be selectable at the BO site. In this case all folders are available.

Test and verify.

That should be it, so the net result would be something like this:

Running the Wizard at the BO

and running at HQ will give you this.

/Mike


Categories: MDT

PowerShell is King–Test RDP Connection and Connect

Wed, 07/02/2014 - 07:52

So, during the class today we talked about simple but useful things you could do with PowerShell. So we had a very simple situation, during reboot of servers everyone asked “how long time does it take to reboot the server?” Since this is real servers, with a real firmware the correct answer will “Longer then you would like it to take…”. So, ping the machine, wait to you get the response is what IT pros does, or could a very simple PowerShell function be a better way?

Using this method it will use the Test-NetConnection until it succeeds accessing TCP 3389 and then fire up MSTC.exe and connect, simple and neat.

Download it from: http://1drv.ms/1o7PgK7

Run it (or load it as a module)

Execute the following command from the PowerShell prompt like this:

/mike


Categories: MDT

PowerShell is King–Convert Windows Server Editions during OS Deployment (MDT/LiteTouch)

Wed, 07/02/2014 - 02:37

Yesterday I posted a simple UI based PowerShell script that allows the local administrator of the server to change the Windows Edition. That is is a nice to have function, but what if you would like to do that during the deployment of the server instead of after. This way you can have two task sequences, one for Standard and one for datacenter but just have one WIM file (also means one reference image). For the same reasons I mentioned in the previous post,  I have created some scripts for this.

You can read the previous post on the UI method here http://deploymentbunny.com/2014/07/01/powershell-is-kingconvert-windows-server-editions-using-a-ui-based-powershell-script/

All three options here are using the same base logic with the same kind of option. Instead of defining every different “upgrade” , I decided to have just 2, NEXT and TOP. When TOP is selected as an option it will upgrade to the TOP Edition, in other words Datacenter. When NEXT is selected, it will do the NEXT level. That means that a standard will be datacenter, unless it is a 2008 r2, then a standard will be enterprise. Evaluations will be the “same, so a standard evaluation, will be a standard . In a bit more detail, this is what the scripts actually do…

What kind of conversion can the scripts perform? Source OS   UpgradeLevel Destination OS Windows Server 2008 R2 Standard to NEXT Windows Server 2008 R2 Enterprise Windows Server 2008 R2 Standard   TOP Windows Server 2008 R2 Datacenter Windows Server 2008 R2 Enterprise   NEXT/TOP Windows Server 2008 R2 Datacenter Windows Server 2012 Standard Evaluation   NEXT Windows Server 2012 Standard Windows Server 2012 Standard Evaluation   TOP Windows Server 2012 Datacenter Windows Server 2012 Standard   NEXT/TOP Windows Server 2012 Datacenter Windows Server 2012 R2 Standard Evaluation   NEXT Windows Server 2012 R2 Standard Windows Server 2012 R2 Standard Evaluation   TOP Windows Server 2012 R2 Datacenter Windows Server 2012 R2 Standard   NEXT/TOP Windows Server 2012 R2 Datacenter

 

Option No:1 (VB Script as an Application)

The first option is to use a VBscript and run it as an application, that gives a great logging and integration with the Task Sequence in MDT. The script uses a Custom property called UpgradeLevel (which can be set to either NEXT or TOP) that you needs to be added to CustomSettings.ini

Step By Step, kind of…

Download Script from : http://1drv.ms/TBO9Zw

Add the Custom property UpgradeLevel.

Import the Application in the Deployment Workbench.

Modify the Task Sequence (add a Set Task Sequence Variable Step)

Modify the Task Sequence (Add the Application)

Deploy a Server and check the logfile.

Option No:2 (PowerShell Script as an Application)

The second option is to use a PowerShell script instead, still running as an application, I added some logic to discover the presence of a Task Sequence, that way logging can end up in the correct location

Step By Step, kind of…

Download Script from : http://1drv.ms/TBOgEn

Add the Custom property UpgradeLevel.

Import the Application in the Deployment Workbench


The command line is a bit long so here it is in text form
PowerShell.exe -ExecutionPolicy Bypass -File Upgrade-SKU.ps1 -UpgradeLevel %UPGRADELEVEL%

Modify the Task Sequence (add a Set Task Sequence Variable Step)

Modify the Task Sequence (Add the Application)

Deploy the server and check the logfile.

Option No:3 (PowerShell Script in TaskSequence)

The third option is to run it as a PowerShell task Sequence

Step By Step, kind of…

Download Script from :http://1drv.ms/1qjoOAk

Save the script in the scripts folder

Modify the Task Sequence (Run PowerShell script)

Modify the Task Sequence (Add a reboot Action)

Deploy a server and check the logfile.

/mike


Categories: MDT

PowerShell is King–Convert Windows Server Editions using a UI based PowerShell script

Tue, 07/01/2014 - 02:51

If possible it is best practices to keep the number of images to a minimum. So, in my line of work I’m building reference images for both client and servers, many of the organization I work with are struggling with the fact that they need to have both old images and new images, both servers and clients and also both 32 and 64 bit. Add all that up you will realize that, hmm, lets see… that will be 9 images to maintain, no, wait, I missed the fact that we also have different editions. Servers have Standard and Datacenter edition, that is three more, or actually its 4 more since Windows Server 2008 R2 have Standard, Enterprise and Datacenter.

Download the script from http://1drv.ms/1lMpr4i

The solution

Since it is possible to upgrade every Windows Server edition (Windows Server 2008 R2 and above) to a higher edition (and that includes evaluation editions to) by changing the product key using DISM.exe it is possible to create reference images with the lowest SKU(Edition) that your organization needs and upgrade during the deployment or as this blog post is about, after the OS has been deployed. Internally for us this is great since we are running many proof of concept, labs, tests and such and many cases. I gave up telling/explaining for our internal staff on how to do this, ending up with a script that is “user-friendly”.

To be able to change edition, you need to have a product key, and what we do is that we change to the KMS client key, so yes it needs to be activated after it has been modified. You can find all these product keys at TechNet here: http://technet.microsoft.com/en-us/library/jj612867.aspx

What kind of conversion can the script perform?

Windows Server 2008 R2 Standard to Windows Server 2008 R2 Enterprise Windows Server 2008 R2 Standard to Windows Server 2008 R2 Datacenter Windows Server 2008 R2 Enterprise to Windows Server 2008 R2 Datacenter Windows Server 2012 Standard Evaluation to Windows Server 2012 Standard Windows Server 2012 Standard Evaluation to Windows Server 2012 Datacenter Windows Server 2012 Standard to Windows Server 2012 Datacenter Windows Server 2012 R2 Standard Evaluation to Windows Server 2012 R2 Standard Windows Server 2012 R2 Standard Evaluation to Windows Server 2012 R2 Datacenter Windows Server 2012 R2 Standard to Windows Server 2012 R2 Datacenter How to use?

Execute the script from an elevated command prompt and select upgrade type.


Changing from Windows Server 2008 R2.


Changed from Windows Server 2008 R2.


Changing from Windows Server 2012 R2 Standard Evaluation.


Changing from Windows Server 2012 Standard.


Categories: MDT

Nice to Know – MAP 9.1 has been released

Fri, 06/27/2014 - 17:36

Microsoft Assessment and Planning (MAP) Toolkit 9.1 has been released which is a great to tool to discover what the environment contains before you start doing anything. I use this on a regular basis BEFORE making any kind of decisions.

Download and install on a computer from: http://www.microsoft.com/en-us/download/details.aspx?&id=7826

Read more: http://blogs.technet.com/b/mapblog/archive/2014/06/27/announcing-the-map-toolkit-9-1.aspx

The short story is:

Discover Windows 8.1, Windows Server 2012 R2, Can target a Windows Server 2012 R2 Hyper-V when doing server consolidation, improved SQL Server discovery.

Install.

Starting for the first time.

Create a Database.

Select what to inventory.

Watch paint dry.

And so we wait a while, and then some, and wait…

The environment.

Usage tracking.

Server Virtualization (Consolidation and Private Cloud).

Desktop overview.

The Excel reports are nice.

A tip, before running the assessment for desktops, adjust the assessment value according to this to make sense, not that I don’t use 4096 or 2048 to represent 4gb and 2gb since we need to compensate for GPU ram…

Desktop Report.

Hardware Inventory.

/mike


Categories: MDT

Nice to Know–CU2 for ConfigMgr 2012 R2 is available for download

Fri, 06/27/2014 - 16:00

Cumulative Update 2 for System Center Configuration Manager 2012 R2 has been released and it is available for download.


About to install CU2.

You can get the download from here http://support.microsoft.com/kb/2970177

Items that have been fixed / changed / modified

  • Administrative Console
  • Remote Control
  • Mobile Device Management / Intune
  • Client
  • Operating System Deployment
  • Site Systems
  • Application Virtualization
  • Content Management
  • PowerShell

Read about all the changes here : http://support.microsoft.com/kb/2970177

Read about all PowerShell changes here : http://support.microsoft.com/kb/2962855

Read about all Linux/Unix changes here: http://support.microsoft.com/kb/2976481

(Please, read before install…)


CU2 installed.


Categories: MDT

Back to Basic: .NET Framework 4.5.2 deployment in MDT using a VB Script wrapper

Fri, 06/27/2014 - 01:48

I got a tweet, it said “Why doing 4.5.1 when 4.5.2 is out”. So, this is just an update of the 4.5.1 post you can see here. http://deploymentbunny.com/2014/06/24/back-to-basic-net-framework-4-5-1-deployment-in-mdt-using-a-vb-script-wrapper/

How to Use it

Step 1: Download it

Download it from here: http://1drv.ms/TDbKJC

Step 2: Import it as an Application

Using the Deployment Workbench, import the application with the following options:

  • Application Type:
    • Application with source files
  • Details:
    • Application Name: Install – Microsoft .NET Framework 4.5.2
  • Source:
    • Source Directory: The location where you unzipped the files
  • Destination:
    • Directory Name: Install – Microsoft .NET Framework 4.5.2
  • Command Details:
    • Command Line: cscript.exe Install-NetFramework452.wsf

If you prefer PowerShell to import the application, here is an example POSH Snippet:

Import-Module "C:\Program Files\Microsoft Deployment Toolkit\bin\MicrosoftDeploymentToolkit.psd1"

New-PSDrive -Name "DS001" `
-PSProvider MDTProvider `
-Root "E:\MDTBuildLab"

import-MDTApplication `
-path "DS001:\Applications\Install" `
-enable "True" `
-Name "Install – Microsoft .NET Framework 4.5.2" `
-ShortName "Install – Microsoft .NET Framework 4.5.2" -Version "" `
-Publisher "" `
-Language "" `
-CommandLine "cscript.exe Install-NetFramework452.wsf" `
-WorkingDirectory ".\Applications\Install – Microsoft .NET Framework 4.5.2" `
-ApplicationSourcePath "C:\Users\Administrator\Desktop\Install – Microsoft .NET Framework 4.5.2" `
-DestinationFolder "Install – Microsoft .NET Framework 4.5.2" `
-Verbose

Step 3: Download .NET framework 4.5.2 exe file and save it in the Application\Source folder

Download from http://www.microsoft.com/en-us/download/details.aspx?id=42642

Step 4: Modify the Task Sequence

Open your task sequence and add the application like this:

Sample of a Windows 7 task sequence with .NET Framework 4.5.2


Sample of a Windows 8.1 task sequence with .NET Framework 4.5.2

Note: You might need to add a reboot before and one after, since .Net Framework might feel better, my sequence does not need it, but yours might depending on what you add before this.

Note: For Windows 8/8.1 (Server 2012/2012 R2) I always add .NET 2/3 as Roles BEFORE adding 4.5.2, just to make sure nothing is messed up.

Step 5: Create your Ref Image

/mike


Categories: MDT

Back to Basic: .NET Framework 4.5.1 deployment in MDT using a VB Script wrapper

Tue, 06/24/2014 - 02:25

Yesterday an OS Deployment friend (you know who you are…) asked around for a way to install .NET Framework 4.5.1 as a part of the reference image creation and I told him I would post it today, so here it is. The reason I do this with VB script wrappers (not only me, most of the people I know and works with OSD does that) is logging and full control, but also the fact that I have a bunch of VBscripts that are very similar and the fact that MDT has a very nice module called ZTIUtility that connects external scripts built in functions make this a very easy choice.

How to Use it Step 1: Download it

Download it from here: http://1drv.ms/TqAqVD

Step 2: Import it as an Application

Using the Deployment Workbench, import the application with the following options:

  • Application Type:
    • Application with source files
  • Details:
    • Application Name: Install – Microsoft .NET Framework 4.5.1
  • Source:
    • Source Directory: The location where you unzipped the files
  • Destination:
    • Directory Name: Install – Microsoft .NET Framework 4.5.1
  • Command Details:
    • Command Line: cscript.exe Install-NetFramework451.wsf

If you prefer PowerShell to import the application, here is an example POSH Snippet:

Import-Module "C:\Program Files\Microsoft Deployment Toolkit\bin\MicrosoftDeploymentToolkit.psd1"

New-PSDrive -Name "DS001" `
-PSProvider MDTProvider `
-Root "E:\MDTBuildLab"

import-MDTApplication `
-path "DS001:\Applications\Install" `
-enable "True" `
-Name "Install – Microsoft .NET Framework 4.5.1" `
-ShortName "Install – Microsoft .NET Framework 4.5.1" -Version "" `
-Publisher "" `
-Language "" `
-CommandLine "cscript.exe Install-NetFramework451.wsf" `
-WorkingDirectory ".\Applications\Install – Microsoft .NET Framework 4.5.1" `
-ApplicationSourcePath "C:\Users\Administrator\Desktop\Install – Microsoft .NET Framework 4.5.1" `
-DestinationFolder "Install – Microsoft .NET Framework 4.5.1" `
-Verbose

Step 3: Download .NET framework 4.5.1 and save it in the application folder

Download from http://www.microsoft.com/en-us/download/details.aspx?id=40779

Step 4: Modify the Task Sequence

Open your task sequence and add the application like this:

Sample of a Windows 7 task sequence with .NET Framework 4.5.1


Sample of a Windows 8.1 task sequence with .NET Framework 4.5.1

Note: You might need to add a reboot before and one after, since .Net Framework might feel better, my sequence does not need it, but yours might depending on what you add before this.

Note: For Windows 8/8.1 (Server 2012/2012 R2) I always add .NET 2/3 as Roles BEFORE adding 4.5.1, just to make sure nothing is messed up.

Step 5: Create your Ref Image

/mike


Categories: MDT

Nice to Know–After a long time, Emulex now finally admit that there is an issue in the firmware and help is soon to appear

Sun, 06/22/2014 - 11:28

The combo of Hyper-V, VMQ, Emulex and lost network connectivity has been a nightmare for a long time. We have tried it all and the ONLY solution that works has been to disable VMQ, which sucks. Just a couple of days ago Emulex posted a note where they state that “some customers” (that is BS!) have reported loss of network connectivity. But there is light in the tunnel, they are working on new firmware so stay tuned for that. The new firmware is about to released mid-July 2014.

You should read the entire story and you can do that here:

http://blogs.emulex.com/implementers/2014/06/19/microsoft-windows-20122012-r2-hyper-vms-losing-network-connectivity-workaround/

/mike


Categories: MDT

Nice to Know–Implementing Internet Explorer Enterprise Mode with central logging to .ASP page

Sat, 06/21/2014 - 20:13

Recently I was working at a customer (you know how your are…) and the discussion on IE 11 popped up, we talked about the new Enterprise Mode (which is great). It ended up with one question…

So, how to implement this in the real world then?

I have to admit, that is a very valid question, but before we dive into the nitty-gritty stuff, what is Internet Explorer Enterprise Mode (if I’m wrong Fred at Microsoft is going to give me a hard time next we see each other). To make a very long story short, it is a way to present Internet Explorer in an old style for the web server, so instead of being “like Gecko”, it present it self as “MSIE” (like old IE version would do) and and the same time the rendering engine is working more or less the same way as Internet Explorer 8. The purpose is to be able to access old style internal websites, making business and users happy. Download for all the scripts IF you know this stuff – http://1drv.ms/1rkSxrN

If you want to read more about this and see other solutions around this:

Step 1 – Deploy Internet Explorer in the Reference Image using IEAK

Installing IE 11 can be installed manually, but please that is for consumers and non IT Pros, just don’t do that. It is also possible to deploy using Windows Update, but that is not correct way IMHO. Using IEAK is by far the best way. Download IEAK, create a package including all the settings you should have, try them out and include that as an app in the reference image.

Step 2 – Install/Configure a Website to host the global response file and the global host list

This is very easy, you just need a web server that has the “feature” of running an .ASP site. That means basically ANY webserver with .ASP install and enabled.

- Create a folder structure, in this example we will use E:\IEEM, E:\IEEM\Root and E:\IEEM\Logs

- Add support for .ASP in IIS in Windows Server 2012 R2


Support for .ASP is added to IIS.

- Create a new site that uses a port 8000 (or something else or even a hostname, as long as you can reach it..) in a folder (I’m using E:\IEEM\Root), like this.


The IEEM site is using E:\IEEM\Root as root folder and an application pool called IEEM(It will be created for you when you create the site).


The IEEM site created using port 8000.

Step 3 – Create the .ASP page to let users automatically post when Enterprise Mode is used

- Open your favorite text file creator and create the reportieem.asp file like this (You can download this from: http://1drv.ms/1rkSxrN )

————————————————

<% @ LANGUAGE=javascript %>

<%
var objFSO, objTextFile;
var DateTime, URL, EnterpriseMode, REMOTE_ADDR;
var ForReading = 1, ForWriting = 2, ForAppending = 8;

objFSO = new ActiveXObject("Scripting.FileSystemObject");
objTextFile =objFSO.OpenTextFile("E:\\IEEM\\Logs\\UserSelectedIEMode.log", ForAppending, true);

objTextFile.WriteLine("IE Mode Change," + (new Date()) + "," + Request.Form("URL") + "," + Request.Form("EnterpriseMode") + "," + Request.ServerVariables("REMOTE_ADDR"));

objTextFile.Close();
%>

———————————————–

- Save the file in E:\IEEM\Root as reportieem.asp

- Note: If you have another folder structure, you need to modify reportieem.asp accordingly.

- Modify the permissions in the E:\IEEM\Logs for IUSR, since that is the process that will create AND update the log file. The Modify permissions should be enough.


Permissions for the Logs folder modified.

- Test it before you continue, by browsing to that page. If everything is correct you should se NOTHING in your web browser, but if you open the log file (E:\IEEM\Logs\UserSelectedIEMode.log) you should see something very similar to this:


Reading the log file to test the web servers capability to execute .ASP pages as well as testing the permissions for the webserver to write in the log folder.

Step 4 – Install the Enterprise List Manager

The Enterprise List Manager is a editing/import/export tool from Microsoft that has the ability to import lists of website that should be in Enterprise mode and save that to an XML file that Internet Explorer 11 will read and use to set each URL in the correct mode that we have defined as either Default or Enterprise Mode. You download it from here: http://www.microsoft.com/en-us/download/details.aspx?id=42501

- Install the Enterprise List Manager using the “next-next” method.


The Enterprise List Manager installed and started.

Step 5 – Create a Group Policy to configure Enterprise Mode

- Create a Group Policy that will affect users/computers (I prefer users for this kind of policy) that you would like to configure. As a best practices you should a a small pilot group that you test on first. Enable the following policy’s:

- Enable: Turn on menu bar by default (since the Enterprise Mode selection is on the menu bar it make sense to have it enabled…)


Turn on menu bar by default – Enabled.

- Enable: Let users turn on and use Enterprise Mode from the Tools menu (They really need to see it.) and type in the URL to the webpage you created in step number 3. In my demo case it is: http://srvmgt01.network.local:8000/reportieem.asp


Let users turn on and use Enterprise Mode from the Tools menu – Enabled.

- Enable: Use the Enterprise IE website list (this XML file will be read by IE, stored locally and used as a global list for all URL’s that needs to run in Enterprise mode). In my case that is: http://srvmgt01.network.local:8000/ieem.xml

- Note: This file is empty, but you will soon add content to it using the Enterprise List Manager.


Use the Enterprise IE website list – Enabled.

Step 6 – Run GPUpdate /force (or wait until it runs automatically) and verify that you can see the menu bar and the Enterprise Mode settings in Internet Explorer 11

- Test browsing to http://www.bing.com and on the tools bar you should now be able to switch into Enterprise Mode


Running Bing.com in Enterprise Mode.

Step 7 – Read the E:\IEEM\Logs\UserSelectedIEMode.log using CMTrace.

Since you selected to run Bing.com in Enterprise Mode, that was POST:ed to the ASP webpage and therefore recored in the UserSelectedIEMode.log file.

- Open the UserSelectedIEMode.log using CMtrace.exe (or Notepad.exe) and you will see something like this:


The UserSelectedIEMode.log opened in CMtrace.exe.

Step 8a – Examine the log file using PowerShell

Using PowerShell we can make the log file a bit better by removing duplicates and such. So, if you open an elevated PowerShell prompt or PowerShell Integrated Environment you can run this PowerShell commands to get a better output.

IIEM-LogAnalyzer.ps1 (You can download this from: http://1drv.ms/1rkSxrN )

——————————————-

$IEEMFileSource = "E:\IEEM\Logs\UserSelectedIEMode.log"
$IEEMData = Import-Csv -Delimiter "," -Path $IEEMFileSource -Header Event,Time,URL,Mode,Client

$IEEMDataSorted = $IEEMData | Group-Object URL,Mode | ForEach-Object {$_.group | Sort-Object Mode | Select-Object -last 1}
$IEEMDataSorted | Sort-Object Time | Format-Table Time,URL,Mode

——————————————-


Running IIEM-LogAnalyzer.ps1 to get a better understanding what is needed to be running in Enterprise Mode.

Step 8b – Convert the log file to a csv file so that we can Bulk import to the Enterprise List Manager.

Using PowerShell we can convert the log file into a CSV so we can import that into the Enterprise List manager and then Create the XML file with the central configuration for Internet Explorer to read in. Use the same PowerShell prompt or Integrated Scripting Environment and execute this:

IIEM-LogToCSVConverter.ps1 (You can download this from: http://1drv.ms/1rkSxrN )

——————————————-

$IEEMFileSource = "E:\IEEM\Logs\UserSelectedIEMode.log"
$IEEMUrlSource = "E:\IEEM\Logs\UserSelectedIEMode.csv"
$IEEMData = Import-Csv -Delimiter "," -Path $IEEMFileSource -Header Event,Time,URL,Mode,Client

$UrlList = foreach ($Item in $IEEMData){If ($Item.Mode = "On"){$Item.URL}}
$UrlList | Select-Object -Unique | Out-File $IEEMUrlSource

——————————————-


Running IIEM-LogToCSVConverter.ps1 to get a CSV for import to Enterprise List Manager.

Step 9 – Import the CSV file into the Enterprise List Manager and save to the XML file

- Start the Enterprise Mode Site List Manager and select to “Bulk add from file”. Browse to E:\IEEM\Logs\UserSelectedIEMode.csv and follow the instructions (You can read more on how to perform a bulk import here http://technet.microsoft.com/en-us/library/dn640696.aspx)


Performing an Bulk Import.

- View, edit, modify and play around.


Editing a entry in the Enterprise Mode List Manager.

- Save the XML file as E:\IEEM\Root\ieem.xml

Step 10 – The Final Test

- Logon to a machine that is affected by the policy and have Internet Explorer 11, restart IE (just to make sure) and the net result should be this if you visit www.bing.com


As you can see, Enterprise is now pre-selected and cannot be changed, since the Super Cool IT Pro has discovered that many users have selected Enterprise mode to solve an issue and therefore the Super Cool IT Pro decided to help the rest of the organization and therefore he/she will be the employee of the months and wins a new Ferrari.

Step – Drive the Ferrari

Congratulations!

/mike


Categories: MDT

Nice to Know–Combine multiple application for multiple OS versions into one Bundle

Wed, 06/18/2014 - 12:49

A customer asked me:

“Mike, I’m deploying Windows 7 and Windows 8.1 and in some cases there is different versions of applications for different versions of the OS, but I would like to use Mandatory Applications in customsettings.ini based that is tied to model?”

That is a scenario that is rather easy to fix, however it can be fix in many different ways. Scripting is one, rerunning the gather step and use conditions based on other way, using OSVersionNumber is another. It could also be the situation that you for a reason is running Windows 7 x86 and Windows 8.1 x64 as your two different operating system and therefor you have different applications, but you would like to be able to have only “one” application. That way you can still use rules to deploy the application or you would make it easier for the technician that performs the deployment of the client. But here is one other trick:

Using Bundles with conditions

Let us assume that you are deploying Windows 7 and Windows 8.1 to a certain hardware model and that hardware requires a certain software and that the software comes in two different versions then you can do the following:

  • Import the Windows 7 and Windows 8 application.


    My two applications imported into Deployment Workbench.

  • Set the conditions for each application


    Conditions for the Windows 7 x86 application.


    Conditions for the Windows 8.1 x64 application.

  • Hide the Applications


    The “Install – Software for Model X – Windows 8.1 x64” has been hidden, repeat for the Windows 7 x86 application.

  • Create a bundle application
  • Add the both applications as dependences.


    Both applications have been added to the bundle.

If you install the bundle only one of the applications will be installed, since the dependences have conditions that does not overlap.

Using Customsettings.ini and MandatoryApplications to install each application for the correct operating system.

If you modify the rules in LiteTouch (customsettings.ini) you can now based on model use the bundle GUID instead of having to use two applications


Using MandatoryApplications001 with the GUID from the Bundle and installing it based on Model.

/mike


Categories: MDT

Nice to Know – A Geeks Guide for upgrading to ConfigMgr 2012 R2 and MDT 2013

Tue, 06/17/2014 - 18:48

Upgrading to ConfigMgr 2012 R2 is not a pain, but it could be. You really need to read and understand before you begin your journey.

The basic story is that you do an in-place upgrade and then fix “some” post items.

Just follow this fellow MVP and you should be good

Deployment Research (Johan Arwirdmark) http://www.deploymentresearch.com/Research/tabid/62/EntryId/117/A-Geeks-Guide-for-upgrading-to-ConfigMgr-2012-R2-and-MDT-2013.aspx

/mike


Categories: MDT

Nice to Know – How to speed up PXE boot in WDS and SCCM

Tue, 06/17/2014 - 18:08

“I feel the need, the need for more speed” does make sense to me.

By changing the the TFTP package size between the client and the PXE server you could achieve that.

So, if you really like speed and performance you might want to read a post that could help you.

How to speed up PXE boot in WDS and SCCM

During a PXE boot, when the boot image file is being loaded in the client, it should not take any longer than a few minutes time depending on the size of the boot.wim and your network. If it seems that your PXE boot times are extremely slow, you may be able to speed up the process by increasing the TFTP block size. This article will show you how to speed up PXE boot in WDS and SCCM.

Trivial File Transfer Protocol (TFTP) is the network protocol used for downloading all files during network boots. TFTP is an inherently slow protocol because it requires one ACK (acknowledgment) packet for each block of data that is sent. The server will not send the next block in the sequence until the ACK packet for the previous block is received. As a result, on a slow network, the round-trip time can be very long.

Follow the steps below to increase the TFTP block size in both a WDS and SCCM 2007 environment.

Read rest of the blog here


Categories: MDT

OSD–Using ZTISendMail to send email in a LTI/ZTI task sequence

Fri, 06/13/2014 - 09:33

Long time ago I had a need to send email an email in the end of the task sequence to notify the technician that the OS deployment was done, therefore creating a script which then ended up as a blog post at Deployment Research about two years ago. This week I’m running a Mastering Windows 7 and 8.1 OS Deployment using Lite Touch and Zero Touch in Minnesota and there where some requests on the subject so I decided to create a new version of the script and this time it is a PowerShell script instead. One of the request was to be able to send and email to the administrator that does the deployment (in Lite Touch) using the login name, so that need to to be taken under considerations to.

The script is tested in MDT 2013 but should work perfect in MDT 2012 Update 1 as well and it works when deploying Windows 8 and above.

Lite Touch

First you need to download the script and sample customsettings.ini  from here http://1drv.ms/1kvmobn and store the PowerShell it in the MDT Scripts folder.

Option Number One: Using the UserID directly

Update the CustomSettings like this. (you can copy and paste from the sample customsettings.ini files)

The name used to login to the LTI Wizard is defined as UserID and that is then used as a part of the email address to send it to.

Option Number Two: Using the UserID with translation.

In this case we create a section for every user account that should have an email an can logon. As an example, if you login as Administrator (don’t use that account!) an email would be sent to administartor@viamonstra.com, but you can have any other setting for that userID if you liketo.

Update the CustomSettings like this. (you can copy and paste from the sample customsettings.ini files)

Add a step in the TaskSequence.

Zero Touch

First you need to download the script and sample customsettings.ini  from here http://1drv.ms/1kvmobn and store the PowerShell it in the MDT Package Scripts folder.

In the ZTI we don’t really have a UserID and therefore we just send the email to a predefined email address and cc to an other.

Update the CustomSettings like this. (you can copy and paste from the sample customsettings.ini files)

Add a step in the Task Sequence like this.

Update the settings package and the MDT Package.

If you need a SMTP server to test against, read this http://deploymentbunny.com/2014/06/12/nice-to-knowa-simple-and-small-smtp-mailserver-fr-devlabtest-smtp4dev/

/mike


Categories: MDT

Nice to Know–A simple and small SMTP Mailserver för Dev/Lab/Test (SMTP4DEV)

Thu, 06/12/2014 - 01:51

In the field, at hotel rooms, in VM environments, Demo setups and many other situations your are in the situation that something needs to be able to send an email and installing an Exchange Server at that time might be very wrong. So I have been using a really nice SMTP server that basically accepts anything, with any kind of settings and that has the ability to present all these mails in a single view. Extremely “handy” to have. Download it from http://smtp4dev.codeplex.com/

I use it to test OSD scripts, Orchestrator runbook jobs and things like that.

Snapshot of the UI

there are others to, but this one seems to be stable and fairly simple to use. Don’t forget to make sure that port 25 is open.

/mike


Categories: MDT

Nice to Know – Get rid of all junk before Sysprep and Capture when creating a reference image in MDT

Thu, 06/05/2014 - 10:06

When you create a reference Image it will in most cases it will be updated with patches and some more patches and then some… That will make the image bigger and therefore the deployment of that image will take longer and consume more network resources. That can be corrected by getting rid of superseded patches, junk, temp files and much more. MDT does take care of much using the wimscript.ini during the capture process, but not all, not the old updates among other things.

The Solution

Since MDT is the preferred method to create reference images you can download the script, import it as an application and then run the application just before the Sysprep and Capture step. The Script works for the following versions of Windows:

  • Windows 7 SP1
  • Windows 8
  • Windows 8.1 Update
  • Windows Server 2008 2 SP1
  • Windows Server 2012
  • Windows Server 2012 R2

However, to make this work in Windows 7 and Windows Server 2008 R2 you need to add a hotfix to Packages in MDT. http://support.microsoft.com/kb/2852386

The script will use clenmgr.exe in all client versions of Windows. In Windows Server 2008 R2 it also uses clenmgr.exe, but it is never installed, instead it is copied from the SXS folder, that way we don’t need to install Desktop Experience. On Windows 8 and Server 2012 the script also runs the dism /online /clenup-image /startcomponentclenup and on 8.1 and server 2012 R2 the script adds the /Resetbase to make it impossible to remove patches.

Step By Step (kind of) Download the script

Download the script from here http://1drv.ms/ThvLFE

Import it in MDT

Open the Deployment Workbench and browse to the Application node and import the folder you downloaded, giver it a name and as command line you type:

cscript.exe Action-CleanupBeforeSysprep.wsf 

 

Modify the Task Sequence

Open your task sequence and before the Sysprep and capture step, something like this works fine.

 

Add the HotFix (only for Windows 7 SP1 and Windows Server 2008 R2)

You need to add the patches in the deployment workbench. If you would like the deployment of the reference image to a bit faster, create three folders put the correct patch in each folder and then create corresponding Selection Profiles and modify the Task Sequence to use them. You download the update here http://support.microsoft.com/kb/2852386

Here you can see the patches imported in the Deployment Workbench.


The patches you need.

 

Here you can see the Selection Profiles and the selection in one of them.


The Selection Profiles.

Here you can see how the modification in the Task Sequence.


The Task Sequence modification to inject the the correct patch to the correct OS.

/mike


Categories: MDT

TechEd NA 2014 – Here is my sessions on Channel 9

Sun, 05/25/2014 - 07:36
Top OS Deployment Issues with Answers from Experts

Bare Metal OS Deployment in Microsoft System Center 2012 R2 Virtual Machine Manager: This Is How It Is Done!

Building the Perfect Windows 8.1 Image


Categories: MDT

Back to Basic – CustomSettings.ini – Sample 3 and a bunch more

Mon, 05/19/2014 - 10:59

Customsettings.ini is one of those text files in MDT/ConfigMgr that has a major impact on the solution, badly written the solution is a pain in the… correctly written and it works like magic…

A while back I created sample package, but I only published 2 of the samples in the package and now it is time for the rest of them:

  • Disable OSInstall.ini
  • Setting based on Computer type and location.ini
  • Settings based on Computer type.ini
  • Settings based on Default Gateway.ini
  • Settings based on MAC for servers.ini
  • Settings based on MAC.ini
  • Settings based on Model.ini
  • Settings based on TaskSequenceID.ini
  • Settings based on UserExit-Alias.ini
  • Settings based on VB Calculation.ini
  • Settings based on Virtual Machines.ini
  • Settings for UDI.ini
  • Using the SMSTSOrg.ini

To try them out in your environment you can just run:

cscript.exe “Path to your MDT folder”:\Scripts\ZTIGather.wsf /Inifile:”The Path to the .ini file you would like to test”

You can download the samples here: http://1drv.ms/1qPkg7l

(Note all these files has been made upon request from customers, so if you need one that I down have, ask me…)

/mike


Categories: MDT

Pages