You are browsing the archive for SMS.

Configmgr2007 : Change your packages source path after SCCM site migration with a script

6:39 am in AdminUi, ConfigMgr, ConfigMgr 2007, ConfigMgr 2007 R2, ConfigMgr SP2, configmgr2007, ConfigMgr2007 R3, Installation, migration, sccm, SCCM 2007, SCCM 2007 R2, SCCM 2007 R3, SCCM 2007 SP2, sccm2007, script, SMS, Sms 2003 by Kenny Buntinx [MVP]

A few days ago , I explained in this blogpost “http://scug.be/blogs/sccm/archive/2010/08/10/configmgr-connecting-primary-child-sites-to-central-primary-parent-site-in-and-out-of-same-domain.aspx“ on how I was busy migrating one SCCM 2007 Primary site to another , because we wanted to start with a complete new environment (w2k8 x64) .As there is no supported direct upgrade path, I built an entire new SCCM server with SP2 -R2.I made it a child site of the existing SCCM primary site and let all the packages replicate.

After I solved a problem with locked padlocks on my packages in this blogpost :”http://scug.be/blogs/sccm/archive/2010/08/11/configmgr-locked-packages-after-sccm-site-migration-and-how-to-solve-it.aspx”, I needed to make sure that I would change all my old packages source paths ( a.e \\SCCM01\G$\src\<package folder> into my new package source paths (a.e \\Fileserver1\SCCMSRC\<package folder> that was residing on a DFS share .

To do that I needed a script , as doing +- 100 packages was a little to much work for a lazy admin :-)

I thought I had a great script from the site of Brian S. Tucker , as I used it already multiple times. It turned out that it was useless in this project as I needed to change not only the server name , but the complete path.

Script 1 : If you only need to change the server name in the package source path. Otherwise use my script “script 2” in the section under “script 1” below .

Copy code below this line—————————————————

Dim oWbemServices
If UCase(Right(Wscript.FullName, 11)) = "WSCRIPT.EXE" Then
    Wscript.Echo "This script must be run under CScript."
    Wscript.Quit
End If
If WScript.Arguments.Count <> 1 Then
    WScript.Echo "Wrong number of arguments were passed."
    WScript.Quit
End If
CONNSCCM()

