You are browsing the archive for AdminUi.

Configmgr 2012 SP1 : Installing Multiple Software Update Points per single primary site and use a single shared WSUS database on your SQL Cluster

10:00 am in AdminUi, ConfigMgr 2012, ConfigMgr 2012 SP1, SCCM 2012, SCCM 2012 SP1, SUP, wsus by Kenny Buntinx [MVP]

 

After installing ConfigMgr 2012 SP1 Beta (you can’t install SP1 in production, unless you have signed a TAP agreement with Microsoft), We wanted to install a new feature/functionality called Multiple SUP. In SP1 they have support for multiple software update points for a site (also for non trusted forests)  to provide automatic redundancy for clients in the same way as you can configure multiple management points.

In Configuration Manager 2012 Service Pack 1, they have added the ability to set multiple SUPs per Primary Site, to :

  • Provide the ability to add SUPs cross-forest
  • Provide fault tolerance without requiring NLB.

Clients will automatically fail over to additional SUPs in the same forest if scan fails , but switching SUP’s has a different network cost involved depending if you are using a shared WSUS database or not. The cheapest  network cost would be if you are sharing the WSUS database. By design , clients will try to scan to the SUP 4 times with a fixed interval of 30 minutes ( it will wait 30 min before it tries again )before switching to another SUP in the SUP list.

NOTE: Be aware that the above defined values or specifications can change any time as this product is still in beta !

However I believe this is a big step forward for Configuration Manager and that this is a nice solution for security and redundancy options, we had some difficulties to get this working with multiple WSUS servers sharing the database on the same SQL cluster / instance.

The product team is aware of the issue and is working at a solution . Until then , if you want to try this in a lab with a SQL cluster , here are the steps on how to work around the issue .

Scenario that failed :

1. Install WSUS-02 server.

2. Choose use existing WSUS-01 SUSDB database (on a remote SQL cluster ), and specify the remote SQL server name + instance.

You will get an error :  “Existing database is not compatible with this version of WSUS 3.0 SP2” . After clicking OK, then the option to use existing DB is greyed out.” When that happens , the remote SUSDB for existing WSUS server goes to single user mode (and doesn’t revert, so it can’t be contacted SUP) . Your WSUS-01 ( first WSUS can’t connect anymore)

3. Run a query to revert SUSDB from single user mode.

4. The assumption is that the required KBs (2720211 and 2734608), which have been applied to WSUS-01 before installing SP1 beta , are required on WSUS-02.  However, they can’t be applied until after WSUS-02 is installed, so we’re stuck adding another WSUS server using a shared database where the existing WSUS server has been patched with the KBs.

Scenario that succeeded:

1. Install WSUS-02 on its own dedicated database (internal) . Human error alert — we accidentally specified the server name and instance of the existing SUSDB, and overwrote it without any notification ! Used System Center Data Protection Manager to recover the SUSDB.  Phew.

2. Then the following steps were required to get the second WSUS (and second SUP) working successfully:

  • Install WSUS with a local DB.
  • Install KB2720211 and KB2734608
  • Stop WSUS Service on both WSUS servers

3. Modify the registry to point WSUS-02 to WSUS-01 SUSDB on remote SQL cluster as well and some other keys (listed below):

  • wYukonInstalled=0
  • SqlServerName= <clustername>\<instanceName>
  • SqlInstanceIsRemote=1

4. Cycle IIS services

5. Restart WSUS service.

6. Validate WSUS console opens.

7. Add SUP role to new WSUS server.

When you have success , go to the WCF.log file and see if he finds your SUP’s successfully :

image

Go to the monitoring tab and look into the “Software update point synchronization status”. What you maybe have questioned yourself is that there has not been anything about sync source, sync schedule, classification or products during the installation of the role when adding the second SUP. You specified everything already with the installation of the first SUP. When the second SUP has been installed I start a synchronization of the updates again to see what happens. See picture below :

SNAGHTML27922e2

After a few hours, you will see a confirmed number that clients are scanning off of the new SUP (WSUS-02).  Go to reporting and select “ Software Updates – D. Scan “ and use report “ Scan 1 –Last scan states by collection” .

