New-ModuleUpdateTask.ps1

<#
    .SYNOPSIS
        Обновление модуля 1CMgmt
        .DESCRIPTION
        Задача автоматического обновления модуля 1CMgmt
    #>

function New-ModuleUpdateTask {
    [CmdletBinding()]
    param(
        [string]$TaskName     = 'Update Module 1CMgmt',
        [string]$Description  = 'Ежедневная проверка обновления модуля 1CMgmt',
        [datetime]$DailyTime  = (Get-Date '01:00')
    )

    # Проверяем модуль ScheduledTasks
    if (-not (Get-Module -ListAvailable -Name ScheduledTasks)) {
        Write-Error 'Модуль ScheduledTasks не найден. Требуется PowerShell 5.1 или выше.'
        return
    }
    Import-Module ScheduledTasks -ErrorAction Stop

    try {
        # Формирование аргументов для запуска PowerShell-скрипта
        $actionArgument = "-NoProfile -ExecutionPolicy Bypass -WindowStyle Hidden -Command `"Import-Module $ModuleName; Update-Module1CMgmt`""
        $action = New-ScheduledTaskAction -Execute "powershell.exe" -Argument $actionArgument

        # Определение триггера – ежедневный запуск в указанное время
        $trigger = New-ScheduledTaskTrigger -Daily -At $DailyTime

        # Определение принципала для запуска задачи от имени SYSTEM с наивысшими правами
        $principal = New-ScheduledTaskPrincipal -UserId "SYSTEM" -LogonType ServiceAccount -RunLevel Highest
        Register-ScheduledTask -TaskName $TaskName -Action $action -Trigger $trigger -Principal $principal -Description $Description
        
    }
    catch {
        Write-Error "Ошибка при создании задачи: $_"
    }
      
}