Wednesday, May 21, 2014

SQL and SECP 2012

Is your 2012 site system showing faults (errors) in the Resource Explorer with SQL installed and SCEP 2012 enabled?

Do you have a SQL 2012 Exemption for the process.  You might not have a predefined process:

First Select the Endpiont Protection SQL 2008 and click copy
 

I name mine Endpiont Protection SQL 2012. 
 
Edit the Exclusion Settings in your new Policy
You will need to make sure you modify all the appropriate paths for SQL 2012:


 
Also, make sure if you have an Instance name that you add that to the path for SQL. 
Note the addtion of :
 
%Program Files%\Microsoft SQL Server\MSSQL11.CONFIGMGRSEC\MSSQL\Binn\SQLServr.exe
 
This is to ensure all Secondary servers are not affected. 
 
This should be similar to your ConfigMgr 2007 exclusions as well as the SQL 2008 exclusions already contained in ConfigMgr 2012.
 
 

Sunday, May 4, 2014

Problems installing WSUS for Server 2012

When you install WSUS for Server 2012 you are prompted to do a "post Install" proceedure.

If this fails you are left scratching your head.  Many times the temp file isn't much help

I could look like the following:

Postinstall started
Detected role services: Api, Database, UI, Services2014-04-15 14:47:05  Start: LoadSettingsFromXml 2014-04-15 14:47:05  Start: GetConfigValue with filename=UpdateServices-Services.xml item=ContentLocal
Value is true
End: GetConfigValue
Start: GetConfigValue with filename=UpdateServices-Services.xml item=ContentDirectory
Config file did not contain a value "ContentDirectory"
Microsoft.UpdateServices.Administration.CommandException: A required configuration value was not found in the system. This is usually caused by installing WSUS through PowerShell and not specifying a configuration file. Review the article Managing WSUS Using PowerShell at TechNet Library (http://go.microsoft.com/fwlink/?LinkId=235499) for more information on the recommended steps to perform WSUS installation using PowerShell.   at Microsoft.UpdateServices.Administration.PostInstall.GetConfigValue(String filename, String item) at Microsoft.UpdateServices.Administration.PostInstall.LoadSettingsFromXml()  at Microsoft.UpdateServices.Administration.PostInstall.Initalize(Parameters parameters)  at Microsoft.UpdateServices.Administration.PostInstall.Execute(String[] arguments)
Fatal Error: A required configuration value was not found in the system. This is usually caused by installing WSUS through PowerShell and not specifying a configuration file. Review the article Managing WSUS Using PowerShell at TechNet Library (http://go.microsoft.com/fwlink/?LinkId=235499) for more information on the recommended steps to perform WSUS installation using PowerShell.

Start by looking at the UpdateServices-Services.xml located:
C:\Windows\System32\ServerManager\ComponentConfiguration
This file controls where the content for WSUS is located
I might look like this:

<?xml version="1.0" encoding="utf-16"?><INSTANCE CLASSNAME="ServerComponent_UpdateServices_Services"><PROPERTY NAME="ContentDirectory" TYPE="string"></PROPERTY><PROPERTY NAME="ContentLocal" TYPE="boolean"><VALUE>true</VALUE></PROPERTY></INSTANCE>

The problem is that when you activeated the post install phase, this file was not properly updated by the WSUS installer. 

<?xml version="1.0" encoding="utf-16"?><INSTANCE CLASSNAME="ServerComponent_UpdateServices_Services">
<PROPERTY NAME="ContentDirectory" TYPE="string"><VALUE>D:\WSUS</VALUE></PROPERTY>
<PROPERTY NAME="ContentLocal" TYPE="boolean"><VALUE>true</VALUE>
</PROPERTY></INSTANCE>


Once we fix it we run the post install again but we see a different error

Still it didn’t have an instance, oops..
Postinstall started
Detected role services: Api, Database, UI, Services
Start: LoadSettingsFromXml
Start: GetConfigValue with filename=UpdateServices-Services.xml item=ContentLocal
Value is true
End: GetConfigValue
Start: GetConfigValue with filename=UpdateServices-Services.xml item=ContentDirectory
Value is D:\WSUS
End: GetConfigValue
Content directory is D:\WSUS
Start: GetConfigValue with filename=UpdateServices-DB.xml item=InstanceName
Config file did not contain a value "InstanceName"
Microsoft.UpdateServices.Administration.CommandException: A required configuration value was not found in the system. This is usually caused by installing WSUS through PowerShell and not specifying a configuration file. Review the article Managing WSUS Using PowerShell at TechNet Library (http://go.microsoft.com/fwlink/?LinkId=235499) for more information on the recommended steps to perform WSUS installation using PowerShell.
   at Microsoft.UpdateServices.Administration.PostInstall.GetConfigValue(String filename, String item)
   at Microsoft.UpdateServices.Administration.PostInstall.LoadSettingsFromXml()
   at Microsoft.UpdateServices.Administration.PostInstall.Initalize(Parameters parameters)
   at Microsoft.UpdateServices.Administration.PostInstall.Execute(String[] arguments)
Fatal Error: A required configuration value was not found in the system. This is usually caused by installing WSUS through PowerShell and not specifying a configuration file. Review the article Managing WSUS Using PowerShell at TechNet Library (http://go.microsoft.com/fwlink/?LinkId=235499) for more information on the recommended steps to perform WSUS installation using PowerShell.

We can see that from the log it can't find the instance for WSUS.  In this example we are using SQL express and not the Internal Database so back we go to addd the instance in.

C:\Windows\System32\ServerManager\ComponentConfiguration
Open the updateServices-DB.xml


<?xml version="1.0" encoding="utf-16"?><INSTANCE CLASSNAME="ServerComponent_UpdateServices_Database"><PROPERTY NAME="InstanceName" TYPE="string"></PROPERTY></INSTANCE>
Add the instance to the file.  Here we will use the default instance for SCCM, ConfigMrgSec

<?xml version="1.0" encoding="utf-16"?><INSTANCE CLASSNAME="ServerComponent_UpdateServices_Database"><PROPERTY NAME="InstanceName" TYPE="string"><VALUE>ServerName\CONFIGMGRSEC</VALUE>
</PROPERTY></INSTANCE>

FINALLY IT IS ALL DONE!

This will stay in the file for future use. 

You can also try to do the command manually from the command prompt.  The only problem is that the .XML files aren't updated.

C:\Program Files\Update Services\Tools

wsusutil.exe postinstall SQL_INSTANCE_NAME="SERVERName\ConfigMgrSec" CONTENT_DIR=D:\WSUS
Now you should be up and running.

Note:After you perform an inplace upgrade to a 2012 Server to R2 you must perform this procedure again or you SUPs will not Sync