Годы использую такой вариант:
cls
# Правим кодировку, что бы читались руские символы в выводе консоли
[Console]::OutputEncoding = [System.Text.Encoding]::GetEncoding("utf-8")
# Задаем список ПК
$AllTheComputers = "PC1", "PC2", "PC3"
# Задаем команду для таскшедулера
$cmd = 'powershell.exe -ExecutionPolicy Bypass -NoLogo -NonInteractive -NoProfile -WindowStyle Hidden -file "\\server.domain.local\Scripts\copy-logs-to-fileserver.ps1"'
# Задаем имя создаваемого задания
$TaskName = "AdminTask - AnScheduledTask"
# Обходим все ПК по очереди
foreach ($computer in $AllTheComputers) {
Write-Host -ForegroundColor Green "Для компьютера"$computer "результат: "
# Если нужно создать одноразовое задание
SCHTASKS /Create /S $computer /RU SYSTEM /F /SC ONCE /TN $TaskName /TR $cmd /ST 23:59:00 /RL HIGHEST
# Если нужно создать одноразовае задание под определенным пользователем и одноразово запустить
SCHTASKS /Create /S $computer /RU svc-backup-files@domain.local /RP PasswordHere!1 /F /SC ONCE /TN $TaskName /TR $cmd /ST 23:59:00 /RL HIGHEST
# Если нужно создать ежедневное задание выполняемое от имени системы
SCHTASKS /Create /S $computer /RU SYSTEM /SC DAILY /RI 30 /DU 23:59 /TN $TaskName /TR $cmd /ST 05:25:00 /sd 16/07/2018 /F /RL HIGHEST
# Если после создания нужно сразу запустить
Start-Sleep -Seconds 2
SCHTASKS /run /S $computer /TN $TaskName
# Удаление существующей задачи уже не требуется
SCHTASKS /Delete /S $computer /TN $TaskName /F
}