image

Drill down to “Scan Completed”  . You will see this

image

If you export in a pivot table you will get excellent results that are more clear :

image

SNAG-0116

The feature really works well and I am pleased that the Product Team provide us these new features ! Above graphic proves it really works !

However it is NOT certified and therefore NOT SUPPORTED for Configuration Manager 2012 SP1 by the Product Group in production unless you are TAP. 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 RTM of Windows 8 . These experiences are being build during a TAP program and may be solved as we move to RTM .

Hope it Helps ,

Kenny Buntinx

ConfigMgr Dashboards and Software Update General Compliance Gauge

11:25 am in AdminUi, ConfigMgr, ConfigMgr 2007, ConfigMgr 2007 R2, ConfigMgr Dashboards, ConfigMgr SP2, configmgr2007, Dashboards, Reporting, sccm, SCCM 2007, SCCM 2007 R2, SCCM 2007 R3, SCCM 2007 SP2, SCCM Dashboards, sccm2007, SQL, SQL Reporting services, SRS by Kenny Buntinx [MVP]

Microsoft released last year the Configuration Manager 2007 dashboards.A dashboard is basically a webpage containing multiple reports with graphs. The dashboard is a WSS 3.0 / MOSS 2007 solution that tries to give an high level graphical representation of the data contained in ConfigMgr. This enables ConfigMgr administrators to have multiple information in reports on a single page or in this case to help IT managers what is happening in their environment without all the report data .

A manager at a customer asked me if it would be possible to have a general percentage of Software Update Percent Compliance spread over all the Software deployment Management advertisements that are targeted to Pre-Production and Production.

To accomplish this written a SQL query to to this . As I don’t take all the credit for doing this , I will refer to them during my blog post .

I started with getting my initial report SQL code from Kent Agerlund (MVP configMgr) on http://blog.coretech.dk/confmgr07/config-mgr-inventory-and-reporting/status-report-for-software-update-deployments/

As soon as I used this SQL Query in My SCCM Dashboards , I quickly saw that I could not use the value “% Compliance” on the Y axis in combination with my “Deployment” name. It is shown below in the picture :

 

image

 

As I needed to have the Percentage of my total compliance spread over my SDM Lists ,  I needed to modify the query . I want to special thank Raghu Kethineni for his help understanding this query .This is how the SQL query should look like to use the value “% Compliance” on the Y axis in combination with my “Deployment” name :

 

Select Deploymentname, Available, Deadline,

cast(((cast([Compliant] as float) / (ISNULL([Compliant], 0) + ISNULL([Enforcement state unknown], 0) + ISNULL([Successfully installed update(s)], 0) + ISNULL([Failed to install update(s)], 0) + ISNULL([Installing update(s)], 0) + ISNULL([Waiting for another installation to complete], 0) + ISNULL([Pending system restart], 0) + ISNULL([Downloading update(s)], 0)))*100) as Numeric(10,2)) AS ‘% Compliant’,

  [Compliant],

  [Enforcement state unknown],

  [Successfully installed update(s)],

  [Failed to install update(s)],

  [Installing update(s)],

  [Waiting for another installation to complete],

  [Pending system restart],

  [Downloading update(s)]

From

(select

a.AssignmentName as DeploymentName,

a.StartTime as Available,

a.EnforcementDeadline as Deadline,

sn.StateName as LastEnforcementState,

count(*) as NumberOfComputers

from v_CIAssignment a

join v_AssignmentState_Combined assc

on a.AssignmentID=assc.AssignmentID

join v_StateNames sn

on assc.StateType = sn.TopicType and sn.StateID=isnull(assc.StateID,0)

group by a.AssignmentName, a.StartTime, a.EnforcementDeadline,

      sn.StateName) as PivotData

PIVOT

(

SUM (NumberOfComputers)

FOR LastEnforcementState IN

( [Compliant],

  [Enforcement state unknown],

  [Successfully installed update(s)],

  [Failed to install update(s)],

  [Installing update(s)],

  [Waiting for another installation to complete],

  [Pending system restart],

  [Downloading update(s)])

) AS pvt

****** SQL Query end ******

