hacker342
@hacker342
Like Linux

Установка задания через Powershell. Как сделать?

Всем добрый вечер. Столкнулся с проблемой. Необходимо со своей тачки через Powershell установить скрипт на множество ПК. Что было сделано: я в ручную на 1 ПК создал задание и экспортировал его в xml, затем написал такую команду:
schtasks.exe /create /S ServerName /RU TEST\Ivanov /RP password /TN time_reload /XML D:\MyDisk\xml\nts_reload.xml
Собственно данная команда работает, но мне нужно указать группу машин. Данную команду выполняю из Powershell.
WinRM - выключен по условиям безопастности(Invoke-Command) работать не будет.
Подскажите что нужно написать или как переписать? Либо просто в Powershell проще написать скрипт типа NewScheduledTaskAction и Register?
  • Вопрос задан
  • 303 просмотра
Решения вопроса 1
@azarij
В меру опытный никто
а так:

$server_list = "server1", "server2", "server3", "server4"
foreach ($server in $server_list) {
start-process -filepath schtasks.exe -argumentlist "/create /S $server /RU TEST\Ivanov /RP password /TN time_reload /XML D:\MyDisk\xml\nts_reload.xml"
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
chupasaurus
@chupasaurus
Сею рефлекторное, злое, временное
WinRM - выключен по условиям безопастности
Остаётся только вдоль, SSH-сервер Microsoft так и не завезли.
Ответ написан
Комментировать
Sergey-S-Kovalev
@Sergey-S-Kovalev
Sysadmins team leader
Годы использую такой вариант:
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
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы