powershell scheduled tasks
module
1
2
| import-module scheduledtasks
Get-ScheduledTask
|
basic 1
1
2
3
4
5
6
| $action = New-ScheduledTaskAction -Execute 'Powershell.exe' `
-Argument '-NoProfile -WindowStyle Hidden -command "& {get-eventlog -logname Application -After ((get-date).AddDays(-1)) | Export-Csv -Path c:\fso\applog.csv -Force -NoTypeInformation}"'
$trigger = New-ScheduledTaskTrigger -Daily -At 9am
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName "AppLog" -Description "Daily dump of Applog"
|
register scheduled trigger basic
1
2
3
4
| $Time = New-ScheduledTaskTrigger -At 12:00 -Once
$User = "Contoso\Administrator"
$PS = New-ScheduledTaskAction -Execute "PowerShell.exe"
Register-ScheduledTask -TaskName "SoftwareScan" -Trigger $Time -User $User -Action $PS
|
- execute powershell script with options
1
2
3
4
| $Trigger= New-ScheduledTaskTrigger -At 10:00am –Daily # Specify the trigger settings
$User= "NT AUTHORITY\SYSTEM" # Specify the account to run the script
$Action= New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "C:\PS\StartupScript.ps1" # Specify what program to run and with its parameters
Register-ScheduledTask -TaskName "MonitorGroupMembership" -Trigger $Trigger -User $User -Action $Action -RunLevel Highest –Force # Specify the name of the task
|
scheduled task trigger once basic
1
2
3
| $Sta = New-ScheduledTaskAction -Execute "Cmd"
$Stt = New-ScheduledTaskTrigger -Once -At 3am
Register-ScheduledTask Task01 -Action $Sta -Trigger $Stt
|
$Stt = New-ScheduledTaskTrigger -Once -At 3am
onece$Stt = New-ScheduledTaskTrigger -Daily -At 3am
daily$Stt = New-ScheduledTaskTrigger -Daily -DaysInterval 3 -At 3am
every 3 days$Stt = New-ScheduledTaskTrigger -Weekly -WeeksInterval 2 -DaysOfWeek Sunday -At 3am
every-other week$Stt = New-ScheduledTaskTrigger -AtLogon
when a user logs on$Stt = New-ScheduledTaskTrigger -Once -At (Get-Date) -RepetitionInterval (New-TimeSpan -Minutes 5)
$Stt = New-ScheduledTaskTrigger -Once -At (Get-Date) -RepetitionInterval (New-TimeSpan -Minutes 5) -RepetitionDuration ([System.TimeSpan]::MaxValue)
scheduled task action basic
1
| $sta = New-ScheduledTaskAction -Execute "PowerShell.exe"
|
setting basic
1
2
3
4
| $settings = New-ScheduledTaskSettingsSet `
-ExecutionTimeLimit ([TimeSpan]::FromHours(1)) `
-DeleteExpiredTaskAfter ([TimeSpan]::FromDays(60)
Register-ScheduledTask ... -Settings $settings -RunLevel Highest
|
서비스로 돌리려면
가장 간단한 방법은 nssm을 설치하여 돌리는 방법입니다. nssm은 scoop으로도 설치할 수 있습니다.
PS C:\Users\Administrator> scoop search nssm
'main' bucket:
nssm (2.24-103)
nssm install
커맨드를 실행하여 GUI 화면의 Arguments에
-config c:\Users\Administrator\scoop\apps\influxdb\1.8.1\influxdb.conf
https://devconnected.com/how-to-install-influxdb-on-windows-in-2019/
무료 influxdb 사이트
https://corlysis.com 라고 하는 서비스가 있습니다.
2주간의 데이타만 저장되는 등의 제한이 있고, 버전이 조금 지난 버전이어서 충분히 메인테넌스되고 있지 않다는 느낌이 있습니다. 언제 서비스가 없어질 지 모르지만 보존하지 않아도 되는 중요하지 않은 데이타라면 사용해 볼 수도 있겠습니다.
vanilla powershell로 insert하기
1
2
3
4
5
6
7
| $base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes("token:helloworldtoken61c8ba79fd332cdfc77"))
$base64AuthInfo
$response = Invoke-RestMethod 'https://corlysis.com:8086/write?db=tkim' -Method POST `
-Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} `
-Body "meas_test,place=garden value=22.64"
$response
|
curl로 insert하기
1
| curl -i -XPOST 'http://localhost:8086/write?db=tkim' -u token:ba7a237dbd36661c8ba79fd332cdfc77 --data-binary "meas_test,place=garden value=20.64"
|
레퍼런스