sebus

Logoff task - specific user

Jan 12th, 2022
2,961
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.32 KB | None | 0 0
  1. $taskname="Logoff (my_logged_in_user_that_at_logoff_will_get_this_task_run) Power to Balanced"
  2.  
  3. # delete existing task if it exists
  4. #Get-ScheduledTask -TaskName $taskname -ErrorAction SilentlyContinue |  Unregister-ScheduledTask -Confirm:$false
  5.  
  6. # get target script based on current script root
  7. #$scriptPath=[System.IO.Path]::Combine($PSScriptRoot, "Reset-Sessions.ps1")
  8.  
  9. # create list of triggers, and add logon trigger
  10. $triggers = @()
  11.  
  12. # create TaskEventTrigger, use your own value in Subscription
  13. $CIMTriggerClass = Get-CimClass -ClassName MSFT_TaskEventTrigger -Namespace Root/Microsoft/Windows/TaskScheduler:MSFT_TaskEventTrigger
  14. $trigger = New-CimInstance -CimClass $CIMTriggerClass -ClientOnly
  15. $trigger.Subscription =
  16. @"
  17. <QueryList>
  18.  <Query Id="0" Path="Security">
  19.    <Select Path="Security">
  20.     *[System[(EventID='4647')]]
  21.     and
  22.     *[EventData[Data[@Name ='TargetUserName'] and (Data='my_logged_in_user_that_at_logoff_will_get_this_task_run')]]
  23.    </Select>
  24.  </Query>
  25. </QueryList>
  26. "@
  27. $trigger.Enabled = $True
  28. $triggers += $trigger
  29.  
  30. # create task
  31. $User='NT Authority\System'
  32. $Action=New-ScheduledTaskAction -Execute "cmd.exe" -Argument "/c powercfg.exe /S 381b4222-f694-41f0-9685-ff5bb260df2e"
  33. Register-ScheduledTask -TaskName $taskname -Trigger $triggers -User $User -Action $Action -RunLevel Highest -Force
  34.  
Advertisement
Add Comment
Please, Sign In to add comment