﻿<?xml version="1.0" encoding="utf-8"?>
<ScriptExport xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.kaseya.com/vsa/2008/12/Scripting">
  <Procedure name="Clean/Cycle Endpoint Service" treePres="3" id="972347612" folderId="151304008276809" treeFullPath="myProcedures - kadmin.myProcedures - philip.garibaldi">
    <Body description="The following AP cycles the Endpoint Service. Wrriten by Gonzalo Carrillo">
      <Statement name="GetVariable" continueOnFail="false">
        <Parameter xsi:type="EnumParameter" name="VariableType" value="AgentInstallDirectory" />
        <Parameter xsi:type="StringParameter" name="SourceContent" value="" />
        <Parameter xsi:type="StringParameter" name="VariableName" value="agentDir" />
      </Statement>
      <If description="">
        <Condition name="Windows 32 or 64 Bit Check">
          <Parameter xsi:type="EnumParameter" name="Condition" value="Exists" />
        </Condition>
        <Then>
          <If description="">
            <Condition name="CheckRegistryValue64">
              <Parameter xsi:type="StringParameter" name="RegistryPath" value="HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Kaseya\Agent\DriverControl" />
              <Parameter xsi:type="EnumParameter" name="Condition" value="Exists" />
              <Parameter xsi:type="StringParameter" name="Value" value="" />
            </Condition>
            <Then>
              <Statement name="GetVariable" continueOnFail="false">
                <Parameter xsi:type="EnumParameter" name="VariableType" value="RegistryValue64" />
                <Parameter xsi:type="StringParameter" name="SourceContent" value="HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Kaseya\Agent\DriverControl" />
                <Parameter xsi:type="StringParameter" name="VariableName" value="serviceName64" />
              </Statement>
              <If description="">
                <Condition name="ServiceIsRunning">
                  <Parameter xsi:type="StringParameter" name="ServiceName" value="KAEND#serviceName64#" />
                </Condition>
                <Then>
                  <Statement name="WriteScriptLogEntry" continueOnFail="false">
                    <Parameter xsi:type="StringParameter" name="Comment" value="Service is already running. Cycling Service" />
                  </Statement>
                  <Statement name="Stop Windows Service" continueOnFail="false">
                    <Parameter xsi:type="StringParameter" name="Parameter1" value="KAEND#serviceName64#" />
                  </Statement>
                  <If description="">
                    <Condition name="ServiceIsRunning">
                      <Parameter xsi:type="StringParameter" name="ServiceName" value="KAEND#serviceName64#" />
                    </Condition>
                    <Then>
                      <Statement name="WriteScriptLogEntry" continueOnFail="false">
                        <Parameter xsi:type="StringParameter" name="Comment" value="Service did not properly stop. Please investigate." />
                      </Statement>
                    </Then>
                    <Else>
                      <Statement name="Delete Directory" continueOnFail="false">
                        <Parameter xsi:type="StringParameter" name="Parameter1" value="C:\ProgramData\Kaseya\Data\Endpoint\Instance_#serviceName64#" />
                        <Parameter xsi:type="StringParameter" name="Parameter2" value="true" />
                      </Statement>
                      <Statement name="Delete Directory" continueOnFail="false">
                        <Parameter xsi:type="StringParameter" name="Parameter1" value="#agentDir#\database" />
                        <Parameter xsi:type="StringParameter" name="Parameter2" value="true" />
                      </Statement>
                      <Statement name="Start Windows Service" continueOnFail="false">
                        <Parameter xsi:type="StringParameter" name="Parameter1" value="KAEND#serviceName64#" />
                        <Parameter xsi:type="StringParameter" name="Parameter2" value="False" />
                      </Statement>
                      <If description="">
                        <Condition name="ServiceIsRunning">
                          <Parameter xsi:type="StringParameter" name="ServiceName" value="KAEND#serviceName64#" />
                        </Condition>
                        <Then>
                          <Statement name="WriteScriptLogEntry" continueOnFail="false">
                            <Parameter xsi:type="StringParameter" name="Comment" value="Service successfully cycled." />
                          </Statement>
                        </Then>
                        <Else>
                          <Statement name="WriteScriptLogEntry" continueOnFail="false">
                            <Parameter xsi:type="StringParameter" name="Comment" value="Service did not properly start. Please investigate." />
                          </Statement>
                        </Else>
                      </If>
                    </Else>
                  </If>
                </Then>
                <Else>
                  <Statement name="WriteScriptLogEntry" continueOnFail="false">
                    <Parameter xsi:type="StringParameter" name="Comment" value="Service is not running." />
                  </Statement>
                  <Statement name="Delete Directory" continueOnFail="false">
                    <Parameter xsi:type="StringParameter" name="Parameter1" value="C:\ProgramData\Kaseya\Data\Endpoint\Instance_#serviceName64#" />
                    <Parameter xsi:type="StringParameter" name="Parameter2" value="true" />
                  </Statement>
                  <Statement name="Start Windows Service" continueOnFail="false">
                    <Parameter xsi:type="StringParameter" name="Parameter1" value="KAEND#serviceName64#" />
                    <Parameter xsi:type="StringParameter" name="Parameter2" value="True" />
                  </Statement>
                  <If description="">
                    <Condition name="ServiceIsRunning">
                      <Parameter xsi:type="StringParameter" name="ServiceName" value="KAEND#serviceName64#" />
                    </Condition>
                    <Then>
                      <Statement name="WriteScriptLogEntry" continueOnFail="false">
                        <Parameter xsi:type="StringParameter" name="Comment" value="Service successfully started." />
                      </Statement>
                    </Then>
                    <Else>
                      <Statement name="WriteScriptLogEntry" continueOnFail="false">
                        <Parameter xsi:type="StringParameter" name="Comment" value="Service did not properly start. Please investigate." />
                      </Statement>
                    </Else>
                  </If>
                </Else>
              </If>
            </Then>
            <Else>
              <Statement name="WriteScriptLogEntry" continueOnFail="false">
                <Parameter xsi:type="StringParameter" name="Comment" value="Registry Value Does Not Exist." />
              </Statement>
            </Else>
          </If>
        </Then>
        <Else>
          <If description="">
            <Condition name="CheckRegistryValue">
              <Parameter xsi:type="StringParameter" name="RegistryPath" value="HKEY_LOCAL_MACHINE\SOFTWARE\Kaseya\Agent\DriverControl" />
              <Parameter xsi:type="EnumParameter" name="Condition" value="Exists" />
              <Parameter xsi:type="StringParameter" name="Value" value="" />
            </Condition>
            <Then>
              <Statement name="GetVariable" continueOnFail="false">
                <Parameter xsi:type="EnumParameter" name="VariableType" value="RegistryValue" />
                <Parameter xsi:type="StringParameter" name="SourceContent" value="HKEY_LOCAL_MACHINE\SOFTWARE\Kaseya\Agent\DriverControl" />
                <Parameter xsi:type="StringParameter" name="VariableName" value="servicename32" />
              </Statement>
              <If description="">
                <Condition name="ServiceIsRunning">
                  <Parameter xsi:type="StringParameter" name="ServiceName" value="KAEND#serviceName32#" />
                </Condition>
                <Then>
                  <Statement name="WriteScriptLogEntry" continueOnFail="false">
                    <Parameter xsi:type="StringParameter" name="Comment" value="Service is already running. Cycling Service" />
                  </Statement>
                  <Statement name="Stop Windows Service" continueOnFail="false">
                    <Parameter xsi:type="StringParameter" name="Parameter1" value="KAEND#serviceName32#" />
                  </Statement>
                  <If description="">
                    <Condition name="ServiceIsRunning">
                      <Parameter xsi:type="StringParameter" name="ServiceName" value="KAEND#serviceName32#" />
                    </Condition>
                    <Then>
                      <Statement name="WriteScriptLogEntry" continueOnFail="false">
                        <Parameter xsi:type="StringParameter" name="Comment" value="Service did not properly stop. Please investigate." />
                      </Statement>
                    </Then>
                    <Else>
                      <Statement name="Delete Directory" continueOnFail="false">
                        <Parameter xsi:type="StringParameter" name="Parameter1" value="C:\ProgramData\Kaseya\Data\Endpoint\Instance_#serviceName32#" />
                        <Parameter xsi:type="StringParameter" name="Parameter2" value="true" />
                      </Statement>
                      <Statement name="Delete Directory" continueOnFail="false">
                        <Parameter xsi:type="StringParameter" name="Parameter1" value="#agentDir#\database" />
                        <Parameter xsi:type="StringParameter" name="Parameter2" value="true" />
                      </Statement>
                      <Statement name="Start Windows Service" continueOnFail="false">
                        <Parameter xsi:type="StringParameter" name="Parameter1" value="KAEND#serviceName32#" />
                        <Parameter xsi:type="StringParameter" name="Parameter2" value="False" />
                      </Statement>
                      <If description="">
                        <Condition name="ServiceIsRunning">
                          <Parameter xsi:type="StringParameter" name="ServiceName" value="KAEND#serviceName32#" />
                        </Condition>
                        <Then>
                          <Statement name="WriteScriptLogEntry" continueOnFail="false">
                            <Parameter xsi:type="StringParameter" name="Comment" value="Service successfully cycled." />
                          </Statement>
                        </Then>
                        <Else>
                          <Statement name="WriteScriptLogEntry" continueOnFail="false">
                            <Parameter xsi:type="StringParameter" name="Comment" value="Service did not properly start. Please investigate." />
                          </Statement>
                        </Else>
                      </If>
                    </Else>
                  </If>
                </Then>
                <Else>
                  <Statement name="WriteScriptLogEntry" continueOnFail="false">
                    <Parameter xsi:type="StringParameter" name="Comment" value="Service is not running." />
                  </Statement>
                  <Statement name="Delete Directory" continueOnFail="false">
                    <Parameter xsi:type="StringParameter" name="Parameter1" value="C:\ProgramData\Kaseya\Data\Endpoint\Instance_#serviceName32#" />
                    <Parameter xsi:type="StringParameter" name="Parameter2" value="true" />
                  </Statement>
                  <Statement name="Start Windows Service" continueOnFail="false">
                    <Parameter xsi:type="StringParameter" name="Parameter1" value="KAEND#serviceName32#" />
                    <Parameter xsi:type="StringParameter" name="Parameter2" value="True" />
                  </Statement>
                  <If description="">
                    <Condition name="ServiceIsRunning">
                      <Parameter xsi:type="StringParameter" name="ServiceName" value="KAEND#serviceName32#" />
                    </Condition>
                    <Then>
                      <Statement name="WriteScriptLogEntry" continueOnFail="false">
                        <Parameter xsi:type="StringParameter" name="Comment" value="Service successfully started." />
                      </Statement>
                    </Then>
                    <Else>
                      <Statement name="WriteScriptLogEntry" continueOnFail="false">
                        <Parameter xsi:type="StringParameter" name="Comment" value="Service did not properly start. Please investigate." />
                      </Statement>
                    </Else>
                  </If>
                </Else>
              </If>
            </Then>
            <Else>
              <Statement name="WriteScriptLogEntry" continueOnFail="false">
                <Parameter xsi:type="StringParameter" name="Comment" value="Registry Value Does Not Exist." />
              </Statement>
            </Else>
          </If>
        </Else>
      </If>
    </Body>
  </Procedure>
</ScriptExport>