After modifying the SQL query , the value appeared in the list as shown below in the attached picture :

image

 

If you need to select specific SDM advertisements , like I had to split up “Pre-Production” from “Production” , I had to modify my SQL query once again by adding a filter as show in the code below . In this case we want to only have the Production .

****** SQL Query ******

Select Deploymentname, Available, Deadline,
cast(((cast([Compliant] as float) / (ISNULL([Compliant], 0) + ISNULL([Enforcement state unknown], 0) + ISNULL([Successfully installed update(s)], 0) + ISNULL([Failed to install update(s)], 0) + ISNULL([Installing update(s)], 0) + ISNULL([Waiting for another installation to complete], 0) + ISNULL([Pending system restart], 0) + ISNULL([Downloading update(s)], 0)))*100) as Numeric(10,2)) AS ‘% Compliant’,
  [Compliant],
  [Enforcement state unknown],
  [Successfully installed update(s)],
  [Failed to install update(s)],
  [Installing update(s)],
  [Waiting for another installation to complete],
  [Pending system restart],
  [Downloading update(s)]
From
(select
a.AssignmentName as DeploymentName,
a.StartTime as Available,
a.EnforcementDeadline as Deadline,
sn.StateName as LastEnforcementState,
count(*) as NumberOfComputers
from v_CIAssignment a
join v_AssignmentState_Combined assc
on a.AssignmentID=assc.AssignmentID
join v_StateNames sn
on assc.StateType = sn.TopicType and sn.StateID=isnull(assc.StateID,0)
where AssignmentName NOT like ‘%_PREPROD_%’
group by a.AssignmentName, a.StartTime, a.EnforcementDeadline,
      sn.StateName) as PivotData
PIVOT
(
SUM (NumberOfComputers)
FOR LastEnforcementState IN
( [Compliant],
  [Enforcement state unknown],
  [Successfully installed update(s)],
  [Failed to install update(s)],
  [Installing update(s)],
  [Waiting for another installation to complete],
  [Pending system restart],
  [Downloading update(s)])
) AS pvt

****** SQL Query end ******

 

If done and you saved your dashboard  query , It will look like this :

 

image

 

Hope It Helps  ,

 

Kenny Buntinx

ConfigMgr : Query builder Values box cannot display large item list

12:16 pm in AdminUi, ConfigMgr, ConfigMgr 2007, ConfigMgr 2007 R2, ConfigMgr SP2, configmgr2007, ConfigMgr2007 R3, sccm, SCCM 2007, SCCM 2007 R2, SCCM 2007 R3, SCCM 2007 SP2, sccm2007 by Kenny Buntinx [MVP]

This is still an old one , but I can imagine some admins are still freaking out when seeing this .

In Microsoft System Center Configuration Manager (SCCM) 2007 , when trying to build a query that contains add/remove programs , most of the times it does not gives you the complete list. To solve this , you need to do the steps below :

In Microsoft System Center Configuration Manager (SCCM) 2007, find the registry key below :

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ConfigMgr\AdminUI\QueryProcessors\ValueLimit

ValueLimit is a registry entry under the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ConfigMgr\AdminUI\QueryProcessors registry subkey.
ValueLimit should be a dword value. The value signifies how many items are returned when the user clicks the values button in the criterion dialog box. This is an optional value. The default value is 2000 if no key exists. If users want to override the default value, they can create the registry key.

 

Hope it Helps ,

Kenny

Configmgr Query : Not Installed Software & Subselect Query’s

8:48 am in AdminUi, ConfigMgr, ConfigMgr 2007, ConfigMgr 2007 R2, ConfigMgr SP2, configmgr2007, ConfigMgr2007 R3, sccm, SCCM 2007, SCCM 2007 R2, SCCM 2007 R3, SCCM 2007 SP2, sccm2007 by Kenny Buntinx [MVP]

Scenario :

You need to make a query where following items need to be taking into consideration :

  • Dot.net Framework 3.5SP1 is not installed or visible in add/remove programs
  • The machine needs to be a windows XP client
  • The machine must have a SCCM client installed

Problem :

