Làm cách nào để tự động đăng ký tác vụ theo lịch trình thông qua GPO bằng PowerShell?


0

Tôi có thể tự chạy lệnh ghép ngắn sau trên 10 nút trong AD để đăng ký tác vụ theo lịch trình:

Register-ScheduledTask `
    -TaskName "MyTask" `
    -Action $inlinePowershellScript `
    -Trigger $myTaskTrigger `
    -Principal $myTaskPrincipal

Tôi đã xem xét các cách để tự động hóa nó ở cấp độ AD (tốt nhất là không tận dụng WinRM ..)

Theo bài viết nàydanh sách các lệnh ghép ngắn GroupPolicy có sẵn , có vẻ như cách duy nhất để định cấu hình GPO (sử dụng lệnh ghép ngắn PowerShell) là sử dụng Set-GPRegistryValuevà các Set-GPPrefRegistryValuelệnh ghép ngắn.

vẻ như các khóa đăng ký sau đây khả dụng cho Tác vụ theo lịch trình:

HKLM\Software\Microsoft\Windows NT\CurrentVersion\Schedule\Taskcache\Tasks
HKLM\Software\Microsoft\Windows NT\CurrentVersion\Schedule\Taskcache\Tree

Với những chi tiết này, có cách nào để computer configuration -> Preferences -> Control Panel Settings -> Scheduled Tasks -> New -> Scheduled Taskstự động thực hiện hành động của GPME không $inlinePowershellScript, $myTaskTrigger$myTaskPrincipal?

nhập mô tả hình ảnh ở đây

Câu trả lời:


0

Bạn đang quá phức tạp điều này.

Nhiệm vụ lịch trình chỉ là các tập tin xml. tạo một tác vụ theo cách thủ công, xuất nó và nhập nó vào các máy chủ khác bằng cách sử dụng các lệnh ghép ngắn tác vụ theo lịch trình.

Get-Command -Name '*scheduled*' | ft -a 

CommandType Name                                         Version Source            
----------- ----                                         ------- ------            
Function    Disable-ScheduledTask                        1.0.0.0 ScheduledTasks    
Function    Enable-ScheduledTask                         1.0.0.0 ScheduledTasks    
Function    Export-ScheduledTask                         1.0.0.0 ScheduledTasks    
Function    Get-ClusteredScheduledTask                   1.0.0.0 ScheduledTasks    
Function    Get-ScheduledTask                            1.0.0.0 ScheduledTasks    
Function    Get-ScheduledTaskInfo                        1.0.0.0 ScheduledTasks 
...

Thí dụ:

# Create your task 
$A = New-ScheduledTaskAction –Execute 'powershell' -Argument 'Hello, from task scheduler'
$T = New-ScheduledTaskTrigger -Weekly -WeeksInterval 1 -DaysOfWeek Monday,Tuesday,Wednesday,Thursday,Friday -At 8am
$S = New-ScheduledTaskSettingsSet
$D = New-ScheduledTask -Action $A -Trigger $T -Settings $S
$Task = Register-ScheduledTask 'TestTask' -InputObject $D

# View the created task XML
Get-Content -Path 'C:\Windows\System32\Tasks\TestTask'  | Out-GridView
Get-ChildItem -Path 'C:\Windows\System32\Tasks'

Export-ScheduledTask 'TestTask' | 
out-file '\\TargetServer\c$\public\TestTask.xml'

Invoke-Command -ComputerName 'TargetServer' -ScriptBlock {
    Register-ScheduledTask -Xml (Get-Content 'C:\Users\public\TestTask.xml' | out-string) -TaskName 'TestTask'
}

Chỉ cần sử dụng một danh sách các máy chủ trong một vòng lặp đăng ký

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.