You are browsing the archive for sccm2007.

SCCM 2007 : Intel AMT–VPRO KVM add-on for SCCM 2007

6:53 am in AMT, ConfigMgr, ConfigMgr 2007, ConfigMgr 2007 R2, ConfigMgr SP2, configmgr2007, ConfigMgr2007 R3, OOB, sccm, SCCM 2007, SCCM 2007 R2, SCCM 2007 R3, SCCM 2007 SP2, sccm2007, Vpro by Kenny Buntinx [MVP]

Have you ever wanted to be able to launch a KVM Remote Control session from within SCCM from AMT version 6.0 or higher ? Have you ever wanted to make use of the Alarm Clock feature in AMT to wake up or turn on a computer at a specific time? Now you can with the Intel® Core™ vPro™ processor add-on for System Center Configuration Manager 2007 SP2  R2 –R3

This add-on for SCCM 2007 brings the same KVM Remote Control capability that was made available last year in our management pack for SCSM 2010.

In addition, we have also added in the ability to set the AMT Alarm Clock from within SCCM 2007.  This capability lets you set up a schedule in AMT to power on a system from a powered off or sleep state at a specified time; even if the system is not connected to the network.

Once installed, there will be a new sub-menu available when you right-click on systems in the SCCM console that will allow you to launch a KVM Remote Control session, or set the Alarm Clock for the selected system.

There are a few requirements for the KVM functionality however :

  1. You will need to have the intel onboard video adapter . It will not work if you use Matrox , ATI , Nvidea video boards
  2. Intel AMT 6.0 or Higher
  3. The machine must be in-band provisioned thru the SCCM client
  4. BUT – KVM remote control is NOT universal across all 2010 Intel vPro platforms. If shopping for a system, ensure it has Intel integrated graphics, vPro processor, and Intel AMT 6.0. Specifically – look for vPro systems that have the following processors
    • Desktop: i5-650, i5-660, i5-670

    • Laptop: i7-620M, i7-640LM, i7-620LM , i7-640UM, i7- 620UM, i5-540M, i5-520M, i5-520UM

 

Download the plugin here : http://software.intel.com/file/37855

 

Hope it Helps ,

 

Kenny Buntinx

Opalis 6.3 : Building a VMware/SCCM Opalis provisioning workflow

7:54 pm in ConfigMgr, ConfigMgr 2007, ConfigMgr 2007 R2, ConfigMgr SP2, configmgr2007, ConfigMgr2007 R3, Deployment, Installation, Opalis, Opalis 6.3, Operating System Deployment, powershell, sccm, SCCM 2007, SCCM 2007 R2, SCCM 2007 R3, SCCM 2007 SP2, sccm2007, Virtual machine, Vmware by Kenny Buntinx [MVP]