Add Remove Programs / Display Name DOES NOT EQUAL "Microsoft .NET Framework 3.5 SP1" , gives me way to much records.
The problem that we are running into is that the query does not properly exclude the clients with .Net 3.5 SP1 because there are other programs on the Add Remove Programs list that aren’t .Net Framework 3.5 SP1. It simply does what you have been asking for.

Solution :

In Configmgr, you have to use a sub select query to accomplish this. To get the expected results you have to run one query that selects all computers that DO have .NET 3.5 SP1, then you run another query that gives you all of the computers that are NOT in the first query. This is called a subselect query. In my example we wanted all workstations without .NET 3.5 SP1.

Create a query  “All systems with .NET 3.5 SP1” query. This will be used by the subselect query later on.

******************************** Code *****************************************

select distinct SMS_R_System.ResourceId, SMS_R_System.Name from  SMS_R_System inner join SMS_G_System_ADD_REMOVE_PROGRAMS on SMS_G_System_ADD_REMOVE_PROGRAMS.ResourceID = SMS_R_System.ResourceId where SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName = "Microsoft .NET Framework 3.5 SP1"

******************************** Code End *****************************************

That query shows all computers that DO have .NET 3.5 SP1 installed. This will be used by the subselect query to not include those systems in the final results.

Create the Subselect Dynamic Collection Query that will filter out only those machine that do not have a  .Net 3.5 Framework Sp1 installed

******************************** Code *****************************************

select SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,SMS_R_SYSTEM.Name,SMS_R_SYSTEM.SMSUniqueIdentifier,SMS_R_SYSTEM.ResourceDomainORWorkgroup,SMS_R_SYSTEM.Client from SMS_R_System where SMS_R_System.ResourceId not in (select distinct SMS_R_System.ResourceId from  SMS_R_System inner join SMS_G_System_ADD_REMOVE_PROGRAMS on SMS_G_System_ADD_REMOVE_PROGRAMS.ResourceID = SMS_R_System.ResourceId where SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName = "Microsoft .NET Framework 3.5 SP1") and SMS_R_System.Client = 1 and SMS_R_System.OperatingSystemNameandVersion = "Microsoft Windows NT Workstation 5.1"

******************************** Code End *****************************************

Hope it Helps ,

 

Kenny Buntinx

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

ConfigMgr 2007 Toolkit version 2 is now available

7:09 pm in AdminUi, ConfigMgr, ConfigMgr 2007, ConfigMgr 2007 R2, ConfigMgr SP2, configmgr2007, ConfigMgr2007 R3, sccm, SCCM 2007, SCCM 2007 R2, SCCM 2007 R3, SCCM 2007 SP2, sccm2007, Toolkit by Kenny Buntinx [MVP]

I’m proud to announce that our SCCM Product team has released System Center Configuration Manager 2007 Toolkit V2 live on the Microsoft Download Center today.  This release is a follow up to our original release back in 2007.  With this V2 release we re-introduced the Delete Group Class, MP Troubleshooter, Preload Package and Send Schedule Tools from the SMS 2003 Toolkit.   All four tools where frequently requested from customers & MVP’s and we are happy to enable them for use with ConfigMgr 2007 with some added features. 

The release also includes an updated Security Configuration Wizard Template for ConfigMgr 2007 SP2 and Windows Server 2008 R2.  Furthermore this release includes all the original 2007 Toolkit tools along with the new ones in one easy to install MSI.

The following list provides specific information about each tool in the toolkit.

· Client Spy – A tool that helps you troubleshoot issues related to software distribution, inventory, and software metering on Configuration Manager 2007 clients.

· Delete Group Class Tool – A tool used to remove inventory group definitions along with history data, tables, views and stored procedures for the group.

o New in 2007: In addition to removing the entries in the GroupMap and AtttributeMap tables, Delete Group Class Tool also removes the inventory stored procedures, schema views and tables.

· Desired Configuration Management Migration Tool – A tool used to migrate from the DCM Solution for SMS 2003 to DCM in ConfigMgr 2007.

· Desired Configuration Management Model Verification Tool – A tool used by desired configuration management content administrators for the validation and testing of configuration items and baselines authored externally from the Configuration Manager console.

