maandag 10 mei 2010

SCCM Computer Association - keep same hostname

In a Replace Scenario, so when migrating from one machine to another one, you need to associate machines with each other in SCCM. This to make sure User Data gets restored correctly (State Migration Point). Some customers have choosen to keep the same hostname mostly because of machine names are linked to AD Security Groups.

This is an issue in the Computer Association wizard. As the wizard is expecting 2 different hostnames.



To workaround this you can enter a Dummy hostname for the new Machinne.



Now we can continue with wizard to associate machines with each other and to add the new machine to a collection where a Task Sequence is advertised.

Imagine we start to install the machine at this point, the hostname of the machine will be "SCCMDummy". So we have to do something extra.
We need to put a variable on the SCCM machine record that will make sure that OSDComputerName (SCCMDummy) will be overruled with the value that we want.
If you work with an MDT database you can put the value in the database of course.



To completely automate this you can find excellent example scripts in the SDK.

dinsdag 4 mei 2010

Migrate Windows 2000 machines to Windows 7

You shouldn't expect it but a lot of companies still have Windows 2000 machines running and some will ask to migrate. Migrating these machines with USMT (refresh or replace scenario) is not supported by Microsoft nevertheless it works. The supported way is to upgrade first to XP and then to Windows 7. You can already imagine how your customer will react if you will propose this migration track :-)

So, it works but there are some caveats though:

- USMT 4 will not run in a Windows 2000 shell, you can workaround this by running your scanstate command in Windows PE Shell. Short, you need to create a TS that will advertise your refresh scenario which will prestage Windows PE\Machine will reboot\Start up in Windows PE\Run scanstate\format disk\apply WIM\...

- Format Disk?? Yes. Hardlink doesn't seems to work. At least hardlink works but with this you need to wipe the disk as the MININT folder has the data on board. Well, wiping the disk was not really a success. When wiping the disk the installation of Windows 7 always failed. During the first reboot in Windows 7, the installation stopped with a fatal error probably because of NTFS issues..
When formatting the disk the installation of Windows 7 was a succes.

- SMP cannot be used as the task "Request State Store" does not work in Windows PE. So the variable %StateStorePath% needs to be specified in your USMT command.

vrijdag 23 april 2010

Suppress SCCM notification for App-V

Since R2 App-V is strongly integrated into SCCM.

A most common scenario will be that for instance a user logs on and the icon of avirtual application appears automatically on his desktop, ready to stream the application.

Default, you first get a notification (balloon in system tray) that the user has to click before the icon appears on its desktop.

That's probably something you don't want to have. You probably prefer if the user logs on the icon will be available without user interaction.

As you might know you can suppress notification with SCCM on programs of SCCM packages... BUT App-V Packages do not have programs, so we cannot select this option.

At this point some scripting will be required.
With following script you suppress notifications for App-V packages.

strSMSServer = "."
strPackageID = "XYZ00001"
strProgramName = "[Virtual application]"

Set objLocator = CreateObject("WbemScripting.SWbemLocator")
Set objSCCM = objLocator.ConnectServer(strSMSServer, "root\sms")
Set Providers = objSCCM.ExecQuery("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true")
For Each Provider in Providers
If Provider.ProviderForLocalSite = True Then
Set objSCCM = objLocator.ConnectServer(Provider.Machine, "root\sms\site_" & Provider.SiteCode)
' strSMSSiteCode = Loc.Sitecode
End If
Next

Set objProgram = objSCCM.Get("SMS_Program.PackageID='" & strPackageID & "',ProgramName='" & strProgramName & "'")

ProgramFlags = objProgram.ProgramFlags
WScript.Echo "Flags for " & strPackageID & ":" & strProgramName & " currently set to " & ProgramFlags
WScript.Echo "Adding 0x00000400 (COUNTDOWN. The countdown dialog is not displayed)" ' see ConfigMgr SDK for details ("SMS_Program Server WMI Class")
ProgramFlags = ProgramFlags + 1024
WScript.Echo "Set flag to: " & ProgramFlags
objProgram.ProgramFlags = ProgramFlags
objProgram.Put_


Enjoy!

woensdag 6 januari 2010

Conigurations in bootstrap.ini are not applying

I've seen recently a lot of posts on forums of people that are having issues with their bootstrap.ini.

In other words if they change something to the ini file it does not get applied.

Well for once an for all, as bootstrap.ini gets executed in a very early stage during WinPe it's required that you create a new WinPe Installation CD each time you added some changes to bootstrap.ini.

So -> Change bootstrap.ini = New WinPE Installation CD

maandag 28 september 2009

MDT Wait for correct IP Address

It can happen when executing an LTI deployment that you get an error that your Deployment Share is not available.

If you hit F8 to open a DOS box and you notice you don't have an IP address (yet).

I have a trick how you can extend a bit the time for MDT to acquire an IP address.

I saw this already with several customers if they had some latency on their network cause by DHCP, network components,...

What you have to do is the following:

You mount your current boot image with imagex. (/mountrw)

Go to startnet.cmd and edit

Once you open the file in notepad the only contents will be the command:
wpeinit

Change the file to contain the following:
wpeutil InitializeNetwork
ping localhost (You could ping the WDS server too)
wpeinit

Save you changes of the cmd file.

Unmount the image and save your changes of the image. (/unmount /commit)

Burn this updated image to a new Installation CD or publish this image back to your WDS.

Your network issue should be solved now.

dinsdag 28 juli 2009

Dynamically install drivers with MDT 2010


MDT 2010 has some nice new features, one of them are Selection Profiles.

Like Michael describes on his blog Selection Profiles can be used for several things into MDT.

http://blogs.technet.com/mniehaus/archive/2009/07/12/mdt-2010-new-feature-18-selection-profiles.aspx

Another nice thing to use Selection Profiles for is to install drivers on a dynamic basis.

Create a driver folder structure into MDT. Then create a Selection Profile and call it like the respectively model names. You can read the model name out of WMI by executing:
CMD -> WMIC
CSProduct Get Name

In CustomSettings.ini you just add:
DriverSelectionProfile=%model%

OR

If you don't want to create a Selection Profile for each model you can create a rule that checks the dirver structure:

DriverGroups001=%Model%

(remark: if you build your Driver structure you need to call the folders like the WMI product name - cf. like we did with Selection Profiles)

vrijdag 17 juli 2009

MDT Database connections wit MDT 2010

If you encounter issues connecting to the MDT database, do the following for troubleshooting.

Put following files into one folder:

ztigather.xml
ztigather.wsf
customsettings.ini (where you specifiy the connection to the DB)
ztiutility.vbs
ZTIDataAcess.vbs

Execute following command from a host that needs to connect to the DB.
cscript ztigather.wsf /debug:true

Most common issues are SQL permission or Named Pipes that isn't enabled in SQL.
Locations of visitors to this page