Agent - AD INT ENABLE

SCOM.Management.EnableADIntegration.Task (Task)

Element properties:

TargetSCOM.Management.Agent.Class
AccessibilityPublic
CategoryCustom
EnabledTrue
RemotableFalse
Timeout120

Member Modules:

ID Module Type TypeId RunAs 
PSWA WriteAction Microsoft.Windows.PowerShellWriteAction Default

Source Code:

<Task ID="SCOM.Management.EnableADIntegration.Task" Accessibility="Public" Enabled="true" Target="SCOM.Management.Agent.Class" Timeout="120" Remotable="true">
<Category>Custom</Category>
<WriteAction ID="PSWA" TypeID="Windows!Microsoft.Windows.PowerShellWriteAction">
<ScriptName>SCOM.Management.EnableADIntegration.Task.ps1</ScriptName>
<ScriptBody><Script>
#=================================================================================
# Script to enable AD integration
#=================================================================================

#=================================================================================
# Constants section - modify stuff here:

# Assign script name variable for use in event logging
$ScriptName = "SCOM.Management.EnableADIntegration.Task.ps1"
#=================================================================================

# Gather who the script is running as
$whoami = whoami

#Load the MOMScript API and discovery propertybag
$momapi = New-Object -comObject "Mom.ScriptAPI"

#Log script event that we are starting task
$momapi.LogScriptEvent($ScriptName,1321,0, "Starting script. Running as ($whoami)")

# Begin Main Script
#=================================================================================
Write-Host "Task Starting. Running as $whoami"
#Load agent scripting object
Write-Host "Loading agent scripting objects."
$AgentCfg = New-Object -ComObject AgentConfigManager.MgmtSvcCfg
#Enable AD integration
Write-Host "Enabling AD Integration"
$AgentCfg.EnableActiveDirectoryIntegration()
#Restart Agent
Write-Host "AD Integration Enabled."
Write-Host "Restarting Agent now."
#=================================================================================
# End Main Script

# Restart Agent
#=================================================================================
#We need a reliable way to restart the SCOM Agent out of band so that tasks can complete with success
$Command = "Start-Sleep -s 5;Restart-Service HealthService"
$Process = ([wmiclass]"root\cimv2:Win32_ProcessStartup").CreateInstance()
$Process.ShowWindow = 0
$Process.CreateFlags = 16777216
([wmiclass]"root\cimv2:Win32_Process").Create("powershell.exe $Command")|Out-Null
#=================================================================================
</Script></ScriptBody>
<Parameters/>
<TimeoutSeconds>120</TimeoutSeconds>
</WriteAction>
</Task>