login vsi company logo login vsi company logo 250x40
header-02.jpg
  • Home
  • Blog
  • Login AM
  • SCCM Control Component - Prevent Interference with Login AM 2012

SCCM Control Component - Prevent Interference with Login AM 2012

SCCM Control Component - Prevent Interference with Login AM 2012

If you are, out of business reasons, in the situation that your servers can not completely be managed by Login AM or you need to share your maintenance window with, for example SCCM, then you need to be sure that none of these deployment solutions interfere with each other. 

For this situation we developed a component that takes care of the SCCM 2007 Agent.

To be able to deploy and maintain clients with Login AM, without having problems with the SCCM Agent, a custom component with the goal to control the SCCM Agent has been developed. This blog describes the SCCM Control Component.

This custom component is placed under the Solution 4 Component.

custom component for controling the sccm agent

Custom component for controling the SCCM Agent

The component has a System ActionSet with two phases:

system actionset

System ActionSet

System - StartUpBegin

This phase is started after every reboot of the Login AM Client. It contains two tasks.

system startupbegin sccm copy

System StartIpBegin - SCCM copy

First task is the SCCM-Copy.ps1 script – it copies all necessary files like the SCCM-automation.dll from the S4_Sources folder to the %S4_Files%\Framework\SCCM folder on the client.

The second task is the SCCM-Client-disable.ps1 script that is responsible for disabling the SCCM service if there are no deployments currently running, otherwise the script will wait until the SCCM Agent service is inactive.

System - StartUpEnd

This phase contains a custom action set that executes a script responsible for enabling the SCCM agent again. Script name is SCCM-Client-enable.ps1.

system startupend sccm client enable

System StartUpEnd - SCCM Client enable

Integration in component set Login AM

The custom component SCCM Control needs to be integrated in a component. As the scripts needs to run during deployment phase and every maintenance task, the best place to integrate it has been the Solution4 Base component set.

As the SCCM Client needs to be disabled before the Login AM Deployment starts it is necessary to change the startupBeginOrderNumber as shown in the screen shot below.

solution 4 sccm control

Solution 4 SCCM Control

Changes to standard Login AM framework

To be able to control the SCCM Agent also during Login AM Initialization we needed to change one small thing to the standard Login AM framework files.

The file that has been modified is Initialize-Solution4.ps1 and is located in the following folder:

%S4_Files%\Components\Solution4\Framework\Extensions\Framework\General

The section that has been modified is the section that builds the init script on the S4 client. The section is between row 116 and 123.

The change in this file is that if a file named pre-init.ps1 exists in the S4-Files location, this will be executed before the standard init.ps1 script is executed. In this case the pre-init.ps1 script does nearly the same as the SCCM-disable.ps1 script, it disables the SCCM Agent service.

#Create Init script
Set-Content -path "\\$ComputerName\admin$\Initialize-Solution4.ps1" 
-value "$s4_files\Init.ps1 -e $S4_EnvironmentID" | out-null
Add-Content -path "\\$ComputerName\admin$\Initialize-Solution4.ps1" 
-value "schtasks.exe /Delete /TN `"Solution4 Initialization`" /F"

After:

#Create Init script
If (Test-Path -Path "$S4_files\pre-init.ps1") {
	Set-Content -Path "\\$ComputerName\admin$\Initialize-Solution4.ps1" 
-value "$s4_files\Pre-Init.ps1" | out-null
	Add-Content -path "\\$ComputerName\admin$\Initialize-Solution4.ps1" 
-value "$s4_files\Init.ps1 -e $S4_EnvironmentID" | out-null
} Else {
	Set-Content -path "\\$ComputerName\admin$\Initialize-Solution4.ps1" 
-value "$s4_files\Init.ps1 -e $S4_EnvironmentID" | out-null
}
Add-Content -path "\\$ComputerName\admin$\Initialize-Solution4.ps1" 
-value "schtasks.exe /Delete /TN `"Solution4 Initialization`" /F"

This modification will probably move into the standard of future Login AM versions so that every customer has the possibility to execute necessary tasks before the initialization of Login AM.

The necessary scripts and the component itself can be found here and are provided “as is” without warranty.

About the author

Michael Eggebrecht is a Senior Consultant at our partner Login Consultants in Germany. Michael is enthusiastic about datacenter infrastructure design, implementation and automation with Microsoft and Citrix products. His strength is in software packaging and automating the deployment process.


Tags: How-to, Microsoft, Login AM

Start Delivering the Best End User Experience Today

Request a Demo

Login VSI, Inc.

3945 Freedom Circle
Suite 670
Santa Clara, CA 95054

Phone: +1 408 899 7418

Login VSI B.V.

De Entree 85
1101 BH Amsterdam
The Netherlands

Phone: +31 20 705 1200