Translate this site using Windows Live Translator:
February, 2012 - System Center Configuration Manager Team Blog - Site Home - TechNet Blogs

System Center Configuration Manager Team Blog

The official blog of the Microsoft System Center Configuration Manager Product Group

February, 2012

Posts
  • System Center Configuration Manager Team Blog

    Announcement: Configuration Manager Documentation Library Update for February 2012

    • 3 Comments

    The Configuration Manager 2007 Documentation Library and the Documentation Library for System Center 2012 Configuration Manager have been updated on the web and the latest content has Updated: February 1, 2012 at the top of the topic.

    You might have noticed that the default view for TechNet is now Lightweight, rather than Classic.  And that the Lightweight view has replaced the star rating with the simpler “Did you find this helpful? Yes/No feedback mechanism.  If you want to return to the familiar Classic view, click the Preferences icon in the top right of the page.  Then, from the Choose View page, click Classic.

    One disadvantage that we’ve found with the Lightweight view is that it doesn’t have the Collapse All/Expand All control in the top left of the page.  When you search on a page (Find) that has collapsed sections, search will not find text in sections that are collapsed.  An easy way around this, is to click Expand All before you search on a page.  However, this capability is not included in the Lightweight view.  In both views, search finds topics even when sections are collapsed; the limitation applies to searching on a page.

    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 2007 Documentation Library for February 2012

    The following information lists the topics that contain significant changes since the January 2012 update.

    Planning for PXE Initiated Operating System Deployments

    - Updated to clarify that only boot images can be distributed to a PXE service point.  

    How to Create an Exclusion List for Unknown Computer Support

    - Updated to add information about how to create a MACIgnoreListFile registry key for 64-bit servers.

     

    What's New in the Documentation Library for System Center 2012 Configuration Manager, February 2012

    The following information lists the topics that contain significant changes since the January 2012 update.

    Supported Configurations for Configuration Manager

    - Updated the site system role prerequisites and added the minimum hardware requirements for site systems.

    Planning for Hardware Configurations for Configuration Manager

    - New topic that provides hardware guidance for large sites in production environments.

    Configure Database Replicas for Management Points

    - New topic about how to configure a SQL Server replica for the site database.

    Planning for High Availability with Configuration Manager

    - New topic that lists the high availability options that Configuration Manager supports.

    Install a Configuration Manager Console

    - Updated section in the Manage Site and Hierarchy Configurations topic that provides information about how to install the Configuration Manager console by running the Configuration Manager Console Setup Wizard, or by using a command prompt.

    Configuration Manager Unattended Setup

    - Updated section in the Manage Site and Hierarchy Configurations topic that provides information about how to install Configuration Manager by creating an unattended installation script and running Setup with the /script command option.

    Configure the Site Database to Use a SQL Server Cluster

    - New section in the Manage Site and Hierarchy Configurations topic that provides information about using a virtual Microsoft SQL Server cluster instance to host the Configuration Manager site database.

    Unattended Site Recovery Script File Keys

    - New section in the Backup and Recovery in Configuration Manager topic about how to recovery the site by using an initialization file with the /script Setup command-line option.

    How to Install Clients on Windows Computers in Configuration Manager

    - Updated the sections about upgrading the client by using a package and program, and by using automatic client upgrade.

    How to Assign Client Computers to a Site in Configuration Manager

    - Clarified that a Configuration Manager 2007 can successfully assign to a System Center 2012 Configuration Manager site, but that this scenario is to support automatic client upgrade only. Until the client is upgraded to System Center 2012 Configuration Manager, the client will not install settings, applications, or software updates.

    What’s New in Configuration Manager

    - Updated the Client Status section to remove the information about Active Directory last logon time, and updated the Hardware Inventory section to clarify that the sms_def.mof file is no longer used in System Center 2012 Configuration Manager.  

    Configuring Software Updates in Configuration Manager

    - Updated the steps for configuring software updates to prevent unwanted software updates from being synchronized.

    Operating System Deployment in Configuration Manager

    - This section has been updated for the following topics:

    Technical Reference for the Hierarchy Maintenance Tool (Preinst.exe) in Configuration Manager

    - New topic that covers how and when to use the Hierarchy Maintenance tool.

    Technical Reference for the Icons Used for Software Updates

    - New topic that lists and explains the icons that software updates uses.  

    Technical Reference for Accounts Used in Configuration Manager

    - Fixed the publishing problem that we reported last month, so that now the group names that end in _<sitecode> are no longer listed as _[sitecode].

    Frequently Asked Questions for Configuration Manager

    - Updated with new entries that include the following:

    • Why isn’t the site system role that I want available in the Add Site System Roles Wizard?
    • What High Availability does Configuration Manager have?
    • What’s the difference between upgrading clients by using the supplied package definition file and a package and program, and using automatic client upgrade that also uses a package and program?

     

    -- The Configuration Manager Writing Team

    This posting is provided "AS IS" with no warranties and confers no rights.

  • System Center Configuration Manager Team Blog

    Forefront Endpoint Protection 2010 Group Policy Tool is unable to import policy files exported from System Center 2012 Endpoint Protection

    • 0 Comments

    Symptoms:

    When you use the Forefront Endpoint Protection (FEP) 2010 Group Policy Tool to import a policy file that was exported from System Center 2012 Endpoint Protection, it will fail with a screenshot similar to the following:

    Cause:

    The XML namespace is missing and a couple of registry value types have changed in System Center 2012 Endpoint Protection, which results in the error.

    Resolution:

    1. Perform the following changes manually
      • Add "xmlns="http://forefront.microsoft.com/FEP/2010/01/PolicyData"" in the "SecurityPolicy" section of the policy file.
      • Open the policy file, in the “AddKey Name="SOFTWARE\Policies\Microsoft\Microsoft Antimalware\Signature Updates"” section, replace “FallbackOrder” type “REG_DWORD” with “REG_SZ”.
      • Open the policy file, in the “AddKey Name="SOFTWARE\Policies\Microsoft\Microsoft Antimalware\Signature Updates"” section, replace “DefinitionUpdateFileSharesSources” type “REG_DWORD” with “REG_SZ”.
    2. Automate the changes by using the script in the Script section

      You can use the script in the Script section to make the changes to the policy file. You can also write a Java script tool to automate the script. For example, you can name the script in the Script section FepGPFileCorrector.js, and then use a command such as the following:

      cscript.exe FepGPFileCorrector.js <originpolicyfile>.xml

      Where, originpolicyfile is the exported System Center 2012 Endpoint Protection policy file. Currently, the following is supported:

      • Full path of local xml file. For example, c:\test\output.xml
      • Full path of network share file. For example, \\atc-dist-01\test\output.xml
      • File located under the folder that script tool is running.

      The target/output policy file is named Converted-<originpolicyfile>.xml.

    References:

    The Forefront Endpoint Protection Group Policy Tool is used to convert policy settings contained in configured FEP policies to the format that is used by Group Policy. This tool can be obtained from the Microsoft Download Center (http://go.microsoft.com/fwlink/?LinkId=207729) as part of the FEP 2010 Group Policy Tools download package.

    System Center 2012 Endpoint Protection provides several default policy template files that you can find in subfolder AdminConsole\XmlStorage\EPTemplates of site server installation directory. You can import the policy template files by using FEP 2010 Forefront Endpoint Protection Group Policy Tool by default.

    Script:

    @set @debug = false
    
    
    
    //******************************************************************************
    
    //
    
    // Constants
    
    //
    
    //******************************************************************************
    
    var c_sSecurityPolicy = "SecurityPolicy";
    
    var c_sPolicySection = "PolicySection";
    
    var c_sLocalGroupPolicySettings = "LocalGroupPolicySettings";
    
    var c_sXmlns = "xmlns";
    
    var c_sNameSpace = "http://forefront.microsoft.com/FEP/2010/01/PolicyData";
    
    var c_sAddKey = "AddKey";
    
    var c_sAddValue = "AddValue";
    
    var c_sName = "Name";
    
    var c_sType = "Type";
    
    var c_sDisabled = "Disabled";
    
    var c_sFallbackOrder = "FallbackOrder";
    
    var c_sDefinitionUpdateFileShareSources = "DefinitionUpdateFileSharesSources";
    
    var c_sDWord = "REG_DWORD";
    
    var c_sSZ = "REG_SZ";
    
    
    
    var c_sHelp = "cscript.exe FepGPFileCorrector.js <originpolicyfile> \r\n"
    
                    + "\r\n"
    
                    + "originpolicyfile Original exported SCEp2012 policy file.\r\n"
    
    
    
    //******************************************************************************
    
    //
    
    // Globals
    
    //
    
    //******************************************************************************
    
    var g_fso = null;                 // Scripting.FileSystemObject
    
    var g_xmlSource = null;           // Source XML document
    
    var g_xmlTarget = null;           // Target XML document
    
    var g_shell = null;
    
    var g_environment = null;
    
    var g_sScriptDir = null;          // cscript.exe running directory
    
    var g_sOriginPolicyFile = null;   // Original FEP2012 exported policy file
    
    var g_sOriginFileName = null;   // Original FEP2012 exported policy file name
    
    var g_sOriginPolicyPath = null;   // The directory hosting original FEP2012 exported policy file
    
    
    
    //******************************************************************************
    
    //
    
    // GetAttribute
    
    //
    
    //******************************************************************************
    
    
    
    function GetAttribute(oNode, sAttrib, bAllowNull) 
    
    {
    
        var attrib = oNode.attributes.getNamedItem(sAttrib);
    
    
    
        if (attrib != null) 
    
        {
    
            return attrib.text;
    
        }
    
        else if (bAllowNull) 
    
        {
    
            return null;
    
        }
    
    
    
        return null;
    
    }
    
    
    
    // Validate script host version
    
    if (Number(WScript.Version) < 5.6) 
    
    {
    
        WScript.Echo(
    
                    "This script requires Windows Script Host v5.6 or later. "
    
                    + "Go to http://www.microsoft.com/scripting for download"
    
                    );
    
        WScript.Quit(1);
    
    }
    
    
    
    if (WScript.FullName.toLowerCase().indexOf("cscript.exe") < 0) 
    
    {
    
        WScript.Echo(
    
                    "This script can only be executed with Cscript."
    
                    );
    
        WScript.Quit(1);
    
    }
    
    
    
    if ((WScript.Arguments.length < 1) || (WScript.Arguments(0) == "/?")) 
    
    {
    
        WScript.Echo(c_sHelp);
    
        WScript.Quit(1);
    
    }
    
    
    
    // Initialize
    
    g_fso = new ActiveXObject("Scripting.FileSystemObject");
    
    g_shell = new ActiveXObject("WScript.Shell");
    
    
    
    g_environment = g_shell.Environment("Process");
    
    g_sScriptDir = g_fso.GetParentFolderName(WScript.ScriptFullName);
    
    g_sOriginPolicyFile = String(WScript.Arguments(0));
    
    
    
    // If g_sOriginPolicyFile has not path
    
    if ((g_sOriginPolicyFile.indexOf(":") > 0) && (g_sOriginPolicyFile.charAt(0) != ".")) 
    
    {
    
        g_sOriginPolicyPath = g_sOriginPolicyFile.substr(0, g_sOriginPolicyFile.lastIndexOf("\\"));
    
        g_sOriginFileName = g_sOriginPolicyFile.substr(g_sOriginPolicyFile.lastIndexOf("\\") + 1);
    
    }
    
    else if ((g_sOriginPolicyFile.charAt(0) == "\\") && (g_sOriginPolicyFile.charAt(1) == "\\")) 
    
    {
    
        g_sOriginPolicyPath = g_sOriginPolicyFile.substr(0, g_sOriginPolicyFile.lastIndexOf("\\"));
    
        g_sOriginFileName = g_sOriginPolicyFile.substr(g_sOriginPolicyFile.lastIndexOf("\\") + 1);
    
    }
    
    else 
    
    {
    
        g_sOriginPolicyPath = g_sScriptDir;
    
        g_sOriginFileName = g_sOriginPolicyFile;
    
    }
    
    
    
    if (!g_fso.FileExists(g_sOriginPolicyFile)) 
    
    {
    
        WScript.Echo("XML file " + g_sOriginPolicyFile + " does not exist!");
    
        throw new Error(1, "The XML file does not exist!");
    
    }
    
    
    
    //var oFile = g_fso.GetFile(g_sOriginPolicyFile);
    
    //oFile.Attributes = oFile.Attributes & (~1);
    
    
    
    g_xmlSource = new ActiveXObject("MSXML2.DOMDocument.6.0");
    
    
    
    // Load original SCEP2012 exported policy file
    
    if (!g_xmlSource.load(g_sOriginPolicyFile))
    
    {
    
        var pe = g_xmlSource.parseError;
    
    
    
        INFO(
    
            "XML load failed:\n"
    
            + " Location: " + pe.line + ", " + pe.linepos + "\n"
    
            + " Source: " + pe.srcText + "\n"
    
            + " Reason: " + pe.reason + "\n"
    
            );
    
    
    
        throw new Error(-1, "Policy file is invalid.");
    
    }
    
    
    
    var oSrcSecurityPolicyNode;
    
    //var oRootNodes = g_xmlSource.documentElement.selectNodes(c_sSecurityPolicy);
    
    var oRootNodes = g_xmlSource.childNodes;
    
    
    
    if (!g_xmlSource.hasChildNodes()) 
    
    {
    
        WScript.Echo("XML file " + g_sOriginPolicyFile + " might not need to process, exit directly.");
    
        WScript.Quit(1);
    
    }
    
    
    
    for (var iIndex = 0; iIndex < oRootNodes.length; iIndex++) 
    
    {
    
        if (oRootNodes[iIndex].nodeName == c_sSecurityPolicy) 
    
        {
    
            oSrcSecurityPolicyNode = oRootNodes[iIndex];
    
    
    
            if (oSrcSecurityPolicyNode != null) 
    
            {
    
                if (oSrcSecurityPolicyNode.attributes.getNamedItem(c_sXmlns) != null) 
    
                {
    
                    WScript.Echo("XML file " + g_sOriginPolicyFile + " might not need to process, exit directly.");
    
                    WScript.Quit(1); 
    
                }
    
            }
    
    
    
            break;
    
        }
    
    }
    
    
    
    g_xmlTarget = new ActiveXObject("MSXML2.DOMDocument.6.0");
    
    
    
    var sTargetXmlFile = g_sOriginPolicyPath + "\\Converted-" + g_sOriginFileName;
    
    
    
    if (g_fso.FileExists(sTargetXmlFile)) 
    
    {
    
        var oFile = g_fso.GetFile(sTargetXmlFile);
    
        oFile.Attributes = oFile.Attributes & (~1);
    
    
    
        g_fso.DeleteFile(sTargetXmlFile);
    
    }
    
    WScript.Echo("The target converted policy file: " + sTargetXmlFile);
    
    
    
    var oSrcAddKeyNodes;
    
    var oSrcAddValueNodes;
    
    var sNameAttribute;
    
    var sTypeAttribute;
    
    var sDisabledAttribute;
    
    var sNodeValue;
    
    
    
    var oTargetAddKeyNode;
    
    var oTargetAddValueNode;
    
    var oAttributes;
    
    
    
    // Check "SecurityPolicy" node in source XML
    
    if (oSrcSecurityPolicyNode != null) 
    
    {
    
        // Create "SecurityPolicy" node for target XML
    
        var oTargetSecurityPolicyNode = g_xmlTarget.createNode(1, c_sSecurityPolicy, c_sNameSpace);
    
        
    
        // Add attributes under "SecurityPolicy" child node to target node 
    
        oAttributes = oSrcSecurityPolicyNode.attributes;
    
        for (var index = 0; index < oAttributes.length; index++) 
    
        {
    
            if (oAttributes.item(index).name != c_sXmlns) 
    
            {
    
                oTargetSecurityPolicyNode.setAttribute(oAttributes.item(index).name, oAttributes.item(index).nodeValue);
    
            }
    
        }
    
    
    
        // Check "PolicySection" child node in source XML
    
        var oSrcPolicySectionNode = oSrcSecurityPolicyNode.selectSingleNode(c_sPolicySection);
    
        if (oSrcPolicySectionNode != null) 
    
        {
    
            // Create "PolicySection" node for target XML
    
            var oTargetPolicySectionNode = g_xmlTarget.createNode(1, c_sPolicySection, c_sNameSpace);
    
    
    
            // Add attributes under "PolicySection" child node to target node 
    
            oAttributes = oSrcPolicySectionNode.attributes;
    
            for (var index = 0; index < oAttributes.length; index++) 
    
            {
    
                oTargetPolicySectionNode.setAttribute(oAttributes.item(index).name, oAttributes.item(index).nodeValue);
    
            }
    
    
    
            // Check "LocalGroupPolicySettings" child node
    
            var oSrcLocalGroupPolicySettingsNode = oSrcPolicySectionNode.selectSingleNode(c_sLocalGroupPolicySettings);
    
            if (oSrcLocalGroupPolicySettingsNode != null) 
    
            {
    
                // Create "LocalGroupPolicySettings" node for target XML
    
                var oTargetLocalGroupPolicySettingsNode = g_xmlTarget.createNode(1, c_sLocalGroupPolicySettings, c_sNameSpace);
    
    
    
                oSrcAddKeyNodes = oSrcLocalGroupPolicySettingsNode.selectNodes(c_sAddKey);
    
                for (var iKeyIndex = 0; iKeyIndex < oSrcAddKeyNodes.length; iKeyIndex++) 
    
                {
    
                    // Create one "AddKey" node for target XML
    
                    oTargetAddKeyNode = g_xmlTarget.createNode(1, c_sAddKey, c_sNameSpace);
    
    
    
                    // Add attributes under "AddKey" child node to target node 
    
                    oAttributes = oSrcAddKeyNodes[iKeyIndex].attributes;
    
                    for (var index = 0; index < oAttributes.length; index++) 
    
                    {
    
                        oTargetAddKeyNode.setAttribute(oAttributes.item(index).name, oAttributes.item(index).nodeValue);
    
                    }
    
    
    
                    oSrcAddValueNodes = oSrcAddKeyNodes[iKeyIndex].selectNodes(c_sAddValue);
    
                    for (var iValueIndex = 0; iValueIndex < oSrcAddValueNodes.length; iValueIndex++) 
    
                    {
    
                        // Create "AddValue" node
    
                        oTargetAddValueNode = g_xmlTarget.createNode(1, c_sAddValue, c_sNameSpace);
    
    
    
                        // Add attributes under "AddValue" child node to target node 
    
                        sNameAttribute = GetAttribute(oSrcAddValueNodes[iValueIndex], c_sName);
    
                        oTargetAddValueNode.setAttribute(c_sName, sNameAttribute);
    
    
    
                        sTypeAttribute = GetAttribute(oSrcAddValueNodes[iValueIndex], c_sType);
    
                        
    
                        if (sNameAttribute == c_sFallbackOrder) 
    
                        {
    
                            if (sTypeAttribute == c_sDWord) 
    
                            {
    
                                oTargetAddValueNode.setAttribute(c_sType, c_sSZ);
    
                            }
    
                            else 
    
                            {
    
                                oTargetAddValueNode.setAttribute(c_sType, sTypeAttribute);
    
                            }
    
                        }
    
                        else if (sNameAttribute == c_sDefinitionUpdateFileShareSources) 
    
                        {
    
                            if (sTypeAttribute == c_sDWord) 
    
                            {
    
                                oTargetAddValueNode.setAttribute(c_sType, c_sSZ);
    
                            }
    
                            else 
    
                            {
    
                                oTargetAddValueNode.setAttribute(c_sType, sTypeAttribute);
    
                            }
    
                        }
    
                        else 
    
                        {
    
                            oTargetAddValueNode.setAttribute(c_sType, sTypeAttribute);
    
                        }
    
    
    
                        if (oSrcAddValueNodes[iValueIndex].attributes.getNamedItem(c_sDisabled) != null) 
    
                        {
    
                            sDisabledAttribute = GetAttribute(oSrcAddValueNodes[iValueIndex], c_sDisabled);
    
                            oTargetAddValueNode.setAttribute(c_sDisabled, sDisabledAttribute);
    
                        }
    
                        
    
                        sNodeValue = oSrcAddValueNodes[iValueIndex].text;
    
    
    
                        oTargetNodeValue = g_xmlTarget.createTextNode(sNodeValue);
    
                        oTargetAddValueNode.appendChild(oTargetNodeValue);
    
    
    
                        // Append "AddValue" child node under current "AddKey" node
    
                        oTargetAddKeyNode.appendChild(oTargetAddValueNode);
    
                    }
    
                     
    
                    // Append "AddKey" child node under "LocalGroupPolicySettings" node
    
                    oTargetLocalGroupPolicySettingsNode.appendChild(oTargetAddKeyNode);
    
                }
    
    
    
                // Append "LocalGroupPolicySettings" child node under "PolicySection" node
    
                oTargetPolicySectionNode.appendChild(oTargetLocalGroupPolicySettingsNode);
    
            }
    
    
    
            // Append "PolicySection" child node under "SecurityPolicy" node
    
            oTargetSecurityPolicyNode.appendChild(oTargetPolicySectionNode);
    
        }
    
    
    
        // Append "SecurityPolicy" node
    
        g_xmlTarget.appendChild(oTargetSecurityPolicyNode);
    
        g_xmlTarget.save(sTargetXmlFile);
    
    }
    

    --Weitao Wang

    This posting is provided "AS IS" with no warranties, and confers no rights.
Page 1 of 1 (2 items)