Recently we did a customer private cloud project where we used all the system center tooling ( http://www.microsoft.com/systemcenter/en/us/default.aspx) , except for the hypervisor layer , which was VMware .

One of the scenarios that the customer had in mind , was to provision all there virtual servers with SCCM and we had to use Opalis to become the glue between VMware – BMC Remedy and System Center. In the first step of the project we didn’t use the Change request mechanism from BMC Remedy yet. Special thanks to my colleague Gunther Dewit for helping me out on this one .

**** Disclaimer **** – This is a very basic workflow – we will post improvements as we go along – it is for helping people moving forward **** Disclaimer ****

The workflow itself

image

Delivering input

image

The first step in creating a workflow is doing a custom start where we could input some necessary variables . The Custom Start Activity is used to create a generic starting point for Workflows. By adding parameters to the Custom Start Activity it can consume external data which can be passed to downstream Workflow Activities.

image

These are the parameters the workflow needs in further steps.  All the rest of the information that is residing in the data bus of Opalis  .

This input is required, without it, the workflow won’t start. A popup will be presented when starting the workflow.

Now that we have all the necessary input required, we can continue with the creation of the virtual machine. In order to create a virtual machine, we need to provide some parameters, some of them will come from the Custom start step, others will have to be adapted per workflow.

 

Creating the virtual machine

image

image

These are the required parameters.

  • Name: This is the name that will be given to the virtual machine, we will get it from the Custom Start  where we filled in a name.
  • Datastore: This is the datastore that will host the virtual machine disk, we will get it from the Custom Start  where we filled in the datastore.
  • DiskMB: Since it was decided to have a fixed disk with a size of 100GB, we filled it in directly instead of asking it in the first step.
  • DiskStorageFormat: This is the thick or thin format, thin was decided as the default format.
  • MemoryMB: This is the amount of memory that will be given to the virtual machine, we will get it from the Custom Start where we filled in an amount of memory.
  • NumCPU: This is the number of CPU’s that will be given to the virtual machine, we will get it from the Custom Start where we filled in the number of CPU’s we need.
  • CD: It was decided that all VM’s will have a cd drive so we set this to true.
  • VMSwapFilePolicy: This will set the swapfile policy the states where the swapfile will be saved, it was decided to do this in the VM itself.
  • VMHost: This is the physical host where the VM will be hosted, this integration pack cannot provision on cluster yet so you need to choose a physical host.
  • GuestID: This is the OS version that will be installed on the VM.
  • Folder: This is the foldername where the VM will be installed as shown in the ESX console.

You can add more details trough the “optional properties” button. If all goes well, the workflow has created the virtual machine now.

Now we need to change some things on the virtual machine.

 

Getting the network adapter settings from the created virtual machine

image

First we need to change the network settings. The VM name, we get from the Custom Start , since this is a read action, no further settings are needed.

Alternatively, you can specify some filters to narrow the data that you receive back.

Alternatively, you can specify some filters to narrow the data that you receive back.

image

Now we will delete all the network connection that VMware made by default because they are useless to us.

 

Removing the network adapters from the virtual machine

image

image

The Network Adapter name is data that we got back from the read action above and the VM name is still the name entered at the Custom Start .

This will remove all network adapters from the VM, alternatively, you can specify filters if you only want to delete a specific adapter.

 

Adding the production network adapter to the virtual machine

image

Now we need to add a network adapter to the VM. The VM name is still the name we entered at the Custom Start .

image

The NetworkName is the name of the network that you want your network adapter connecting to.

The StartConnected specifies if it will be connected to the network or only added without being connected.

The Type is e1000 as this is the only VMware adapter SCCM can work with.

Now we do another step to get the properties from the newly created adapter so we can use the information to input the computer into SCCM.

 

Getting the production network adapter settings from the virtual machine

image

image

Now that we collected the necessary information for SCCM, we can import the computer into SCCM.

This is done by a powershell script that needs to input parameters, the name and the MAC address.

 

Adding the computer to SCCM

image

Now that the computer is known is SCCM, we need to add it to the collection that has the OSD advertised to it.

image

The is done by the following step.

 

Adding the computer to an SCCM collection

image

In the collection field, you can enter 2 things, either the name of the collection or the ID of the collection. What you enter must match the collection value type. If you enter an ID as shown here, the value type must be ID as well. The same is true for the computer where we use the name from the Custom Start step so the value type is name in this case.

image

Now that the VM is created and provisioned in SCCM, we are ready to deploy the operating system on it.

So let’s power on the VM.

 

Powering on the virtual machine

image

The only thing you need to power on a VM is the name and we still get the from the first step.

image

Now that the VM is booting up, SCCM can start the task sequence to deploy an operating system on the VM.

Meanwhile, we will check the progress in Opalis.

 

Getting the virtual machine deployment status

image

The advertisement ID is the ID as it is known in SCCM and the computer name is still the name as we specified in the first step.

image

Looping the task

Now since the OSD deployment takes some time to complete, we will let the step loop until it gets a result back from SCCM.

image

image

It will recheck every 300 second and will do this 8 times or when it gets back from SCCM that the deployment was successful in order not keep the loop while the deployment was finished faster then in 8 loops.

 

Getting the deployment result

image

Now we need to output the result to any medium you want (logfile, mail, …), I do an output to a text file as an example.

Conditional progress

Now how does Opalis know when to write to which log file?

This can be regulated by double clicking on the arrows. This is the arrow toward the success file.

image

As you can see, it will only follow this arrow when SCCM outputs a succeeded message for the advertisement. If not, it will take the other path towards the failed log file.

 

So , It is not so easy to get it all together , but if I may give a great tip: ” Write down all steps of your manual flow  and then try to translate them into an opalis workflow “

 

Hope it Helps ,

Kenny Buntinx

ConfigMgr: Application Virtualization 4.6 SP1 is now supported on Configuration Manager 2007 R2/R3 with Configuration Manager 2007 SP2

5:51 am in App-V, AppV, ConfigMgr, ConfigMgr 2007, ConfigMgr 2007 R2, ConfigMgr SP2, configmgr2007, ConfigMgr2007 R3, R3, sccm, SCCM 2007, SCCM 2007 R2, SCCM 2007 R3, SCCM 2007 SP2, sccm2007, Windows 7, Windows 7 SP1, Windows7 by Kenny Buntinx [MVP]

System Center Configuration Manager 2007 R2 with System Center Configuration Manager SP2 now supports Microsoft Application Virtualization (App-V) 4.6 SP1 Desktop Client and Client for Remote Desktop Services.

This client release enables support for Windows 7 SP1 and Windows Server 2008 R2 SP1.

The following are the limitations and workaround to import App-V packages using Configuration Manager :

Configuration Manager fails to import App-V packages when there is more than one XML in the package folder. App-V Sequencer 4.6 SP1 creates the file Report.xml when creating an App-V package. Configuration Manager expects to find only one xml file in the package folder and will fail when it identifies more than one XML file in the folder. To work around this problem delete the file report.xml manually from the package folder before you import the App-V package.

No software updates are required.

 

Hope it Helps ,

Kenny Buntinx

Configmgr 2007 and how to automate Windows 7 Backup Activation thru a task sequence

11:43 am in ConfigMgr, ConfigMgr 2007, ConfigMgr 2007 R2, ConfigMgr SP2, ConfigMgr2007 R3, Deployment, Installation, Operating System Deployment, OSD, sccm, SCCM 2007, SCCM 2007 R2, SCCM 2007 R3, SCCM 2007 SP2, sccm2007, Task Sequence, Windows 7, Windows 7 SP1 by Kenny Buntinx [MVP]

One of my customers is using a GHOST principle on their laptops, to restore an original image from a restore partition. This partition is right now visible for the end user. Now that we are migrating towards SCCM we want to do the same thing thru Configmgr.

To accomplish this, we only focus on the integrated windows 7 backup tools as they have a native build in wizard to restore as well .

Scenario to accomplish :

  1. We want to do a full backup at the end of the deployment task sequence , including the standard applications and save it locally. This one allows you to restore the machine as it was at the end of the task sequence.
  2. We want to let any user restore that image on an easy way with helpdesk support . Mainly this scenario is for end users that are sitting somewhere in the “bush bush” and no direct connection to a nearby office .
  3. We want to schedule for those kind of users a backup when he is working on his machine , based on VSS technology . ( impossible with ghost ).

Steps to accomplish the scenario :

First of all I want to thank Kim Oppalfens and George Simons ( both MVP ConfigMgr ) for helping me accomplish this scenario. We had some offline discussions to accomplish this scenario and it is not yet perfect .

The initial process we have in mind during the Operating system deployment phase when we stage an image to a machine for a user:

1. Creating the necessary partitions :

  • System partition (+/- 500 mb) that will hold the bootloader (think of Bitlocker ) and the WINRE environment. ( hidden )
  • C:\ OS partition
  • D:\ Data partition
  • E:\ IMAGE system image backup partition (drive letter will be removed in the process)

2. Create local admin user f.e. RECOVERY and added the local admins group. We have tested this with a power user or backup operator , however you need local admin rights to restore the image. For security purposes we investigate later to have a daily/weekly/monthly password changer based upon an algorithm.

3. Run the windows 7 built-in WBADMIN tool, with the following parameters : “wbadmin START BACKUP –BackupTarget:E: -include:c: -AllCritical –Quiet”

4. Remove drive letter of the “Image”Partition , in this case E:\ 

 

We don’t care about hiding the volume. Standard users have no permissions to reassign a drive letter, and hence won’t be able to see or use the partition. That is more than enough for us. Hiding the partition just complicates matters for us from an admin perspective.

The additional process we could have in mind is to send down a task sequence to back up his system when a user requests it. This could be performed with or without  any user interaction.

Task Sequence example :

</group>
      <group name="Backup" description="">
        <step type="SMS_TaskSequence_RunCommandLineAction" name="Create Admin Recovery User" description="" timeout="900" runIn="WinPEandFullOS" successCodeList="0 3010">
          <action>smsswd.exe /run: net user recovery Helpdesk123 /add</action>
          <defaultVarList>
            <variable name="CommandLine" property="CommandLine" hidden="true">net user recovery Helpdesk123 /add</variable>
            <variable name="SMSTSDisableWow64Redirection" property="DisableWow64Redirection">false</variable>
            <variable name="_SMSTSRunCommandLineAsUser" property="RunAsUser">false</variable>
            <variable name="SuccessCodes" property="SuccessCodes" hidden="true">0 3010</variable>
          </defaultVarList>
        </step>
        <step type="SMS_TaskSequence_RunCommandLineAction" name="Add Recovery User to Local Admin" description="" timeout="900" runIn="WinPEandFullOS" successCodeList="0 3010">
          <action>smsswd.exe /run: net localgroup "Administrators" recovery /add</action>
          <defaultVarList>
            <variable name="CommandLine" property="CommandLine" hidden="true">net localgroup "Administrators" recovery /add</variable>
            <variable name="SMSTSDisableWow64Redirection" property="DisableWow64Redirection">false</variable>
            <variable name="_SMSTSRunCommandLineAsUser" property="RunAsUser">false</variable>
            <variable name="SuccessCodes" property="SuccessCodes" hidden="true">0 3010</variable>
          </defaultVarList>
        </step>
        <step type="SMS_TaskSequence_RunCommandLineAction" name="Create Backup" description="" timeout="1200" runIn="WinPEandFullOS" successCodeList="0 3010">
          <action>smsswd.exe /run: wbadmin START BACKUP -BackupTarget:e: -include:c: -AllCritical -Quiet</action>
          <defaultVarList>
            <variable name="CommandLine" property="CommandLine" hidden="true">wbadmin START BACKUP -BackupTarget:e: -include:c: -AllCritical -Quiet</variable>
            <variable name="SMSTSDisableWow64Redirection" property="DisableWow64Redirection">false</variable>
            <variable name="_SMSTSRunCommandLineAsUser" property="RunAsUser">false</variable>
            <variable name="SuccessCodes" property="SuccessCodes" hidden="true">0 3010</variable>
          </defaultVarList>
        </step>
        <step type="SMS_TaskSequence_RunCommandLineAction" name="Hide Drive Letter" description="" timeout="900" runIn="WinPEandFullOS" successCodeList="0 3010">
          <action>smsswd.exe /run: Mountvol e: /D</action>
          <defaultVarList>
            <variable name="CommandLine" property="CommandLine" hidden="true">Mountvol e: /D</variable>
            <variable name="SMSTSDisableWow64Redirection" property="DisableWow64Redirection">false</variable>
            <variable name="_SMSTSRunCommandLineAsUser" property="RunAsUser">false</variable>
            <variable name="SuccessCodes" property="SuccessCodes" hidden="true">0 3010</variable>
          </defaultVarList>
        </step>
      </group>

End user experience :

1.When your Windows 7 machine gets broken it will automatically jump to the window shown below , otherwise Press F8 during boot :

image

2. When you start “Repair your computer” , WinRe will start up .

image

3. Once “WinRe”is loaded it will ask for your keyboard layout :

image

4. Fill in your credentials

image

5. Select “System Image Recovery”

image

6. Select the image that you want to restore and wait until the process has been completed .

image

 

Remarks / Improvements to make :

  1. The complete process works only once with a hidden drive letter…….until you do the restore. After the restore the drive letter is back and then a user could mess around and delete stuff. I have tried to remove the driveletter before running wbadmin , but I have no success to use the GUID as my drive is MBR and not GPT. Anyway the basic principle works .
  2. User security : We need a algorithm to change the custom local admin restore user  on a daily/weekly/monthly basis as a default password just isn’t secure enough .
  3. Now I am testing to get a function key on a Lenovo to do his magic ( Press F5 and it launches auto magically the recovery environment ) . More on that in a later blog post .

 

Hope it Helps ,

Kenny Buntinx

Configmgr 2007 : Windows 7 and Windows 2008 R2 Service Pack 1 (SP1) supportability

9:22 pm in ConfigMgr, ConfigMgr 2007, ConfigMgr 2007 R2, ConfigMgr SP2, ConfigMgr2007 R3, FEP2010, Operating System Deployment, OSD, R3, sccm, SCCM 2007, SCCM 2007 R2, SCCM 2007 R3, SCCM 2007 SP2, sccm2007, Windows 7 SP1 by Kenny Buntinx [MVP]

Hi Guys ,

 

News is traveling fast about the availability of Service Pack 1 (SP1) for Windows 7 and Windows 2008 R2, as it is already available on TechNet ,  MSDN and MVLS site .

 

However it is NOT certified and therefore NOT SUPPORTED for Configuration Manager 2007 SP2 R2 or R3 yet by the Product Group. If you already use it in production , don’t expect Premier Support to help you .

Certification and support statements will take official 90 days after Release To Web ! However , if it is sooner , I will let you know .

 

Now my personal experiences :

 

In our Lab environment everything works OK along with FEP 2010 client, even in our Acceptance Production environment where 500 clients are sitting , but we aren’t moving unless we have an official support statement !

 

Hope it Helps

 

Kenny Buntinx

Mpsetup.log: Setup was unable to create ccm_incoming on a Windows 2008 (non R2) Box after installing a patch

6:40 pm in ConfigMgr, ConfigMgr 2007, ConfigMgr 2007 R2, ConfigMgr SP2, ConfigMgr2007 R3, MP, R3, sccm, SCCM 2007, SCCM 2007 R2, SCCM 2007 R3, SCCM 2007 SP2, sccm2007 by Kenny Buntinx [MVP]

Issue : During a necessary patch installation it denied installing the Configmgr client hotfix package on the site server because it told us another install was already occurring . After rebooting the server , the server had issues with reinstalling the component called the Management point . It always failed with error 1603 ( Install Failed , unknown error ).

The following error was found in the eventlog or MPMSI.log  :

Error 25006. Setup was unable to create the Internet virtual directory CCM_Incoming.The error code is 800CC801
CustomAction CcmCreateIISVirtualDirectories returned actual error code 1603

 

Note that the failures are observed on Standard, Enterprise, x86, and x64 versions. The failures are observed in the following circumstances:

  • After performing a site repair of a site server running on Windows 2008 with a local MP already installed
  • Initial install of an MP on a machine running Windows 2008
  • After removing and attempting to reinstall an MP on a machine running Windows 2008

 

Steps to we tried to resolve the issue :

· Looked at the error and it seemed related to a bits error and task scheduler service .We looked at the permissions and if the task scheduler service was started. Everything was green so , no luck .

· I uninstalled the SCCM client as we have seen other customers suffering reinstalling Management points on their servers when sitting on the same box . No Luck either .

· My last resort was a BITS corruption , de-installed BITS and the reinstalled it . Solved the issue !.

 

At the same time I de-installed BITS , I found a quick fix article describing the exact issue : http://support.microsoft.com/default.aspx?scid=kb;en-us;2419559&sd=rss&spid=12769

This is problem described is only valid for Windows 2008 environments , not for Windows 2008 R2 . Took us a half a day figuring out what was going on .

 

Solution :

As of right now, the easiest way to resolve this issue is to remove and reinstall the BITS component. If the ConfigMgr 2007 Management Point role was already installed then it will also be necessary to remove and reinstall that role once you’ve done the same with BITS.

You could find the same answer on http://support.microsoft.com/default.aspx?scid=kb;en-us;2419559&sd=rss&spid=12769

 

Hope it Helps ,

Kenny Buntinx

ConfigMgr on xendesktop with the usage of provisioning server : Unique GUID issue and the smscfg.ini

8:25 am in citrix, ConfigMgr, ConfigMgr 2007, ConfigMgr 2007 R2, ConfigMgr 2012, ConfigMgr SP2, ConfigMgr V.next, configmgr2007, ConfigMgr2007 R3, Deployment, PVS, R3, sccm, SCCM 2007, SCCM 2007 R2, SCCM 2007 R3, SCCM 2007 SP2, SCCM 2012, SCCM v.Next, sccm2007, Xenapp, Xendestop by Kenny Buntinx [MVP]

Have you ever tried to manage your XENDesktop or PVS target devices using Configuration Manager in combination with an App-V integrated scenario ? I have a few customers that started to use Citrix Provisioning services and where faced with some issues when they wanted to pre-cache there App-V packages with Configmgr 2007 SP2 R3 . In some ways, managing the devices using SCCM is irrelevant due to the nature of how PVS works, but I’ve run into a few companies that insist on using SCCM for inventory management  ,  License reporting and virtual application targeting. The ConfigMgr client, is not designed to work well in a streamed OS environment. 

Citrix Provisioning Services allows for multiple servers to stream their boot disk from the same master image (vDisk). During the boot process, PVS will make sure each server has a unique SID and dynamically apply the computername together with some other tasks to make those systems unique.

If you tried installing the SCCM client on a PVS image, you will notice that SCCM shows new machines with the same name every time a PVS target device reboots in standard mode. This is because the SCCM client changes the GUID when an image is pushed to new hardware. ConfigMgr  uses the GUID to keep track inside his database.

ConfigMgr uses an ID that is generated on the Client to identify a machine inside the ConfigMgr hierarchy. This ID, also known as SMS GUID is generated during ConfigMgr Client installation.
An Algorithm, which combines the Timestamp (Time of ConfigMgr Client Installation) and the Universally Unique Identifier (UUID) is used to generate a unique Identifier.
A Client generates a new SMS GUID if the following things change

  • the SMBIOS serial number
  • the Machine SID
  • the Hardware ID (see appendix)

Appendix
Criteria for Hardware ID monitoring:

  • FirstDriveSerial
  • MACAddress
  • CDROMDevice
  • DisplayAdapter
  • HwidVersion
  • ProcessorSerial
  • DiskDevice
  • SCSIAdapter
  • DiskAdapter
  • ProcessorType
  • RAMSizeMb
  • Dockable

 

This GUID is stored in the c:\windows\SMSCFG.ini file. You can read this value out by a vbscript

The problem we see is in a Citrix Provisioned desktop, this file comes up with a duplicate GUID each time. This causes the SCCM client t re-generate the GUID and create a new file on every boot.
You can find this information here http://support.microsoft.com/kb/837374

The Fix ( I got this content and script from Rick Rohne – citrix guru )

In order to persist the computers GUID, you must be using “cache to targets hard drive” when you place your systems in standard mode. We will use the hard drive to save the SCCMCFG.ini file after each reboot.
This also means that "cache to RAM" or "cache to Server" will not be sufficient because the cache will be purged on every reboot.

Step 1 :

To resolve this, first, you have to run a script when switching from private mode to standard mode. This is done by the XENDesktop Admin after he modifies the default image…

This script stops the SCCM service and deletes the c:\windows\SCCMCFG.ini file.

‘————————— SCCM Cleanup.vbs————————————–
‘Stop SCCM client strServiceName = "CCMExec"
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colListOfServices = objWMIService.ExecQuery("Select * from Win32_Service Where Name =’" & strServiceName & "’")
For Each objService in colListOfServices objService.StopService() Next ‘ Cleanup SCCM Set fso = CreateObject("Scripting.FileSystemObject") Set aFile = fso.GetFile("c:\windows\SMSCFG.ini") aFile.Delete
—————————————————————————————-

Step 2 :

Now, you have to run a shutdown script and startup script that basically places the ‘c:\windows\SCCMCFG.ini’ file on the Cache drive on shut down. When the computer boots up, it will check to see if the file exists on the cache drive.

If it does not, the SCCM client will register itself to the SCCM server and create a new c:\windows\SCCMCFG.ini file. Upon shutdown, the c:\windows\SCCMCFG.ini file is copied to the cache drive.

This is a simple batch file script that can be loaded into active directory as a computer startup script for the OU where XENDesktop computers reside.

Startup Script

IF EXIST G:\SMSCFG.ini COPY G:\SMSCFG.ini C:\Windows\SMSCFG.ini /y > c:\smserror.txt

Shutdown Script

COPY c:\windows\SMSCFG.ini G:\SMSCFG.ini /y > g:\smserror.txt

Conclusion :

PVS images that are managed by SCCM will show up as unique entries in the SCCM database. This will at least make sure that systems will keep their own SCCM computer record and not generate a new one on every boot, but still it requires management overhead as there is no way to tell that those systems will get the same SCCM configuration / advertisements if something will go wrong in the middle of this process !

Therefore I expect since Citrix and Microsoft SCCM are allianced together in the V-Alliance , we would also like to see that the integration between ConfigMgr 2010 and Citrix Provisioning services  and that there will be "PVS-Awareness" in Configmgr 2012.

 

Hope it Helps ,

Kenny Buntinx

Configmgr 2007 OSD : Using Lenovo Update Retriever to install all your drivers without importing them in the ConfigMgr driver catalog

11:00 pm in ConfigMgr, ConfigMgr 2007, ConfigMgr 2007 R2, ConfigMgr SP2, configmgr2007, ConfigMgr2007 R3, Deployment, Drivers, Installation, Operating System Deployment, OSD, sccm, SCCM 2007, SCCM 2007 R2, SCCM 2007 R3, SCCM 2007 SP2, sccm2007, script, Task Sequence, Windows 7 by Kenny Buntinx [MVP]

Did you also think that driver management  in OSD could be more simplified ? For example when you have Lenovo devices , you need to also install a lot of “bad” drivers en also in a very specific way or features such as “hotkeys”does not work .Let’s look at the process right now:

1. Search drivers from the internet manually

2. Unpack them in a correct folder structure

3. Import drivers and categorize

4. Handle duplicate drivers

Problems often seen :

1. Not all drivers work with the import ( there are drivers that simply do not work with the export method , they need to run thru setup.exe ) HP is a king in that area with the sound card & Quick launch buttons. This means that the admin need to create packages , programs and multiple steps in the TS to let it work.

2. For getting some drivers you need to install the vendor msi on your test laptop , go to the install folder and find the extracted drivers there.After that you could import.

3. HP & Lenovo needs certain additional software such as HP quick launch , HP power manager , Lenovo Hotkeys , Lenovo think vantage , etc . A lot of those packages needs to be installed in a very specific order or it just don’t work .

4. You test your deployment and damn it seems you forgot 2 drivers . Find out by HWguid , download and import again …

 

Lenovo Update Retriever – Thinstaller solution :

If you don’t want to spent hours on searching, downloading and importing drivers for you LENOVO computer when going to build a Win7 image , read on . I have found a better way to accomplish this with thanks to Karel Serroels.

It normally takes so much time for an admin , while with the HP / IBM solution it is a 5 minutes job per HW model :

 

1. Install and run the Lenovo update retriever, select your model and software /drivers you want to install , download the drivers into a pre-defined file share . Nice , quick and easy .

2. Create a package with the Lenovo Thinstaller source files , copy the Lenovo Thinstaller files to the local disk & run it thru your TS

 

The advantage here is that I as an admin does not need to worry about the right install sequence , prerequisites , number of needed drivers or even OS type .The Thinstaller tool will do it for you .

Prerequisites :

Get the following software’s online from the Lenovo site as you will need it

  1. Link thininstaller: http://www-307.ibm.com/pc/support/site.wss/TVAN-ADMIN.html#ti
  2. Link update retriever: http://www-307.ibm.com/pc/support/site.wss/TVAN-ADMIN.html#ur

 

Step 1 : Install Lenovo Update Retriever on your server and follow instructions to create a share for the repository , etc .

image

Step 2 : Launch the Lenovo Update Retriever and select your Model an Operating System. Download all files to the repository.

image

Step 3 : Modify your Task Sequence and add Run Thinstaller Trustzone. It needs to work with Dot.net 2.0 .

If you run Lenovo Thinstaller via Configuration Manager task sequence , you cannot run the installation program, because it is a .NET executable and the default policy is to disallow running it from a network share or distribution point. You must therefore change the  following ipadress and sharename with the one from your environment!

image

Step 4 : Create the Lenovo thinstaller package in Configuration Manager.

image

Step 5 : Copy the Lenovo Thinstaller directory to C:\Windows\Thinstaller

image

Step 6 : Run Thinstalle with the following commend line . You must therefore change the  following ipadress and sharename with the one from your environment!

image

Step 7 : Remove the Thinstaller source files . Do a nice cleanup .

image

 

There you go .. The only disadvantage from using this , is the fact that your sourcefiles need to be always to one spot . You can solve this by using Sysvol , DFS or other technologies . However , Most companies have a team that will build the initial image on site and than replicate the images across the company .

Hope it helps ,

Kenny Buntinx.

OSD Deployment : TSMBOOTSTRAP.exe – Corrupt FILE : The file or directory C:\_SMSTaskSequence is corrupt ad unreadable. Please run the CHKDSK utility.

9:31 am in ConfigMgr, ConfigMgr 2007, ConfigMgr 2007 R2, ConfigMgr SP2, configmgr2007, ConfigMgr2007 R3, Deployment, migration, OSD, sccm, SCCM 2007, SCCM 2007 R2, SCCM 2007 R3, SCCM 2007 SP2, sccm2007, Task Sequence, Windows 7 by Kenny Buntinx [MVP]

Issue:

Recently when I tried to PXE boot to image a machine, when I boot and select my task sequence , I am given a TsmBootstrap.exe error. 

——- The error ——-

The file or directory c:\_SMSTaskSequence is corrupt and unreadable.  Please run the Chkdsk utility.

——- The error ——-

Now, I can’t deploy any task sequence from boot media without getting the error.

 

Solution :

The solution for the BAD computer is with “diskpart” to remove all partitions and create a new small with a clean bootable partition ‘C’.

The problem for the bad computer is that the folder C:\_SMSTaskSequence is already present, but it has gone corrupt and I didn’t had the permission to delete or rename this folder.

After erasing all partitions, it works again like a charm.

 

Hope it Helps ,

 

Kenny Buntinx

How to retrieve the Lenovo Modelname (Full name) instead of TypeNumber within Configmgr

2:56 pm in ConfigMgr, ConfigMgr 2007, ConfigMgr 2007 R2, ConfigMgr Dashboards, ConfigMgr Reporting, ConfigMgr SP2, configmgr2007, ConfigMgr2007 R3, Reporting, sccm, SCCM 2007, SCCM 2007 R2, SCCM 2007 R3, SCCM 2007 SP2, SCCM Dashboards, sccm2007, SQL Reporting services by Kenny Buntinx [MVP]

A customer of mine wanted a readable report on the different machine that existed in his country.

Right now it apears as the typenumber , witch frankly a manager does not care about and I can totally understand it.

You will see what I mean . This is what you get if you use the default report :

image

This is what management wants to see :

image

To get to this result , please follow the guidelines below :

Now to tried and  find out where it was stored  , we used wmiexplorer . We show you where to find it below :

wmi

Lenovo’s store their “ModelName” in a different WMI class that others (Win32_ComputerSystemProduct as opposed to Win32_ComputerSystem ).  By default that class is not enabled in the SMS_DEF.MOF file.

Go to your SMS_DEF.MOF file and enable it as followed

<div>
<div>
[ SMS_Report 
SMS_Group_Name ("Computer System Product")
<!--CRLF-->
<pre><span style="color: #606060;">   3:</span>   SMS_Class_ID   (<span style="color: #006080;">"MICROSOFT|COMPUTER_SYSTEM_PRODUCT|1.0"</span>) ]</pre>
<pre><span style="color: #606060;">   4:</span></pre>
<pre><span style="color: #606060;">   5:</span> <span style="color: #0000ff;">class</span> Win32_ComputerSystemProduct : SMS_Class_Template</pre>
{
[SMS_Report (TRUE)     ]
string</span>     Caption;
<pre><span style="color: #606060;">   9:</span>     [SMS_Report (<span style="color: #0000ff;">TRUE</span>)     ]</pre>
<pre><span style="color: #606060;">  10:</span>         <span style="color: #0000ff;">string</span>     Description;</pre>
<pre><span style="color: #606060;">  11:</span>     [SMS_Report (<span style="color: #0000ff;">TRUE</span>), key]</pre>
<pre><span style="color: #606060;">  12:</span>         <span style="color: #0000ff;">string</span>     IdentifyingNumber;
<pre><span style="color: #606060;">  13:</span>     [SMS_Report (<span style="color: #0000ff;">TRUE</span>), key]</pre>
<pre><span style="color: #606060;">  14:</span>         <span style="color: #0000ff;">string</span>     Name;</pre>
<pre><span style="color: #606060;">  15:</span>     [SMS_Report (<span style="color: #0000ff;">TRUE</span>)     ]</pre>
<pre><span style="color: #606060;">  16:</span>         <span style="color: #0000ff;">string</span>     SKUNumber;</pre>
<pre><span style="color: #606060;">  17:</span>     [SMS_Report (<span style="color: #0000ff;">TRUE</span>)     ]</pre>
<pre><span style="color: #606060;">  18:</span>         <span style="color: #0000ff;">string</span>     UUID;</pre>
<pre><span style="color: #606060;">  19:</span>     [SMS_Report (<span style="color: #0000ff;">TRUE</span>)     ]</pre>
<pre><span style="color: #606060;">  20:</span>         <span style="color: #0000ff;">string</span>     Vendor;</pre>
<pre><span style="color: #606060;">  21:</span>     [SMS_Report (<span style="color: #0000ff;">TRUE</span>), key]</pre>
<pre><span style="color: #606060;">  22:</span>         <span style="color: #0000ff;">string</span>     Version;</pre>
<pre><span style="color: #606060;">  23:</span> };</pre>

Now that the HW inventory is modified , we still need to update our reporting .Below you will find the code for the report :

Here’s the fun part… win32_computersystemproduct is somehow hard coded into inventory to be resolved into v_gs_client0 , so go look there for the results (once you’ve made the changes)  . Thanks Sherry Kissinger for the tip !!!

<pre><span style="color: #606060;">   1:</span> <span style="color: #0000ff;">select</span>  distinct</pre>
<!--CRLF-->
<pre><span style="color: #606060;">   2:</span>  v_R_System_Valid.ResourceID,</pre>
<!--CRLF-->
<pre><span style="color: #606060;">   3:</span>  v_R_System_Valid.Netbios_Name0 <span style="color: #0000ff;">AS</span> [Computer Name],</pre>
<!--CRLF-->
<pre><span style="color: #606060;">   4:</span>  v_R_System_Valid.Resource_Domain_OR_Workgr0 <span style="color: #0000ff;">AS</span> [Domain/Workgroup],</pre>
<!--CRLF-->
<pre><span style="color: #606060;">   5:</span>  [Top Console User] = <span style="color: #0000ff;">CASE</span></pre>
<!--CRLF-->
<pre><span style="color: #606060;">   6:</span>  <span style="color: #0000ff;">when</span> (v_GS_SYSTEM_CONSOLE_USAGE_MAXGROUP.TopConsoleUser0 <span style="color: #0000ff;">is</span> NULL <span style="color: #0000ff;">or</span> v_GS_SYSTEM_CONSOLE_USAGE_MAXGROUP.TopConsoleUser0 = <span style="color: #008000;">'-1') </span></pre>
<!--CRLF-->
<pre><span style="color: #606060;">   7:</span>  <span style="color: #0000ff;">then</span> <span style="color: #008000;">'Unknown' </span></pre>
<!--CRLF-->
<pre><span style="color: #606060;">   8:</span>  <span style="color: #0000ff;">Else</span> v_GS_SYSTEM_CONSOLE_USAGE_MAXGROUP.TopConsoleUser0</pre>
<!--CRLF-->
<pre><span style="color: #606060;">   9:</span>  <span style="color: #0000ff;">End</span>,</pre>
<!--CRLF-->
<pre><span style="color: #606060;">  10:</span>  v_GS_OPERATING_SYSTEM.Caption0 <span style="color: #0000ff;">AS</span> [Operating System],</pre>
<!--CRLF-->
<pre><span style="color: #606060;">  11:</span>  v_GS_OPERATING_SYSTEM.CSDVersion0 <span style="color: #0000ff;">AS</span> [Service Pack Level],</pre>
<!--CRLF-->
<pre><span style="color: #606060;">  12:</span>  v_GS_SYSTEM_ENCLOSURE_UNIQUE.SerialNumber0 <span style="color: #0000ff;">AS</span> [Serial Number],</pre>
<!--CRLF-->
<pre><span style="color: #606060;">  13:</span>  v_GS_SYSTEM_ENCLOSURE_UNIQUE.SMBIOSAssetTag0 <span style="color: #0000ff;">AS</span> [Asset Tag],</pre>
<!--CRLF-->
<pre><span style="color: #606060;">  14:</span>  v_GS_COMPUTER_SYSTEM.Manufacturer0 <span style="color: #0000ff;">AS</span> [Manufacturer],</pre>
<!--CRLF-->
<pre><span style="color: #606060;">  15:</span>  v_GS_COMPUTER_SYSTEM.Model0 <span style="color: #0000ff;">AS</span> [Model],</pre>
<!--CRLF-->
<pre><span style="color: #606060;">  16:</span>  v_GS_Client0.Version0 <span style="color: #0000ff;">AS</span> [ModelName],</pre>
<!--CRLF-->
<pre><span style="color: #606060;">  17:</span>  v_GS_X86_PC_MEMORY.TotalPhysicalMemory0 <span style="color: #0000ff;">AS</span> [Memory (KBytes)],</pre>
<!--CRLF-->
<pre><span style="color: #606060;">  18:</span>  v_GS_PROCESSOR.NormSpeed0 <span style="color: #0000ff;">AS</span> [Processor (GHz)],</pre>
<!--CRLF-->
<pre><span style="color: #606060;">  19:</span>  (<span style="color: #0000ff;">Select</span> sum(Size0)</pre>
<!--CRLF-->
<pre><span style="color: #606060;">  20:</span>  from v_GS_LOGICAL_DISK inner join v_FullCollectionMembership <span style="color: #0000ff;">on</span> (v_FullCollectionMembership.ResourceID = v_GS_LOGICAL_DISK.ResourceID )</pre>
<!--CRLF-->
<pre><span style="color: #606060;">  21:</span>   where v_GS_LOGICAL_DISK.ResourceID =v_R_System_Valid.ResourceID <span style="color: #0000ff;">and</span></pre>
<!--CRLF-->
<pre><span style="color: #606060;">  22:</span>   v_FullCollectionMembership.CollectionID = @CollectionID) <span style="color: #0000ff;">As</span> [Disk Space (MB)],</pre>
<!--CRLF-->
<pre><span style="color: #606060;">  23:</span>  (<span style="color: #0000ff;">Select</span> sum(v_GS_LOGICAL_DISK.FreeSpace0)</pre>
<!--CRLF-->
<pre><span style="color: #606060;">  24:</span>  from v_GS_LOGICAL_DISK inner join v_FullCollectionMembership <span style="color: #0000ff;">on</span> (v_FullCollectionMembership.ResourceID = v_GS_LOGICAL_DISK.ResourceID )</pre>
<!--CRLF-->
<pre><span style="color: #606060;">  25:</span>  where v_GS_LOGICAL_DISK.ResourceID =v_R_System_Valid.ResourceID <span style="color: #0000ff;">and</span> v_FullCollectionMembership.CollectionID = @CollectionID) <span style="color: #0000ff;">As</span> [Free Disk Space (MB)]</pre>
<!--CRLF-->
<pre><span style="color: #606060;">  26:</span>  from v_R_System_Valid</pre>
<!--CRLF-->
<pre><span style="color: #606060;">  27:</span>  inner join v_GS_OPERATING_SYSTEM <span style="color: #0000ff;">on</span> (v_GS_OPERATING_SYSTEM.ResourceID = v_R_System_Valid.ResourceID)</pre>
<!--CRLF-->
<pre><span style="color: #606060;">  28:</span>  left join v_GS_SYSTEM_ENCLOSURE_UNIQUE <span style="color: #0000ff;">on</span> (v_GS_SYSTEM_ENCLOSURE_UNIQUE.ResourceID = v_R_System_Valid.ResourceID)</pre>
<!--CRLF-->
<pre><span style="color: #606060;">  29:</span>  inner join v_GS_COMPUTER_SYSTEM <span style="color: #0000ff;">on</span> (v_GS_COMPUTER_SYSTEM.ResourceID = v_R_System_Valid.ResourceID)</pre>
<!--CRLF-->
<pre><span style="color: #606060;">  30:</span>  inner join v_GS_Client0 <span style="color: #0000ff;">on</span></pre>
<!--CRLF-->
<pre><span style="color: #606060;">  31:</span> ( v_GS_Client0.ResourceID = v_R_System_Valid.ResourceID)</pre>
<!--CRLF-->
<pre><span style="color: #606060;">  32:</span>  inner join v_GS_X86_PC_MEMORY <span style="color: #0000ff;">on</span> (v_GS_X86_PC_MEMORY.ResourceID = v_R_System_Valid.ResourceID)</pre>
<!--CRLF-->
<pre><span style="color: #606060;">  33:</span>  inner join v_GS_PROCESSOR <span style="color: #0000ff;">on</span> (v_GS_PROCESSOR.ResourceID = v_R_System_Valid.ResourceID)</pre>
<!--CRLF-->
<pre><span style="color: #606060;">  34:</span>  inner join v_FullCollectionMembership <span style="color: #0000ff;">on</span> (v_FullCollectionMembership.ResourceID = v_R_System_Valid.ResourceID)</pre>
<!--CRLF-->
<pre><span style="color: #606060;">  35:</span>  left  join v_Site <span style="color: #0000ff;">on</span> (v_FullCollectionMembership.SiteCode = v_Site.SiteCode)</pre>
<!--CRLF-->
<pre><span style="color: #606060;">  36:</span>  inner join v_GS_LOGICAL_DISK <span style="color: #0000ff;">on</span> (v_GS_LOGICAL_DISK.ResourceID = v_R_System_Valid.ResourceID) <span style="color: #0000ff;">and</span> v_GS_LOGICAL_DISK.DeviceID0=SUBSTRING(v_GS_OPERATING_SYSTEM.WindowsDirectory0,1,2)</pre>
<!--CRLF-->
<pre><span style="color: #606060;">  37:</span>  left join v_GS_SYSTEM_CONSOLE_USAGE_MAXGROUP <span style="color: #0000ff;">on</span> (v_GS_SYSTEM_CONSOLE_USAGE_MAXGROUP.ResourceID = v_R_System_Valid.ResourceID)</pre>
<!--CRLF-->
<pre><span style="color: #606060;">  38:</span>  Where v_FullCollectionMembership.CollectionID = @CollectionID</pre>
<!--CRLF-->
<pre><span style="color: #606060;">  39:</span>  Order by v_R_System_Valid.Netbios_Name0</pre>
<!--CRLF-->

Hope it Helps ,

Kenny Buntinx