﻿<?xml version="1.0" encoding="utf-8"?>
<ScExport 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="Rewst (Powershell)" treePres="3" id="527982352" folderId="602753396286983" treeFullPath="Rewst">
    <Body description="">
      <Statement name="GetVariable" continueOnFail="false">
        <Parameter xsi:type="EnumParameter" name="VariableType" value="Prompt" />
        <Parameter xsi:type="StringParameter" name="SourceContent" value="" />
        <Parameter xsi:type="StringParameter" name="VariableName" value="script_content" />
      </Statement>
      <Statement name="GetVariable" continueOnFail="false">
        <Parameter xsi:type="EnumParameter" name="VariableType" value="Prompt" />
        <Parameter xsi:type="StringParameter" name="SourceContent" value="" />
        <Parameter xsi:type="StringParameter" name="VariableName" value="results_webhook" />
      </Statement>
      <Statement name="GetVariable" continueOnFail="false" osType="Windows">
        <Parameter xsi:type="EnumParameter" name="VariableType" value="ConstantValue" />
        <Parameter xsi:type="StringParameter" name="SourceContent" value="WIN" />
        <Parameter xsi:type="StringParameter" name="VariableName" value="os" />
      </Statement>
      <If description="">
        <Condition name="CheckVariable">
          <Parameter xsi:type="StringParameter" name="VariableName" value="#script_content#" />
          <Parameter xsi:type="EnumParameter" name="Condition" value="BeginsWith" />
          <Parameter xsi:type="StringParameter" name="Value" value="https://engine.rewst.io/webhooks/custom/action/" />
        </Condition>
        <Then>
          <Statement name="GetVariable" continueOnFail="false" osType="Windows">
            <Parameter xsi:type="EnumParameter" name="VariableType" value="ConstantValue" />
            <Parameter xsi:type="StringParameter" name="SourceContent" value="&quot;%windir%\System32\WindowsPowerShell\v1.0\powershell.exe&quot; -noprofile -command &quot;&amp; {iex $([Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $post_url = '#results_webhook#'; irm &quot;#script_content#&quot;) }&quot;" />
            <Parameter xsi:type="StringParameter" name="VariableName" value="global:cmd" />
          </Statement>
        </Then>
        <Else>
          <Statement name="Execute Shell Command - Get Results to Variable" continueOnFail="false">
            <Parameter xsi:type="StringParameter" name="Parameter1" value="nslookup engine.rewst.io" />
            <Parameter xsi:type="StringParameter" name="Parameter2" value="False" />
            <Parameter xsi:type="StringParameter" name="Parameter3" value="System" />
          </Statement>
          <Statement name="GetVariable" continueOnFail="true" osType="Windows">
            <Parameter xsi:type="EnumParameter" name="VariableType" value="ConstantValue" />
            <Parameter xsi:type="StringParameter" name="SourceContent" value="@echo Script MUST originate from Rewst." />
            <Parameter xsi:type="StringParameter" name="VariableName" value="global:cmd" />
          </Statement>
          <Statement description="Writing to log that the script is not originating from rewst ." name="WriteScriptLogEntry" continueOnFail="true">
            <Parameter xsi:type="StringParameter" name="Comment" value="Execution of non-rewst script detected." />
          </Statement>
          <Statement name="WriteScriptLogEntry" continueOnFail="true">
            <Parameter xsi:type="StringParameter" name="Comment" value="#global:cmdresults#" />
          </Statement>
        </Else>
      </If>
      <If description="">
        <Condition name="CheckVariable">
          <Parameter xsi:type="StringParameter" name="VariableName" value="#os#" />
          <Parameter xsi:type="EnumParameter" name="Condition" value="Contains" />
          <Parameter xsi:type="StringParameter" name="Value" value="WIN" />
        </Condition>
        <Then>
          <If description="">
            <Condition name="Windows 32 or 64 Bit Check">
              <Parameter xsi:type="EnumParameter" name="Condition" value="Exists" />
            </Condition>
            <Then>
              <Statement name="ExecuteShellCommand" continueOnFail="true">
                <Parameter xsi:type="StringParameter" name="Command" value="#global:cmd#" />
                <Parameter xsi:type="EnumParameter" name="ExecuteAccount" value="System" />
                <Parameter xsi:type="BooleanParameter" name="Is64Bit" value="True" />
              </Statement>
            </Then>
            <Else>
              <Statement name="ExecuteShellCommand" continueOnFail="true">
                <Parameter xsi:type="StringParameter" name="Command" value="#global:cmd" />
                <Parameter xsi:type="EnumParameter" name="ExecuteAccount" value="System" />
                <Parameter xsi:type="BooleanParameter" name="Is64Bit" value="False" />
              </Statement>
            </Else>
          </If>
        </Then>
        <Else>
          <Statement name="WriteScriptLogEntry" continueOnFail="true">
            <Parameter xsi:type="StringParameter" name="Comment" value="This script is designed to only run on windows." />
          </Statement>
        </Else>
      </If>
    </Body>
  </Procedure>
</ScExport>