Создать задачу с помощью Powershell

Добрый день:

Я написал скрипт PS, который может создать задачу на моей локальной машине; однако я намерен настроить задачу на нескольких машинах из списка. Я не могу найти способ, как это сделать. Я видел кое-что об использовании New-CimSession, но я не думаю, что это то, что я ищу ...

Вот мой сценарий:


foreach ($confighost in (Get-Content -Path "C:Users*User*DocumentsTest.txt"))
{
#Check for existent script in Task Scheduler

$taskpath = "\$confighostc$WindowsSystem32TasksLocalUserCleanUp"
$testtask = Test-Path -path $taskpath

If ($testtask -eq $true)
    {

        #If Task is already present, Do Not Run

        Write-Host "CleanUp Task Listed in Task Scheduler On" $confighost ". Will not Implement Task..."

    }

else
    {

        #If Task Does Not Exist Create Task
        New-CimSession -ComputerName $confighost
        Write-Host "No CleanUp Task Listed in Task Scheduler, Creating Task..."
        $action = New-ScheduledTaskAction -Execute 'Powershell.exe' -Argument "C:Users*Users*DocumentsProfileCleanup.ps1"
        $trigger = New-ScheduledTaskTrigger -Daily  -At 2am
        $settings = New-ScheduledTaskPrincipal -UserId "SYSTEM" -LogonType ServiceAccount -RunLevel Highest
        Register-ScheduledTask -Action $action -Trigger $trigger -Principal $settings -TaskName "LocalUserCleanUp" -Description "Checks user accounts nightly to see if they are older than 30 days"

    }
} 

Я с нетерпением жду вашего понимания. Еще раз спасибо за вашу помощь!

Всего 1 ответ


Вы можете использовать Invoke-Command для выполнения кода создания задачи на целевом сервере:

$cred = Get-Credential # There are a number of methods to automate reading the credential from a file
Invoke-Command -Credential $cred -ComputerName server01, server02, server0X {
  # Your task creation code here
}

Если у вас есть переменные, определенные в локальном сеансе, которые вам нужны, доступны в удаленном коде, вы можете ссылаться на них в Invoke-Command ScriptBlock ссылается на переменную из области применения с помощью префикса локальной переменной с $using:


Есть идеи?

10000