Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $taskname="Logoff (my_logged_in_user_that_at_logoff_will_get_this_task_run) Power to Balanced"
- # delete existing task if it exists
- #Get-ScheduledTask -TaskName $taskname -ErrorAction SilentlyContinue | Unregister-ScheduledTask -Confirm:$false
- # get target script based on current script root
- #$scriptPath=[System.IO.Path]::Combine($PSScriptRoot, "Reset-Sessions.ps1")
- # create list of triggers, and add logon trigger
- $triggers = @()
- # create TaskEventTrigger, use your own value in Subscription
- $CIMTriggerClass = Get-CimClass -ClassName MSFT_TaskEventTrigger -Namespace Root/Microsoft/Windows/TaskScheduler:MSFT_TaskEventTrigger
- $trigger = New-CimInstance -CimClass $CIMTriggerClass -ClientOnly
- $trigger.Subscription =
- @"
- <QueryList>
- <Query Id="0" Path="Security">
- <Select Path="Security">
- *[System[(EventID='4647')]]
- and
- *[EventData[Data[@Name ='TargetUserName'] and (Data='my_logged_in_user_that_at_logoff_will_get_this_task_run')]]
- </Select>
- </Query>
- </QueryList>
- "@
- $trigger.Enabled = $True
- $triggers += $trigger
- # create task
- $User='NT Authority\System'
- $Action=New-ScheduledTaskAction -Execute "cmd.exe" -Argument "/c powercfg.exe /S 381b4222-f694-41f0-9685-ff5bb260df2e"
- Register-ScheduledTask -TaskName $taskname -Trigger $triggers -User $User -Action $Action -RunLevel Highest -Force
Advertisement
Add Comment
Please, Sign In to add comment