· Desired Configuration Management Substitution Variable Tool – A tool used by desired configuration management content administrators for authoring desired configuration management configuration items that use chained setting and object discovery.

· Management Point Troubleshooter Tool – A tool that checks a computer system before and after a management point installation to ensure that the installation meets the requirements for management points.

o New in 2007: MP Troublshooter Tool can detect WebDAV rules and will provide simple automatic fix, which will help admin to correct issues like WebDAV authoring rules.  Also supports Native Mode.

· Policy Spy – A policy viewer that helps you review and troubleshoot the policy system on Configuration Manager 2007 clients.

· Preload Package Tool – A tool used to manually install compressed copies of package source files on Configuration Manager 2007 sites.

o New in 2007: Preload Package Tool now supports compressing packages before transferring them across the network.  Supported Packages: Software Distribution Package, Virtual Application Package, Boot Image, Operating System Image, Operating System Install Package and Driver Package.

· Security Configuration Wizard Template for Configuration Manager 2007 – The Security Configuration Wizard (SCW) is an attack-surface reduction tool for the Microsoft Windows Server 2008 R2 operating system. Security Configuration Wizard determines the minimum functionality required for a server’s role or roles, and disables functionality that is not required. The Configuration Manager 2007 Service Pack 2 Security Configuration Wizard template supports new site system definitions and enables the required services and ports.

· Send Schedule Tool – A tool used to trigger a schedule on a Client or trigger the evaluation of a specified DCM Baseline. You can trigger a schedule either locally or remotely.

o New in 2007: Send Schedule Tool can now trigger DCM Baseline evaluation.

· Trace32 – A log viewer that provides a way to easily view and monitor log files created and updated by Configuration Manager 2007 clients and servers. The best tool for troubleshooting log files :-)

 

Hope it Helps ,

 

Kenny Buntinx

App-V : Sequencing the SCCM 2007 Console ( howto )

1:00 pm in AdminUi, AppV, ConfigMgr, ConfigMgr 2007, ConfigMgr 2007 R2, ConfigMgr SP2, configmgr2007, Installation, MMC updates, sccm, SCCM 2007, SCCM 2007 R2, SCCM 2007 SP2, sccm2007, Virtual machine by Kenny Buntinx [MVP]

More and more customers are demanding a swift and easy install of the SCCM console , especially when it comes to upgrade your consoles when a new service pack comes along.

As my customers also have App-V in the house , witch is part of MDOP 2009 by the way , I was also interested to make the console virtualised.

After a few rounds of trying , I did not succeed in creating a virtualized SCCM console as an App-V package

Therefore , I want to explain to you all how to do it . But I couldn’t have done it without the help of Richard Ruiz from MSFT and a blog post on the technet forums.

Prerequisites : To make it yourself easy , please prepare a blank machine ( base XP SP3 with latest software updates ) into a virtualized world where you can use snapshots and revert to the original state as much as you want . I will save you an enormous amount of time.

Procedure :

1. Install all prerequisites (e.g. MMC 3.0, etc.) and your SCCM 2007 SP2 Console natively on your clean WinXP SP3 workstation, to the exact location you will be sequencing to. In this example we used D:\SCCMSP2 (stick to the 8.3 format)
2. Export the following keys and save them to a central location:

  • [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MMC\SnapIns\FX:{6de537a5-7a1c-4fa4-ac3a-1b6fc1036560}]
  • [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MMC\SnapIns\FX:{a77b774c-ce32-4ab0-982a-6bb3c078e5c1}]
  • [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ConfigMgr\AdminUI\QueryProcessors\WQL]

3. Turn Off your virtualized machine and delete all changes made (VHD) or if you use a physical machine , reimage your sequencer to a clean state. 
4. Install your App-V Sequencer and create your folder D:\SCCMSP2 (used in our example)
5. Install all your prerequisites for your SCCM 2007 SP2 Console (e.g. MMC 3.0, etc.) natively 
6. Start your sequencer and when you reach the “begin monitoring” and the sequencer flips to the background , start installing your SCCM 2007 SP2 Console in the previous defined path (in this case D:\SCCMSP2).