For Each oPackage In oWbemServices.execquery("select * from sms_package")
  sOldPathString = oPackage.pkgsourcepath
  If InStr(sOldPathString,"\\") Then
                iStart = InStr(3,sOldPathString,"\")
                sNewPathString = Right(sOldPathString,(LEN(sOldPathString)-iStart))
                sNewPathString = "\\" & WScript.Arguments(0) & "\" & sNewPathString
                WScript.Echo "Setting Package Path for " & oPackage.Name & " from " & sOldPathString & " to " &  sNewPathString
                oPackage.pkgsourcepath = sNewPathString
                oPackage.put_
  End If
Next

WScript.Echo "Done"

Sub CONNSCCM()
  Set oWbemLocator = CreateObject("WbemScripting.SWbemLocator")
  Set oWbemServices = oWbemLocator.ConnectServer(".", "root\sms")
  Set oSCCMProvLoc = oWbemServices.InstancesOf("SMS_ProviderLocation")

  For Each oLoc In oSCCMProvLoc
        If oLoc.ProviderForLocalSite = True Then
            Set oWbemServices = oWbemLocator.ConnectServer(oLoc.Machine, "root\sms\site_" + oLoc.SiteCode)
        End If
  Next
End Sub

Copy code above this line—————————————————

Thanks to my fellow Belgium MVP ”Kim Oppalfens” , I was able to alter the above script to my needs and change the complete source path , except for the package source folder .

Script 2 : If you need to change the complete package source path , except the package folder name.

Copy code below this line—————————————————

on error resume next
Dim oWbemServices
Set fs = CreateObject ("Scripting.FileSystemObject")
Set logFile = fs.CreateTextFile ("pkg_log.csv")
CONNSCCM()

For Each oPackage In oWbemServices.execquery("select * from sms_package")
  sOldPathString = oPackage.pkgsourcepath
  If InStr(sOldPathString,"\\") Then 
  arrsrcPath = Split( soldPathString, "\")
  snewpathString = "\\Fileserver1\sccmsrc\" & arrsrcPath(Ubound(ArrSrcPath)-0)

                logFile.Write "Setting Package Path for " & oPackage.Name & " from " & sOldPathString & " to " &  sNewPathString
                logFile.WriteLine ""
                oPackage.pkgsourcepath = sNewPathString
                oPackage.put_
  End If
Next

WScript.Echo "Done"

Sub CONNSCCM()
  Set oWbemLocator = CreateObject("WbemScripting.SWbemLocator")
  Set oWbemServices = oWbemLocator.ConnectServer(".", "root\sms")
  Set oSCCMProvLoc = oWbemServices.InstancesOf("SMS_ProviderLocation")

  For Each oLoc In oSCCMProvLoc
        If oLoc.ProviderForLocalSite = True Then
            Set oWbemServices = oWbemLocator.ConnectServer(oLoc.Machine, "root\sms\site_" + oLoc.SiteCode)
        End If
  Next
End Sub

 

Copy code above this line—————————————————

 

Hope it helps ,

 

Kenny Buntinx

Video TechDays 2010: WMI for the SCCM Admin

10:20 am in ConfigMgr, ConfigMgr 2007, ConfigMgr 2007 R2, ConfigMgr SP2, configmgr2007, ConfigMgr2007 R3, SCCM 2007, SMS, techdays, WMI by Kenny Buntinx [MVP]

 

Since its first debut System Center Configuration manager and its predecessors have been relying heavily on the Windows Management Instrumentation (WMI) architecture. WMI is omni-present is System Center Configuration Manager, from queries over dynamic collections, through hardware inventory and storing client and Management Point settings and policies, under the hood you will find WMI just about anywhere. Given this omni-presence it should come as no surprise that the stability of WMI at your Site Systems and clients is crucial to a stable System Center Configuration Manager implementation. Knowing WMI, by consequence, is a great asset to any System Center Configuration Administrator. In this session you will learn the ins-and-outs of the WMI architecture in general and how it applies to System Center Configuration Manager. You’ll learn about the available namespaces and classes and the extended WMI Query language (WQL) that is specific to System Center Configuration Manager. This session will cover the tools available to have a peak at WMI yourself as well as to the WMI-related tool called policy spy that comes with the System Center Configuration Manager toolkit. By the end of this session you’ll know what the WMI architecture looks like, how System Center Configuration Manager uses it, and how you can use that knowledge to your advantage, be it to be able to better troubleshoot System Center Configuration Manager issues, better understand the product, or to automate tasks through scripting or programming. In the end this session will make you a better System Center Configuration Manager administrator.

 

Speaker: Kim Oppalfens – MVP SCCM

Techdays 2010 Here we (The Scug team) come

1:48 pm in ConfigMgr, ConfigMgr 2007, ConfigMgr 2007 R2, configmgr2007, sccm, SCCM 2007, SCCM 2007 R2, sccm2007, SccmAutoDoc, SMS by Kenny Buntinx [MVP]

Hi All,

160x600Just received confirmation that I will have a speaker slot again, for the 4th year in a row at the Belgian Techdays.

So me, and the rest of the Belgian SCUG team will be present to talk to you about System center configuration manager, system center operations manager and even system center service manager by then, as Kurt Vanhoecke our local service manager expert that even got referenced at the service manager product team blog, will most likely be there as well.

My session will be a pretty non-typical SCCM session this year. From my personal experiences, i.o.w. by authoring SccmAutoDoc, I believe I learned a few extra things on ConfigMgr and WMI. Even in the past I have considered knowledge of WMI an incredible asset for any SMS/SCCM admin, but deepdiving into it for SccmAutoDoc has only enhanced that belief.

So without further ado, here comes the session abstract:

Since its first debut System Center Configuration manager and its predecessors have been relying heavily on the Windows Management Instrumentation (WMI) architecture. WMI is omni-present is System Center Configuration Manager, from queries over dynamic collections, through hardware inventory and storing client and Management Point settings and policies, under the hood you will find WMI just about anywhere. Given this omni-presence it should come as no surprise that the stability of WMI at your Site Systems and clients is crucial to a stable System Center Configuration Manager implementation. Knowing WMI, by consequence, is a great asset to any System Center Configuration Administrator. In this session you will learn the ins-and-outs of the WMI architecture in general and how it applies to System Center Configuration Manager. You’ll learn about the available namespaces and classes and the extended WMI Query language (WQL) that is specific to System Center Configuration Manager. This session will cover the tools available to have a peak at WMI yourself as well as to the WMI-related tool called policy spy that comes with the System Center Configuration Manager toolkit. By the end of this session you’ll know what the WMI architecture looks like, how System Center Configuration Manager uses it, and how you can use that knowledge to your advantage, be it to be able to better troubleshoot System Center Configuration Manager issues, better understand the product, or to automate tasks through scripting or programming. In the end this session will make you a better System Center Configuration Manager administrator.

 

I sincerely hope to see you all there, and before I forget, best wishes to everyone reading this.

Kim Oppalfens

System Center Configuration Manager MVP

Upgrading an SMS 2003 SP3 with remote SQL server to SCCM 2007 SP1 is giving a lot of “failure audit” events on the remote SQL server

6:05 am in ConfigMgr, ConfigMgr 2007, sccm, SCCM 2007, SMS, Sms 2003 by Kenny Buntinx [MVP]

Issue:

After the upgrade was done from SMS 2003 SP3 , we had a lot of “failure audit” events on the remote sql server (every 20 min).

Warnings are logged for an account that wants to access the SQL server. (Account is specified as network access account and Push installation account)

This is also logged in the ccm.log file on the SCCM 2007 SP1 primary site.

We have identified a cause for the errors being logged in the CCM.LOG. It appears to occur due to the SMS_CLIENT_CONFIG_MANAGER key in the registry, this key doesn’t appear
to be created in a fresh install of SCCM (checked on the fresh installed SCCM server in my sandbox)

Deleting this key will make the errors go away, the errors don’t cause any harm or functionality issues.

 

Actions taken:

-       Delete the registry key HKLM\Software\Microsoft\SMS\Components\SMS_CLIENT_CONFIG_MANAGER

-       Restarted the smsexec service and no failure audit anymore

-       Wait for another 20 min and no failure audit warnings anymore.

 

The Environment we worked on :

– SMS 2003 SP3 with remote SQL server.

– Server 2003 SP2 server OS

 

Thanks to Kurt Van Hoecke for putting this to our attention !

However , this method is NOT supported by Microsoft !

This posting is provided AS IS with no warranties !

Hope it Helps ,

Kenny Buntinx

Keyboard Layout values for use in Task Sequences & Collection Variables

9:13 am in AdminUi, ConfigMgr, ConfigMgr 2007, OSD, sccm, SCCM 2007, SMS, Sms 2003 by Kenny Buntinx [MVP]

I just needed to find a list with Keyboard variables to customize my Windows XP Build in SCCM. It could become handy for people needing them when building international images.
[“Keyboard Layout”]
0000041C = “Albanian”
00000423 = “Belarusian”
00000813 = “Belgian Dutch”
0000080C = “Belgian French”
00000416 = “Brazilian (ABNT)”
00000402 = “Bulgarian”
00010402 = “Bulgarian Latin”
00001009 = “Canadian English (Multilingual)”
00000C0C = “Canadian French”
00010C0C = “Canadian French (Multilingual)”
0000041a = “Croatian”
00000405 = “Czech”
00010405 = “Czech (QWERTY)”
00000406 = “Danish”
00000413 = “Dutch”
00000425 = “Estonian”
0000040B = “Finnish”
0000040C = “French”
00000407 = “German”
00010407 = “German (IBM)”
00000408 = “Greek”
00050408 = “Greek Latin”
00010408 = “Greek (220)”
00030408 = “Greek (220) Latin”
00020408 = “Greek (319)”
00040408 = “Greek (319) Latin”
0000040E = “Hungarian”
0001040E = “Hungarian 101-key”
0000040F = “Icelandic”
00001809 = “Irish”
00000410 = “Italian”
00010410 = “Italian (142)”
0000080A = “Latin American”
00000426 = “Latvian”
00010426 = “Latvian (QWERTY)”
00000427 = “Lithuanian”
00000414 = “Norwegian”
00000415 = “Polish (Programmers)”
00010415 = “Polish (214)”
00000816 = “Portuguese”
00000418 = “Romanian”
00000419 = “Russian”
00010419 = “Russian (Typewriter)”
00000C1A = “Serbian Cyrillic”
00010C1A = “Serbian Latin”
0000041B = “Slovak”
0001041B = “Slovak (QWERTY)”
00000424 = “Slovenian”
0000040A = “Spanish”
0001040A = “Spanish variation”
0000041D = “Swedish”
0000100C = “Swiss French”
00000807 = “Swiss German”
0001041F = “Turkish F”
0000041F = “Turkish Q”
00000422 = “Ukrainian”
00000809 = “United Kingdom”
00000409 = “US”
00010409 = “US-Dvorak”
00030409 = “US-Dvorak for left hand”
00040409 = “US-Dvorak for right hand”
00020409 = “US-International”

Hope it helps ,

 

Kenny Buntinx

SCCM forums moved to new forum platform

7:27 pm in ConfigMgr, ConfigMgr 2007, OSD, sccm, SMS by Kenny Buntinx [MVP]

The technet forums have received a new update, with a new interface. The Server 2008 and vista forums have been using the new interface for a while, and today the configmgr forums were move to the new platform as well.

 

New functionality and annoyances fixed include (but are not limited to)

  • You can now click the post button without scrolling down (this was a huge annoyance to me)
  • Forums in general are faster
  • You can tag posts into categories so you can save post for future reference
  • Way better control over live alerts
  • Live alerts available on the forum when logged in
  • There is supposed to be thread support if multiple people are in one thread, but I haven’t figured that out yet.
  • More flexible signature settings

Anyway here are all the new links:

Here’s the URL to list of forums (http://social.technet.microsoft.com/Forums/en-US/category/configurationmanager/) although there are URLs to the individual forums as well. Here is each individual one if you are interested in only a single one:

 

 

You’ll find me on a fairly regular schedule in the Operating system deployment and SDK forums, see you there.

 

“Everyone is an expert at something”

Kim Oppalfens Configmgr expert for lack of any other expertise.

http://www.scug.be/blogs/sccm/default.aspx

SCCM : How to avoid that SCCM or SMS will place components on the c:\ or any other drive

10:45 pm in ConfigMgr, ConfigMgr 2007, sccm, SCCM 2007, SMS, Sms 2003 by Kenny Buntinx [MVP]

Place the “NO_SMS_ON_DRIVE.SMS” file on the drive you want ( aka c:\ ) to prevent that SMS/SCCM  places any components on one of the forbidden drives in the future. Simple but effective


Thats it !


Hope it helps !


Kenny Buntinx

SCCM : Customizing the hardware inventory to report a custom registry file.

8:29 am in ConfigMgr, ConfigMgr 2007, sccm, SMS by Kenny Buntinx [MVP]

Configuration Manager 2007 inventories hardware information about clients based on the contents of two Managed Object Format (MOF) files stored on the primary site server in the <ConfigMgr install directory>\inboxes\clifiles.src\hinv directory. The two MOF files used by hardware inventory processes are the Configuration.mof and SMS_def.mof MOF files.

About the Configuration.mof File :

The Configuration.mof file is used to define the data classes to be inventoried by the hardware inventory client agent. Data classes can be created to inventory existing or custom WMI repository data classes or registry keys present on client systems.The Configuration.mof also defines and registers the WMI providers used to access computer information during hardware inventory. Registering providers defines the type of provider to be used and the classes that the provider supports. WMI, and Configuration Manager 2007 hardware inventory can only access registered providers.

About the SMS_def.mof File :

The SMS_def.mof file defines the reporting classes used by the hardware inventory client agent to determine whether or not specific client data class information is reported. Reporting classes are based on the WMI repository data classes, and attributes of those classes, existing on clients by default or added to them by customizing the Configuration.mof file.Reporting class information in the SMS_def.mof file is converted into a reporting policy provided to clients during their normal computer policy polling interval. After the client compiles the new reporting policy, the reporting policy information is stored in the client system WMI repository in the InventoryDataItem class of the Root\CCM\Policy\Machine WMI namespace.

Inventory individual registry keys

My customer wants to inventories on the old windows 2000 machines all the software that was installed by the Compaq staging Framework before they will roll-out new hardware. The Compaq staging framework has written a registry entry for each installed software at the following registry place as show below.

HLKM\Software\CompaqStagingFramework\InstalledSoftware.

In the SCCM 2007 Hardware inventory it will not inventories custom registry keys by default

image

1.Adapting the configuration.mof File.


The data section, to be placed at the bottom of configuration.mof

(Remark : Enter the values you want in bold)

//========================

// Added extensions start

//========================

#pragma namespace(“\\\\.\\root\\cimv2″)

#pragma deleteclass(“Win32Reg_CSFAudit“,NOFAIL)

[ dynamic,

provider(“RegProv”),

ClassContext(“local|HKEY_LOCAL_MACHINE\\Software\\CompaqStagingFramework\\InstalledProducts“)

]

class Win32Reg_CSFAudit (Remark :define your custom wmi value here)

{

[Key] string ApplicationName;

[PropertyContext(“KitName“)] string KitName;

[PropertyContext(“KitVersion“)] string KitVersion;

[PropertyContext(“ProdVersion“)] string ProdVersion;

};

//========================

// Added extensions end

//========================

 

2.Adapting the sms_def.mof file.


The reporting section, to be placed at the bottom of sms_def.mof

//========================

// Added extensions start

//========================

#pragma namespace (“\\\\.\\root\\cimv2\\sms”)

#pragma deleteclass(“Win32Reg_CSFAudit“,NOFAIL)

[ SMS_Report (TRUE), (Remark : Value could be FALSE or TRUE)

SMS_Group_Name (“Compaq Staging Framework Inventory“), (Remark : This will be the display name you want to define in Health explorer)

SMS_Class_ID (“MICROSOFT|Compaq_Staging_Framework_inventory|1.0″) ]

class Win32Reg_CSFAudit : SMS_Class_Template

{

[SMS_Report (TRUE), Key ] string ApplicationName;

[SMS_Report (TRUE)] string KitName;

[SMS_Report (TRUE)] string KitVersion;

[SMS_Report (TRUE)] string ProdVersion;

};

//========================

// Added extensions end

//========================

3. Resource Explorer :



In Resource Explorer, the values will look like this :

image


 


Many Thanks to Jeff Gilbert to help me understand this !


Hope it helps !


 


Kenny Buntinx

SCCM : How to enable asset intelligence in SP1

7:47 am in ConfigMgr, ConfigMgr 2007, sccm, SCCM 2007, SMS by Kenny Buntinx [MVP]

Within SCCM SP1 there is a new branch called “Asset Intelligence”. You want this to work within your company , How do we do it . First of all we need to enable the asset intelligence into the inventory :


1.To enable Asset Intelligence, you need to open the SMS_DEF.MOF file. Scroll to the bottom and work your way up and enable the 11 Asset Intelligence classes. By default they are set to False, change them to True. Save the .mof file and it will replicate to the other servers in the hierarchy after some time. You will now see new classes in Resource Explorer. Also, you will also then be able to run the Asset intelligence reports and get information. Without editing the .mof file, you cannot benefit for ANY of the reports on Asset Intelligence. 


2. In SCCM, there is a new .mof file called Configuration.mof in the same folder as the sms_def.mof file. This .mof file controls several registry keys and also native mode settings. However, it also controls CAL inventory for clients. This can also be seen in the reports for Client Access License reports. By default, at the bottom of the .mof file, you will see a section called Instance of CCM_CALTRACKING. By default this is set to zero (0). You want to change it to 3. There is also a Set CALCollectionFrequency which by default is 7 days. You can leave that alone if you want to, but in a lab or in an instance where you want CAL reports to show up more often, you can change the number 7 to any other number of days, such as 2 if you like. Once again, once you save this file, it will replicate to your other site servers and you can now report on CAL’s used by clients.


 After that you can install a Asset Intelligence Synchronization Point if you want to receive AI catalog updates , but read further below :


The install of an Asset Intelligence sync point requires you to import a specific Certificate. To be eligible for receiving the certificate, you need to have an active SA contract with Microsoft for SCCM 2007. It doesn’t matter whether it covers client or server. The fact that you have SA for SCCM qualifies you for this benefit. If you do not have SA, you will not be able to deploy the new AI sync point and will need to continue getting bulk updates.You will need to ping a member of your account team (e.g. TAM or TS) and they will be able to get the certificate and send it to you in mail. If your account team is unaware of this internal site, please have them send mail to the distribution alias called “get ai cert“. Please note that this secure secure alias automatically rejects all external mail and is for internal use only @ microsoft


 


There is no real hurry in performing this process though, the current catalog is still the one that shipped with SCCM 2007 SP1 and there haven’t been any announcements that the catalog will be updated soon.


See: http://forums.microsoft.com/TechNet/ShowPost.aspx?PostID=3747200&SiteID=17&mode=1%20


 


 Hope it helps


 Best regards ,


 Kenny Buntinx.


 

SCCM : Software inventory failing due to symantec

6:59 am in ConfigMgr 2007, sccm, SCCM 2007, SMS by Kenny Buntinx [MVP]

Today I was working at a customer that is still using symantec ghost instead of the OSD from SCCM .They are on the way of going from ghost to OSD and SCCM but during the inventory scan we have noticed some issues with software inventory.


The culprit for this problem is Symantec Ghost. When imaging a workstation, certain version of ghost drop a temporary file that is not removed: ~0000.exe This file is located here:

C:\Documents and Settings\All Users\Application Data\Symantec\Ghost\AutoInstall\Installed Applications\~0000.exe

This file is dated with the year 1601. Apparently the Microsoft SCCM developers forgot to account for the all-to-common scenario of handling files that were created during the forming of Europe.

Once this file was either removed or skipped and a full software inventory was run, the issue was resolved .


There is an easy way of skipping the file during the software inventory.Create a blank text file & rename it to Skpswi.dat, exclude the file and make sure you check the box to make it hidden before deploying.
Important note : A not so widely known fact is that software inventory will only exclude the directory if Skpswi.dat is hidden. ( Credit to Kim Oppalfens for this one )


Article From Symantec:

 http://service1.symantec.com/SUPPORT/on-technology.nsf/docid/2008031311003660


Hotfix for SCCM:


http://support.microsoft.com/kb/950653/en-us


Regards ,


 


Kenny Buntinx