Создать задачу с помощью Powershell - PullRequest
1 голос
/ 16 января 2020

Добрый день:

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

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


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

$taskpath = "\\$confighost\c$\Windows\System32\Tasks\LocalUserCleanUp"
$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*\Documents\ProfileCleanup.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 Ответ

0 голосов
/ 16 января 2020

Вы можете использовать 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 scope , добавив к локальной переменной префикс $using:.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...