7. You could if you want install additions such as the famous “SCCM Right click tools” from Rick Houchins at http://myitforum.com/cs2/blogs/rhouchins/archive/2008/04/09/sccm-right-click-tools.aspx

8. If you have R2 , install R2 to the same folder , ae D:\SCCMSP2

9. After your installation is complete  and before you stop monitoring, import the 3 previously exported registry keys. 
10. Launch the Console and test functionality, then complete the installation.If you have installed the right click tools , you also need to test all functionallity ! 
11. During the Application Wizard, ensure the shortcut exe path is set to the Q: or adapt the VFS path as necessary and launch the MMC to test functionality at this phase.
12. Finish the sequence and save it. 
13. Modify the OSD to include the following dependency:

———————–code snippet——————————————
<DEPENDENCY>
<SCRIPT TIMING="POST" EVENT="STREAM" PROTECT="TRUE" WAIT="TRUE" TIMEOUT="0">
<SCRIPTBODY LANGUAGE="Batch">
echo off \n
copy /y %SFT_MNT%\<Replace with Asset Dir>\VFS\CSIDL_WINDOWS\WinSxS\Manifests %windir%\WinSxS\Manifests \n
xcopy /S /y %SFT_MNT%\<Replace with Asset Dir>\VFS\CSIDL_WINDOWS\WinSxS\Policies %windir%\WinSxS\Policies \n
</SCRIPTBODY>
</SCRIPT>
</DEPENDENCY>

———————–code snippet——————————————

14. Publish your APP-V sequenced SCCM console  and test the functionality on your App-V Client.

Hope it Helps ,

Kenny Buntinx

SCCM 2007 Reporting : How to change the Maximum Rows Returned in the Values List that is default set to 1000 rows

1:34 pm in AdminUi, ConfigMgr, ConfigMgr 2007, ConfigMgr 2007 R2, Reporting, sccm, SCCM 2007, SCCM 2007 R2 by Kenny Buntinx [MVP]

Report Viewer in Configuration Manager 2007 limits the number of rows returned to 1,000 rows when you click Values and the values list displays for a prompt. The maximum number of rows returned by the query for the prompt that populates the values list can be modified by creating a registry key and setting a value on site system computers that have the reporting point role.

IMPORTANT : Increasing the maximum number of rows for queries that return a large amount of data or for queries that are inefficiently written might cause performance issues when the values are displayed.

To do this and configure the number of rows returned in a values list

  1. Open the Registry Editor on the reporting point computer.

  2. On reporting points that run on a 32-bit operating system, navigate to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SMS\Reporting.

    On reporting points that run on a 64-bit operating system, navigate to HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\SMS\Reporting.

  3. Create a DWORD value named Values Rowcount, and then set its value to the number of rows that you want returned in the report query. If you want to return all rows, set the value to 0xffffffff, which is the hexadecimal equivalent of –1.

    The configured number of rows is returned by any prompt query that is run from this reporting point.

 

Hope it helps ,

Kenny Buntinx

Adding WMIC right-click actions to the ConfigMgr 2007 admin console (2)

1:32 pm in AdminUi, ConfigMgr, ConfigMgr 2007, sccm, SCCM 2007 by Kenny Buntinx [MVP]

Hi All,

 

In Post 1 of this topic we looked at the different WMI-command line actions you could trigger on a SCCM 2007 client.

In this post we’ll use that knowledge together with the knowledge of extending the admin console with custom actions series I did a couple of months ago to add these actions to our console.

Customize the sccm admin console – deep dive 1: http://scug.be/blogs/sccm/archive/2008/08/04/customize-the-sccm-2007-console-deep-dive-1.aspx

Customize the sccm admin console – deep dive 2: http://scug.be/blogs/sccm/archive/2008/08/04/customize-the-sccm-2007-console-deep-dive-2.aspx

Customize the sccm admin console – deep dive 3: http://scug.be/blogs/sccm/archive/2008/08/04/customize-the-sccm-2007-console-deep-dive-3.aspx

 

In the first post of the admin console deep dive session you learned how to create an xml to add custom actions. The example xml at that time looked like this.

