Scripts/Set-EventStoreStartupTask.psm1

function Set-EventStoreStartupTask()
{
    [Cmdletbinding()]
    Param(
        [String] $arg, 
        [String] $taskname,
        [String] $dir
    )

   
    $ex = "cmd.exe "

    If ( Get-ScheduledTask | Where-Object { $_.TaskName -eq $taskname } )
    {
        Write-Verbose ":: Unregister existing Task"
        Unregister-ScheduledTask $taskname -Confirm:$false

    }

    $trigger = New-ScheduledTaskTrigger -AtStartup -RandomDelay 00:00:30

    Write-Host ":: New-ScheduledTaskAction -Execute $ex -WorkingDirectory $dir -Argument $arg"
    $action =  New-ScheduledTaskAction -Execute $ex -WorkingDirectory $dir -Argument $arg
    $principal = New-ScheduledTaskPrincipal -UserID "NT AUTHORITY\SYSTEM" -LogonType ServiceAccount -RunLevel Highest
    Write-Verbose ":: Register Scheduled Task"
    Register-ScheduledTask -TaskName $taskname -Trigger $trigger -Action $action -Principal $principal -ThrottleLimit 0

    Write-Host "!"

}
Export-ModuleMember 'Set-EventStoreStartupTask'