[Today’s announcement comes from Brian Huneycutt]
The Sustained Engineering team has released an update to the “Microsoft System Center Configuration Manager 2007 SP2 Management Pack for Microsoft System Center Operations Manager 2007 R2”.
Due to changes in naming convention, this update is now referred to as the “System Center Monitoring Pack for Configuration Manager 2007 SP2 (Converted)”. You can download the new release here.
This is a very limited scope release intended to address top customer issues reported after shipping the last Management Pack (MP). As you can see from the name this is still a converted MP although the Monitoring Pack for Configuration Manager 2012 will be native.
The following changes, also covered in the updated MP guide, are in version 6.0.6000.3.
The prior version of the MP will upgrade directly to the new release.
If you are running an alternate MP, such as one that was unsealed, modified, and then sealed again the upgrade steps will include the following:
--Brian Huneycutt
This posting is provided "AS IS" with no warranties, and confers no rights.
[Today's post is from the Configuration Manager Writing Team]
The Configuration Manager 2012 documentation library has been updated on the web and the latest content has Updated: September 1, 2011 at the top of the topic.
There are no significant updates for the Configuration Manager 2007 documentation library this month.
We will continue to add more information for Configuration Manager 2012 as we get that information from the product group and in response to customer feedback. At the moment, some topics are published without any content to let you know that it’s planned. We also monitor page hits and search results to help us plan when to publish the information. To help you find the right information, use the Configuration Manager 2012 search portal.
Note that we are writing for the released product, rather than for any pre-release version, such as Beta 2. As such, there might be some discrepancies with the pre-release version that you are testing and the documentation.
We value customer feedback and try to incorporate it when possible. Although we can’t promise to make the docs perfect for everybody, we are committed to continual improvement. So, keep that feedback coming, and feel free to contact us about anything related to the documentation by using our usual address of SMSDocs@Microsoft.com.
What's New in the Configuration Manager 2012 Documentation Library for September 2011
The following information lists the topics that contain significant changes since the August 2011 update.
Configuring the Application Catalog and Software Center in Configuration Manager
– New topic with the steps and procedures required to install and configure the Application Catalog and Software Center. These elements support user-centric management, a central theme of Configuration Manager 2012.
Prerequisites for Application Management in Configuration Manager
– Updated for the Application Catalog dependencies.
How to Install Clients on Mobile Devices and Enroll Them by Using Configuration Manager
– Updated to clarify that mobile devices that are enrolled by Configuration Manager always connect to the Internet FQDN of the management point and distribution point in primary sites.
Prerequisites for Client Deployment in Configuration Manager
– Updated for Prerequisites for Mobile Device Clients.
Step-by-Step Example Deployment of the PKI Certificates for Configuration Manager: Windows Server 2008 Certification Authority
– Updated the section Deploying the Web Server Certificate for Site Systems that run IIS, to accommodate site system roles that allow connections from the Internet.
Administrator Checklist: Deploying Clients in Configuration Manager
– New topic that lists the steps to deploy clients on computers and mobile devices.
About Client Installation Properties Published to Active Directory Domain Services in Configuration Manager
– Information added about which client installation properties are published to Active Directory Domain Services.
-- The Configuration Manager Writing Team
This posting is provided "AS IS" with no warranties and confers no rights.
[Today’s post contributor is Lin Tang]
Role-based administration (RBA) is a new feature introduced in Configuration Manager 2012. RBA provides Configuration Manager administrators with an easy way to implement the security model that allows them to assign and manage administrative permissions by assigning which actions they are able to perform using security roles, which users and systems they can manage through collections, and which objects they can access using security scopes. Based on their administrative permissions, the Configuration Manager console has been significantly enhanced to provide administrators with a streamlined view that is customized to their specific role—showing only what they need to do their job.
Each security role combines objects with permitted operations that collectively allow a Configuration Manager administrative users to perform a job function such as “Application Administrator”. Objects are the items in Configuration Manager that you want to protect, such as applications. Operations are what you can do with the objects, like read, modify, and delete. Administrators who are familiar with Configuration Manager 2007, could view security roles as a set of “Class Permissions”. (reference http://technet.microsoft.com/en-us/library/bb632332.aspx)
Security roles are created for different job functions. Instead of granting granular permissions to a Configuration Manager administrative user, you assign a particular security role to them. Configuration Manager provides several built-in roles which can meet some popular functions, like Software Update Manager for managing software updates. You also can define customized security roles by copying an existing role and making some modifications, or importing security roles that you have obtained.
Use security scopes to limit an administrative users access to specific secured objects. Security roles grant the class level permission to the user such as “Read Applications”. Security scopes grant instance level permission for which applications they can read. Administrators who are familiar with Configuration Manager 2007, could view security scopes as a way of grouping “Instance Permissions”. (reference http://technet.microsoft.com/en-us/library/bb632332.aspx)
Let’s look at an example: You have two collections: “All Desktops” and “All Servers”, and you have different asset managers to manage these collections. According to the security role definition, both of them have the permission to create and modify software metering rules. However, you really don’t want the “All Desktops” administrator to modify the metering rules for the “All Servers” collection. You can use security scopes to assign the “All Desktops” metering rules to the “Desktop Content” security scope, and server metering rules to the “Server Content” security scope. You then assign the correct security scope to each administrator. Once you configure the security assignments in this way, the “All Desktops” administrator cannot create a rule targeting “All Servers”, nor can they modify a metering rule that the “All Servers” administrator created. Other examples are where you want to protect other object types such as applications, packages, boundaries, sites, task sequences, etc. You can just assign them to a security scope which is only assigned to the administrative users that need to access them.
When discussing security scopes, we should also discuss the “Default Scope”. The “Default Scope” is a concept that might be confusing at first. When the Configuration Manager site is installed, there are many secured objects already in the system, e.g. site and query. Because all securable object types must have a security scope assigned to them, their default scope is the built-in “Default Scope”. The “Default Scope” is not a security scope to which new objects are automatically associated. When you create a new object, the security scopes associated with the object depend on the security assignments of the administrative user who creates the object.
A Collection is the group of devices or users the administrative user can manage. Unlike security roles and security scopes, collections support a hierarchy relationship by using the collection limiting functionality that is new in Configuration Manager 2012. The Configuration Manager collection features, which include Collection Limiting and the “Exclude” and “Include” membership rules, are very powerful administration tools. If you define a query based collection called “All Desktops”, it can be limited to (a subset of) of the “All Systems” collection. If you want to ensure that “All Desktops” never contains servers, you can create a membership rule that excludes the “All Servers” collection. Even if you accidentally add a server as a direct member to “All Desktops”, that server would not be evaluated as “All Desktops” member because the exclude rule takes precedence.
When you add a new Configuration Manager administrative user that has collection creation permissions and they are assigned the “All Desktops” collection, you are ensuring that they cannot manage the servers since any collections they create will always be limited to (a subset of) the “All Desktops” collection. When you assign the “All Desktops” collection to an administrative user, they will automatically have permissions on all collections which are limited to “All Desktops”, and they are restricted from modifying the collection definition for “All Desktops”.
Collection Based Security Partitions
In Configuration Manager 2007, you may have used Configuration Manager sites as administrative boundaries. If you wanted to assign one administrator exclusive permissions for Europe, and different administrator permissions for North America, you may have set up two different sites that enforced these security limitations. With Configuration Manager 2012, sites are no longer administrative boundaries and administrative permissions are achieved by assigning collections to administrative users. This has a few important implications:
1) If you have multiple Configuration Manager 2007 sites only to serve as administration boundaries, you can now reduce your infrastructure cost by using fewer servers and sites through the use of collections!
2) When an administrator is assigned to the “All Windows 7” collection, that collection is evaluated across the entire hierarchy, not just within the local site. This means that if you have a global “Assets and Compliance Manager”, they can manage all systems from one Configuration Manager console. With Configuration Manager 2007 they would need to sign into each site and repetitively perform their duties. Now, they can do this once, from one console, from wherever they are located.
3) If you would like to keep your previous administrative boundaries (e.g. Europe and North America), you will need to define a collection for each of these groups and assign them to your administrative users.
Let’s go through a full user scenario to understand these concepts. Kevin is granted the “Full Administrator” security role with access to all objects and all collections during the installation of the Configuration Manager site. Kevin’s company has two primary locations, North America and Europe. Kevin wants to grant Meg the responsibility of managing applications for the North America desktops. Also, Kevin prefers that Meg can see all of the applications in the Configuration Manager, including those for the Europe desktops.
Kevin checks all the security roles in system, and the built-in role “Application Administrator” can meet his requirement for Meg to manage applications. He also notices there is no security role he can use for only reading all the applications in Configuration Manager. Therefore, kevin will make a custom security role named Application Auditor that is based on the Application Administrator security role. On the Copy Security Role page, Kevin removes all permissions for modify/delete/create, and keeps onlythe read permissions.
Kevin then goes to the Security Scope node of the Configuration Manager console, and adds two new security scopes. He names them as NA and EU. Now he needs to assign related objects to the right security scope based on the objects locations. To make the application deployment scenario work correctly, Kevin not only assigns some applications to the security scopes, but also associates the proper distribution points and distribution point groups into the security scope he created. To do this, Kevin has to go to the Application the Distribution Points node or the Distribution Point Groups node in the Configuration Manager Console, select the objects, and set the security scopes for these objects. There are already two existing collections which include desktops in North American and Europe. Kevin can use them to limit the devices Meg can manage.
Kevin now goes to Administrative Users node to add Meg’s account to the system. He assigns the Application Administrator security role to Meg and limits Meg’s access only to objects in the NA security scope. Also he assigns the All NA Desktops collection to Meg, which means Meg can manage only the devices in this collection. Instead of granting Meg another security role, Kevin wants to create an Active Directory security group, Application Auditors, which contains the users he wants to grant the read permission to for all the applications. He follows the same steps as he creates Meg’s account to add the security group to the system but with different security role and security scope. He also adds Meg’s account to the new Active Directory security group he created that was named Application Auditors.
Kevin can go to the Reports node to check the security configuration of Configuration Manager. He runs the report “Security for a specific or multiple Configuration Manager objects” to see what objects he has assigned to the NA security scope. Also, he can run the report “Audit log of Role-Based Access Control objects” to check all the security activities that have occured in the site to see whether there are violations configured by other administrators. There are several other reports under Administrative Security which Configuration Manager provides to help the administrator.
Finally, Kevin notifies Meg that she has access to the Configuration Manager system. Meg installs the Configuration Manager console and now logs in to do her job. Meg opens the Configuration Manager console and finds she has all the permissions to manage applications for NA desktops. She can also see some applications in the EU security scope but cannot modify them.
With RBA feature introduced in Configuration Manager 2012, managing your Configuration Manager administrative permissions becomes more efficient and flexible. Administrators can delegate tasks by assigning the roles, scopes, and collections faster, easier, and with greater confidence.
--Lin Tang
9/9/2011 - The script in this posting has been updated to handle assigning a new machine name during the deployment.
[Today’s post comes from Minfang Lv]
This post describes how and when you might see duplicate records when you use unknown computer support with Active Directory Delta-Discovery in Configuration Manager 2007 R3, what problems you might see, and some suggested workarounds.
Unknown computer support is an operating system deployment feature that was introduced in Configuration Manager 2007 R2. It allows you to find unmanaged computers so that you can install an operating system on them, and optionally, install the Configuration Manager client:
http://technet.microsoft.com/en-us/library/cc431374.aspx. Active Directory Delta Discovery is a new feature in Configuration Manager 2007 R3 that enhances the discovery capabilities of the product by discovering only new or changed resources in Active Directory Domain Services instead of performing a full discovery cycle: http://technet.microsoft.com/en-us/library/ff977086.aspx.
If you use these two features at the same time, you might see duplicate records for the unknown computer in Configuration Manager database. In this scenario, you will see two records in the Configuration Manager console that have the same name of the computer that installed an operating system by using unknown computer support: One record shows that it is a client and assigned; the other record shows that it is not a client and not assigned.
The Technical Details
When you install an operating system by using unknown computer support, the following processes happen:
If the DDR is created (number 3) after the computer installs (number 4), you won’t see a duplicate record because Configuration Manager has enough information to merge the Active Directory DDR with the computer record. However, if the DDR is created before the computer installs and registers (in the order listed above), Configuration Manager cannot match and merge the two records, which results in the duplicate record.
This problem is a timing issue, which has always existed in the product. However, the introduction of Active Directory Delta Discovery in Configuration Manager 2007 R3 means that you are now more likely to see the duplicate records.
Potential Issues
There are two potential issues as a result of this problem:
Workarounds
Use one of the two workarounds for Configuration Manager 2007 R3:
Use the following steps:
A. In the Configuration Manager console, navigate to System Center Configuration Manager / Site Database / Site Management / <site name> / Site Settings / Status Filter Rules. B. Right-click Status Filter Rules, click New, and then click New Status Filter Rule. C. On the General page of the New Status Filter Rule Wizard, specify a name for the new status filter rule and configure the following for the message-matching criteria:
A. In the Configuration Manager console, navigate to System Center Configuration Manager / Site Database / Site Management / <site name> / Site Settings / Status Filter Rules.
B. Right-click Status Filter Rules, click New, and then click New Status Filter Rule.
C. On the General page of the New Status Filter Rule Wizard, specify a name for the new status filter rule and configure the following for the message-matching criteria:
D. On the Actions page of the New Status Filter Rule Wizard, specify the following action:
Sample scripts
Disclaimer: These are sample scripts that use the Configuration Manager 207 SDK. Make sure that you test your scripts in a test environment before you run them on a production network.
CMDWrapper.bat
call cscript c:\DeleteDuplicatedRecord.vbs %1 %2 %3
DeleteDuplicatedRecord.vbs
'======Delete duplicate recorde
'======Usage DeleteDuplicateRecords <sitecode> <SystemNetBIOSName> <servername>
Const ForAppending = 8
Const Interval = 30 'in minutes, only support 30 and 60. Please
Const Tolerent = 10 'in minutes, make sure the good record has the name now.
'implement if you want another value
Const sFileName = "c:\DeleteDuplicatedRecordsLog.log"
'======Create/Append Log Files
Dim oFilesys, oFiletxt, sPath
Set oFilesys = CreateObject("Scripting.FileSystemObject")
if (oFilesys.FileExists(sFileName)) Then
Set oFiletxt = oFileSys.OpenTextFile(sFileName, ForAppending, True)
else
Set oFiletxt = oFilesys.CreateTextFile(sFileName, False)
End if
oFiletxt.WriteLine("DeleteDuplicatedRecordsLog")
oFiletxt.WriteLine("============" &Now())
'======Check Parameters
if (WScript.arguments.count <> 3) then
oFiletxt.WriteLine("Usage DeleteDuplicatedRecords <sitecode> <SystemNetBIOSName> <servername>")
WScript.Quit
oFiletxt.WriteLine("SiteCode = " & WSCript.arguments(0))
oFiletxt.WriteLine("Machine name = " & WSCript.arguments(1))
oFiletxt.WriteLine("ServerName = " & WSCript.arguments(2))
end if
SiteCode=WSCript.arguments(0)
MachineName=WSCript.arguments(1)
ServerName=WSCript.arguments(2)
'======Connect to SMS Provider
Set lLocator = CreateObject("WbemScripting.SWbemLocator")
Set gService = lLocator.ConnectServer(".","root\sms\site_" + SiteCode)
Set swbemContext = CreateObject("WbemScripting.SWbemNamedValueSet")
swbemContext.Add "SessionHandle", gService.ExecMethod("SMS_SiteControlFile", "GetSessionHandle").SessionHandle
'===============================================================================================================================================
'======If you give the computer a new machine name, you need to query for the new machine name
oFiletxt.WriteLine("Wait for 5 minutes for the client to register successfully")
WScript.Sleep 1000*60*5
oFiletxt.WriteLine("wake up: " &Now())
oFiletxt.WriteLine("Check to see if the machine name has been changed")
statusMessageQuery = "select RecordID from SMS_StatMsg where MessageID = 11171 and MachineName = '" & MachineName & "' order by RecordID desc"
Set statusMessages = gService.ExecQuery(statusMessageQuery)
if (statusMessages.Count < 1) then
oFiletxt.WriteLine("No Status Message with ID = 11171 and MachineName = " & MachineName & ", exiting...")
For each statusMessage in statusMessages
RecordID = statusMessage.RecordID
exit for
Next
oFiletxt.WriteLine("Status Message RecordID = " & RecordID)
statusMessageAttributeQuery = "select AttributeValue from SMS_StatMsgAttributes where RecordID = '" & RecordID & "' and AttributeID = 408"
Set statusMessagesAttributes = gService.ExecQuery(statusMessageAttributeQuery)
if (statusMessagesAttributes.Count < 1) then
oFiletxt.WriteLine("No Status Message Attribute with AttributeID = 408 and RecordID = " & RecordID & ", exiting...")
For each statusMessagesAttribute in statusMessagesAttributes
GUID = statusMessagesAttribute.AttributeValue
oFiletxt.WriteLine("SMS Client GUID = " & GUID)
machineNameQuery = "select NetbiosName from SMS_R_System where SMSUniqueIdentifier = '" & GUID & "'"
Set machineNames = gService.ExecQuery(machineNameQuery)
oFiletxt.WriteLine("No Systems with SMSGUID = " & GUID & ", using the Machine Name in the status message")
For each newMachineName in machineNames
MachineName= newMachineName.NetbiosName
oFiletxt.WriteLine("New MachineName = " & MachineName)
'=================================================================================================================================================
'======Find the system with the specific machine name.
duplicateRecordsQuery = "select * from SMS_R_System where NetBIOSName = '" + MachineName + "'"
Set duplicatedRecords = gService.ExecQuery(duplicateRecordsQuery)
if (duplicatedRecords.Count < 1) then
oFiletxt.WriteLine("Didn't find the machine, exiting...")
'======Delete if the Client, Client Type, Hardware ID, SMBIOSGUID, SMSUniqueIdentifier is null
Deleted = 0
for each item in duplicatedRecords
Active = item.Properties_.Item("Active")
AgentName= item.Properties_.Item("AgentName")
Client = item.Properties_.Item("Client")
ClientType = item.Properties_.Item("ClientType")
HardwareID = item.Properties_.Item("HardwareID")
Name = item.Properties_.Item("Name")
NetbiosName = item.Properties_.Item("NetbiosName")
ResourceId = item.Properties_.Item("ResourceId")
SMBIOSGUID = item.Properties_.Item("SMBIOSGUID")
SMSUniqueIdentifier = item.Properties_.Item("SMSUniqueIdentifier")
oFiletxt.WriteLine("Active: " & Active)
for each AgentNameInstance in AgentName
oFiletxt.WriteLine("AgentName: " & AgentNameInstance)
oFiletxt.WriteLine("Client: " & Client)
oFiletxt.WriteLine("ClientType: " & ClientType)
oFiletxt.WriteLine("HardwareID: " & HardwareID)
oFiletxt.WriteLine("Name: " & Name)
oFiletxt.WriteLine("NetbiosName: " & NetbiosName)
oFiletxt.WriteLine("RecourceId: " & ResourceId)
oFiletxt.WriteLine("SMBIOSGUID: " & SMBIOSGUID)
oFiletxt.WriteLine("SMSUniqueIdentifier: " & SMSUniqueIdentifier)
if (IsNull(Active) and IsNull(Client) and IsNull(ClientType) and IsNull(HardwareID) and IsNull(SMBIOSGUID) and IsNull(SMSUniqueIdentifier)) then
oFiletxt.WriteLine("Delete this one: ResourceId = " & ResourceId)
'Delete Record when there's duplicate and it's active/SMBIOSGUID, etc is null
item.Delete_
oFiletxt.WriteLine("Deleted item: ResourceId = " & ResourceId)
Deleted = 1
if (Deleted <> 1) then
oFiletxt.WriteLine("Didn't delete anything, exiting...")
'======If there's delete operation, trigger a full AD Group/SG discovery in no later than half hour.
'======Get the Current Time & Calculate Next full schedule time.
CurrentTime = Now
CurrentTime = DateAdd("n", Tolerent, CurrentTime)
oFiletxt.WriteLine("Defined Interval: " & Interval)
oFiletxt.WriteLine("Current Time: "& CurrentTime)
MinusSec = 0 - Second(CurrentTime)
MinusMin = 0 - Minute(CurrentTime)
CurrentTime = DateAdd("s",MinusSec,CurrentTime)
if (Interval = 60) then
CurrentTime = DateAdd("n",MinusMin,CurrentTime)
CurrentTime = DateAdd("h",1,CurrentTime)
if (Interval = 30) then
if (Minute(CurrentTime) <= 30) then
CurrentTime = DateAdd("n", 30 + MinusMin, CurrentTime)
CurrentTime = DateAdd("n", MinusMin,CurrentTime)
NextPlannedTime = CreateWMITime(CurrentTime)
oFiletxt.WriteLine("Next Planned Full Sync Time: "& NextPlannedTime)
'======Set the Startup Time of the next full discovery
Call ScheduleFullSync("SMS_AD_SYSTEM_GROUP_DISCOVERY_AGENT", SiteCode, ServerName, NextPlannedTime)
Call ScheduleFullSync("SMS_AD_SECURITY_GROUP_DISCOVERY_AGENT", SiteCode, ServerName, NextPlannedTime)
oFiletxt.WriteLine("Successfully Configured, exiting...")
wScript.Quit
'======End of the script
Function ScheduleFullSync(DiscoveryMethodName, SiteCode, ServerName, NextPlannedTime)
oFiletxt.WriteLine("Now Configure " & DiscoveryMethodName)
Dim DeltaEnabled 'Whether the delta discovery is enabled
Dim StartupPropertyName 'Startup Schedule or Full Sync Schedule depends on whether delta discovery is enabled or not.
Dim StartUpTime
DeltaEnabled = false
Query = "SELECT * FROM SMS_SCI_Component " & _
"WHERE ItemName = '" & DiscoveryMethodName & "|" & ucase(serverName) & "' " & _
"AND SiteCode = '" & siteCode & "'"
oFiletxt.WriteLine("[Debug]Query = " & Query)
'Get the Discovery Agent properties.
Set SCIComponentSet = gService.ExecQuery(Query, ,wbemFlagForwardOnly Or wbemFlagReturnImmediately, swbemContext)
'First Loop to see if delta discovery is enabled
For Each SCIComponent In SCIComponentSet
' Loop through the array of embedded SMS_EmbeddedProperty instances.
For Each vProperty In SCIComponent.Props
' Setting: Delta Discovery Enabled or not
if (vProperty.PropertyName = "Enable Incremental Sync") then
oFiletxt.WriteLine ("Delte Discovery value: " & vProperty.value)
DeltaEnabled = vProperty.Value
' Setting: if full schedule is enabled or not
if (vProperty.PropertyName = "SETTINGS") then
oFiletxt.WriteLine ("Active: " & vProperty.value1)
if (vProperty.value1 = "INACTIVE") then
oFiletxt.WriteLine ("Discovery not enabled, exist Function")
exit Function
'======If Delta Discovery is enabled, then PropertyName is "Startup Schedule", else, it's "Full Sync Schedule".
if (DeltaEnabled = false) then
StartupPropertyName = "Startup Schedule"
StartupPropertyName = "Full Sync Schedule"
'Second loop to get the Startup time
oFiletxt.WriteLine("check Property Name: " & StartupPropertyName)
' Setting: Startup Schedule
If vProperty.PropertyName = StartupPropertyName Then
StartUpScheduleToken = vProperty.Value1
oFiletxt.WriteLine("Original StartUpScheduleToken: " & StartUpScheduleToken)
Set InParams = gService.Get("SMS_ScheduleMethods").Methods_("ReadFromString").InParameters.SpawnInstance_
InParams.StringData = StartUpScheduleToken
set outParams = gService.ExecMethod("SMS_ScheduleMethods","ReadFromString",InParams,,swbemContext)
oFiletxt.WriteLine("**DayDuration:" & outParams.TokenData(0).DayDuration)
oFiletxt.WriteLine("**HourDuration:" & outParams.TokenData(0).HourDuration)
oFiletxt.WriteLine("**MinuteDuration:" & outParams.TokenData(0).MinuteDuration)
oFiletxt.WriteLine("**DaySpan:" & outParams.TokenData(0).DaySpan)
oFiletxt.WriteLine("**HourSpan:" & outParams.TokenData(0).HourSpan)
oFiletxt.WriteLine("**MinuteSpan:" & outParams.TokenData(0).MinuteSpan)
oFiletxt.WriteLine("**StartTime:" & outParams.TokenData(0).StartTime)
oFiletxt.WriteLine("**IsGMT:" & outParams.TokenData(0).IsGMT)
StartUpTime = outParams.TokenData(0).StartTime
'If Startup Time not equal to planned next schedule time, update is.
if (StartUpTime <> NextPlannedTime) then
oFiletxt.WriteLine("Original Startup time != Planned time, update it")
outParams.TokenData(0).StartTime = NextPlannedTime
Set clsScheduleMethod = gService.Get("SMS_ScheduleMethods")
clsScheduleMethod.WriteToString Array(outParams.TokenData(0)), NextPlannedTimeScheduleToken
oFiletxt.WriteLine("NextPlannedTimeScheduleToken:" & NextPlannedTimeScheduleToken)
vProperty.value1 = NextPlannedTimeScheduleToken
Set SCICompPath = SCIComponent.Put_(wbemChangeFlagUpdateOnly, swbemContext)
' Commit the change to the actual site control file.
Set InParams = gService.Get("SMS_SiteControlFile").Methods_("CommitSCF").InParameters.SpawnInstance_
InParams.SiteCode = siteCode
gService.ExecMethod "SMS_SiteControlFile", "CommitSCF", InParams, , swbemContext
oFiletxt.WriteLine("Next schedule time is within 30 minutes, will not change")
End If
End Function
Function CreateWMITime(StringTime)
Dim iYear,iMonth, iDay, iHour, iMinute, iSecond
iYear = Year(StringTime)
iMonth = Month(StringTime)
iDay = Day(StringTime)
iHour = Hour(StringTime)
iMinute = Minute(StringTime)
iSecond = Second(StringTime)
if len(iMonth)<2 then
iMonth = "0" & iMonth
if len(iDay)<2 then
iDay = "0" & iDay
if len(iHour)<2 then
iHour = "0" & iHour
if len(iMinute)<2 then
iMinute = "0" & iMinute
if len(iSecond)<2 then
iSecond = "0" & iSecond
CreateWMITime = iYear & iMonth & iDay & iHour & iMinute & iSecond & ".000000+***"
if len(CreateWMITime)<25 or len(CreateWMITime)>25 then
CreateWMITime = ""
--Minfang Lv
[Today's post comes from Harini Muralidharan]
We are announcing support changes for the following releases. Please look for these changes to be reflected in the Supported Configuration pages within a few months.
Configuration Manager 2007 supports Microsoft SQL Server 2008 R2 SP1 and Microsoft SQL Server 2008 SP3.
System Center Configuration Manager 2007 SP2, R2 and R3 now supports Microsoft SQL Server 2008 R2 SP1 and Microsoft SQL Server 2008 SP3 as a Configuration Manager 2007 site database.
The Reporting Service Point site system role and Client Status Reporting feature found in System Center Configuration Manager 2007 R2 and R3, are also supported with these versions of SQL Server.
No software updates are required.
--Harini Muralidharan
[Brian Huneycutt provides today’s blog post]
An issue with the client patch process was recently discovered, which might lead to Configuration Manager 2007 R3 clients failing to load power policy.
Affected clients are those that have applied the Configuration Manager 2007 SP2 prerequisite hotfix for R3 (KB977384) followed by any of the later client hotfixes from the list below. The cause of the issue has to do with un-versioned files (.MOF files in this specific case) added during the patch process.
The result is compilation of the wrong version of CollectionSettings.MOF on clients, removing data from the CCM_PowerConfig class that is required to process power policy.
Affected hotfixes:
2392488: Advertisement is not scheduled to run on a System Center Configuration Manager 2007 SP2 client if the client computer starts or awakens within the maintenance window
2444668: Hotfix rollup for Asset Intelligence compatibility issues in System Center Configuration Manager 2007 SP2 with other Microsoft volume license products: November 2010
2481567: Asset Intelligence "License 01A" report incorrectly reports the MSDN editions of Windows Server 2008 as Windows XP in System Center Configuration Manager 2007 SP2 if MAK keys are used
If any of the 3 hotfixes above have been applied after the R3 prerequisite hotfix you will see errors similar to the following in the client PolicyEvaluator log file:
//
Applying policy ABC0000F-{916a12bb-a67c-4602-a393-ee6972925a05}
Failed to load policies from XML.
Not found (Error: 80041002; Source: WMI)
Bad policy dumped to C:\WINDOWS\system32\CCM\Temp\badpolicy-SMS_ABC-ABC0000F-{916a12bb-a67c-4602-a393-ee6972925a05}-1.00-{1d0e0aab-4c97-426a-9f58-05b1b773ffeb}.txt
Already sent a policy rule application failure status message within the last 6 hours, not sending.
Failed to apply policy rule {1d0e0aab-4c97-426a-9f58-05b1b773ffeb}.
The policy CCM_Policy_Policy4.PolicyID="ABC0000F-{916a12bb-a67c-4602-a393-ee6972925a05}",PolicySource="SMS:ABC",PolicyVersion="1.00" failed to compile. State has been set to 'Inactive' and policy will be rolled back.
Failed to update policy CCM_Policy_Policy4.PolicyID="ABC0000F-{916a12bb-a67c-4602-a393-ee6972925a05}",PolicySource="SMS:ABC",PolicyVersion="1.00"
Note the policyID and associated GUID's will vary from site to site.
The affected hotfixes listed above were re-released as of Tuesday April 26, 2011. If you previously downloaded but have not installed one of these fixes, you should download the new version instead. Simply check the date modified on the file that was downloaded to compare dates.
If you have already installed one of the hotfixes and have clients that are unable to process power policy, you can recover using any of the following methods:
Method 1:
Install the updated version of an affected hotfix. These hotfixes can be reapplied over prior installations to correct the MOF file issue.
In the case of KB2444668 (Asset Intelligence Hotfix Rollup), that is replaced by the most recent AI rollup, KB2536089
Method 2:
Manually correct the Power Management class in WMI. The correct version of the MOF file is attached to this posting. This file can be distributed to clients and compiled using a command line with the following syntax:
mofcomp <path to mof file>
The path should be one that is accessible to the local system account, and the command does need to be run with administrative rights.
Thank you,