Notepad Example Action XML

<ActionDescription Class="Executable" DisplayName="Make a Note" MnemonicDisplayName="Note" Description = "Make a note about software updates">
      <Executable>
           <FilePath>Notepad.exe</FilePath>
           <Parameters>C:\MyConfigurationManagerNote.txt</Parameters>
      </Executable>
</ActionDescription>

As you can see this example launched notepad as an executable. Given our new wmic commandlines we could replace that xml with the following to add a trigger hardware inventory action.

WMIC Action XML – Initial attempt

<ActionDescription Class="Executable" DisplayName="Trigger hardware inventory" MnemonicDisplayName="Trigger Hardware inventory" Description = "Trigger Hardware inventory">
      <Executable>
           <FilePath>WMIC</FilePath>
           <Parameters>/node:computername /namespace:\\root\ccm path sms_client CALL TriggerSchedule "{00000000-0000-0000-0000-000000000001}"</Parameters>
      </Executable>
</ActionDescription>

 

Although this WMIC XML might look good at first glance, there is still a problem with passing the parameters, more specifically the section /node:Computername should have Computername replaced with the actual computername from the console where we intended to initiate this action. That’ is were the ##SUB## parameters come into play.

When you execute any action in the console, some specific paramaters are passed on in the following syntax: ##SUB:Parametername##, which parameters are available depends on the location you execute the action from in the ConfigMgr Admin console. For our purposes the most important thing is that the Name parameter is passed on when you click a resource in the details pane of a collection. With that knowledge, our WMIC Action XML should actually become:

 

<ActionDescription Class="Executable" DisplayName="Trigger hardware inventory" MnemonicDisplayName="Trigger Hardware inventory" Description = "Trigger Hardware inventory">
      <Executable>
           <FilePath>WMIC</FilePath>
           <Parameters>/node:##SUB:Name## /namespace:\\root\ccm path sms_client CALL TriggerSchedule "{00000000-0000-0000-0000-000000000001}"</Parameters>
      </Executable>
</ActionDescription>

Note that the Computername has been replaced by ##SUB:Name## which will dynamically be resolved to the name of the resource you right-clicked on to launch the action.

 

Final step – Add the action to the console

To actually make the action appear in the console, we need to copy the above xml into  the folder with the right guid underneath:

Program Files\Microsoft Configuration Manager\AdminUI\XmlStorage\Extensions\Actions

For our specific purposes we want the action to appear when we right-click a computer system inside a collection, which corresponds to guid:

7ba8bf44-2344-4035-bdb4-16630291dcf6

So just create the folder Program Files\Microsoft Configuration Manager\AdminUI\XmlStorage\Extensions\Actions\7ba8bf44-2344-4035-bdb4-16630291dcf6 copy the WMIC xml inside the folder and restart the ConfigMgr Admin console.

Enjoy.

"Everyone is an expert at something"
Kim Oppalfens – Sms Expert for lack of any other expertise
Windows Server System MVP – SMS
http://www.scug.be/blogs/sccm/default.aspx

http://www.linkedin.com/in/kimoppalfens

Adding WMIC right-click actions to the ConfigMgr 2007 admin console (1)

8:51 am in AdminUi, ConfigMgr, ConfigMgr 2007, configmgr2007, sccm, SCCM 2007, sccm2007 by Kenny Buntinx [MVP]

Hi All,

I previously blogged about customizing the sccm admin console using the right-click actions and blogged about how you can customize the console yourself using the correct guid and a fairly easy to construct xml.

Most of these extensions use some form of vbscript to trigger these actions, but if you are not a great scripter, don’t despair you can achieve quite a lot of these tasks using a single command line. The following 2 links give you a decent overview of what is achievable using wmic:

Specifically for ConfigMgr the following command lines are interesting from my point of view:

  • Trigger hardware inventory: WMIC /node:Computername /namespace:\\root\ccm path sms_client CALL TriggerSchedule “{00000000-0000-0000-0000-000000000001}”
  • Trigger software inventory: WMIC /node:Computername /namespace:\\root\ccm path sms_client CALL TriggerSchedule “{00000000-0000-0000-0000-000000000002}”
  • Trigger data discovery: WMIC /node:Computername /namespace:\\root\ccm path sms_client CALL TriggerSchedule “{00000000-0000-0000-0000-000000000003}”
  • Trigger machine policy assignment request: WMIC /node:Computername /namespace:\\root\ccm path sms_client CALL TriggerSchedule “{00000000-0000-0000-0000-000000000021}”
  • Trigger machine policy evaluation: WMIC /node:Computername /namespace:\\root\ccm path sms_client CALL TriggerSchedule “{00000000-0000-0000-0000-000000000022}”
  • Trigger Refresh default management point: WMIC /node:Computername /namespace:\\root\ccm path sms_client CALL TriggerSchedule “{00000000-0000-0000-0000-000000000023}”
  • Trigger Refresh location (Ad site, or subnet): WMIC /node:Computername /namespace:\\root\ccm path sms_client CALL TriggerSchedule “{00000000-0000-0000-0000-000000000024}”
  • Trigger Software metering usage reporting: WMIC /node:Computername /namespace:\\root\ccm path sms_client CALL TriggerSchedule “{00000000-0000-0000-0000-000000000031}”
  • Trigger sourcelist update cycle: WMIC /node:Computername /namespace:\\root\ccm path sms_client CALL TriggerSchedule “{00000000-0000-0000-0000-000000000032}”
  • Refresh proxy manamgement point: WMIC /node:Computername /namespace:\\root\ccm path sms_client CALL TriggerSchedule “{00000000-0000-0000-0000-000000000037}”
  • Trigger cleanup policy: WMIC /node:Computername /namespace:\\root\ccm path sms_client CALL TriggerSchedule “{00000000-0000-0000-0000-000000000040}”
  • Trigger validate assignments: WMIC /node:Computername /namespace:\\root\ccm path sms_client CALL TriggerSchedule “{00000000-0000-0000-0000-000000000042}”
  • Trigger certificate maintenance: WMIC /node:Computername /namespace:\\root\ccm path sms_client CALL TriggerSchedule “{00000000-0000-0000-0000-000000000051}”
  • Trigger branch dp scheduled maintenance: WMIC /node:Computername /namespace:\\root\ccm path sms_client CALL TriggerSchedule “{00000000-0000-0000-0000-000000000061}”
  • Trigger branchdp provisioning status reporting: WMIC /node:Computername /namespace:\\root\ccm path sms_client CALL TriggerSchedule “{00000000-0000-0000-0000-000000000062}”
  • Trigger software update deployment: WMIC /node:Computername /namespace:\\root\ccm path sms_client CALL TriggerSchedule “{00000000-0000-0000-0000-000000000108}”
  • Trigger state message upload: WMIC /node:Computername /namespace:\\root\ccm path sms_client CALL TriggerSchedule “{00000000-0000-0000-0000-000000000111}”
  • Trigger state message cache cleanup: WMIC /node:Computername /namespace:\\root\ccm path sms_client CALL TriggerSchedule “{00000000-0000-0000-0000-000000000112}”
  • Trigger sofware update scan: WMIC /node:Computername /namespace:\\root\ccm path sms_client CALL TriggerSchedule “{00000000-0000-0000-0000-000000000113}”
  • Trigger software update deployment re-eval: WMIC /node:Computername /namespace:\\root\ccm path sms_client CALL TriggerSchedule “{00000000-0000-0000-0000-000000000114}”
  • Trigger OOBS discovery: WMIC /node:Computername /namespace:\\root\ccm path sms_client CALL TriggerSchedule “{00000000-0000-0000-0000-000000000120}”

And some more general ones:

  • reboot computer: wmic /node:computername os Where (name like ‘%windows%’) call reboot
  • shutdown computer: wmic /node:computername os Where (name like ‘%windows%’) call shutdown

 

Enjoy.

“Everyone is an expert at something”

Kim Oppalfens – Sms Expert for lack of any other expertise
Windows Server System MVP – SMS
http://www.scug.be/blogs/sccm/default.aspx

http://www.linkedin.com/in/kimoppalfens