如何在没有调度程序的情况下真正自动化 powershell 脚本
How to truly automate a powershell script without scheduler
我的脚本基本上 运行 一天中的特定时间。访问服务器并下载数据。
到目前为止,我已经尝试使用 start-sleep 命令和 timespan 命令,但我是新手。
start-sleep ((get-date "03:04 pm") - (get-date)).TotalSeconds;
$filename = (get-date -format "hh_mm_dd_MM_yyyy") + "AU" + ".csv"
$xacontroller = "abc.contoso.com"
$xasessions = Get-BrokerSession -AdminAddress $xacontroller -
MaxRecordCount 100000 | Export-Csv -Path "C:\Temp\Data$filename"
start-sleep ((get-date "03:06 pm") - (get-date)).TotalSeconds;
$filename = (get-date -format "hh_mm_dd_MM_yyyy") + "SG" + ".csv"
$xacontroller = "def.contoso.com"
$xasessions = Get-BrokerSession -AdminAddress $xacontroller -
MaxRecordCount 100000 | Export-Csv -Path "C:\Temp\Data$filename"
逻辑:睡到 3:04 下午和 运行 第一个街区。睡到 3:06 下午和 运行 第二个街区。
我想要实现的目标:在 3:06 下午 3:04 下午
之后睡觉到第二天
期望:此脚本需要 运行 每天自动执行而不使用任务计划程序。我正在使用 powershell 3.
欢迎提出任何想法。谢谢。
如果你想在特定时间运行脚本,你应该在这个时候寻找一些东西(你可以称之为事件处理程序)。
例如,在 WMI 中,事件处理程序是等待特定事件发生的东西(例如:启动、插入外部卷时...)
在任务调度器中,事件可以是系统启动、用户登录、每天特定时间(这是你想要的)...
我认为让你的 powershell 脚本 运行 整天在特定时间执行单个任务不是一个好习惯,而是可以使用任务计划程序。
将您的脚本保存在一个位置,然后使用以下脚本在特定时间向 运行 注册新的计划任务。
$ScriptPath = "$home\Desktop\script.ps1"
$Trigger= New-ScheduledTaskTrigger -Daily -At 03:04pm
$Action= New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-executionpolicy bypass -noprofile -file $ScriptPath"
Register-ScheduledTask -TaskName "MyTask" -Trigger $Trigger -User $env:username -Action $Action
我的脚本基本上 运行 一天中的特定时间。访问服务器并下载数据。
到目前为止,我已经尝试使用 start-sleep 命令和 timespan 命令,但我是新手。
start-sleep ((get-date "03:04 pm") - (get-date)).TotalSeconds;
$filename = (get-date -format "hh_mm_dd_MM_yyyy") + "AU" + ".csv"
$xacontroller = "abc.contoso.com"
$xasessions = Get-BrokerSession -AdminAddress $xacontroller -
MaxRecordCount 100000 | Export-Csv -Path "C:\Temp\Data$filename"
start-sleep ((get-date "03:06 pm") - (get-date)).TotalSeconds;
$filename = (get-date -format "hh_mm_dd_MM_yyyy") + "SG" + ".csv"
$xacontroller = "def.contoso.com"
$xasessions = Get-BrokerSession -AdminAddress $xacontroller -
MaxRecordCount 100000 | Export-Csv -Path "C:\Temp\Data$filename"
逻辑:睡到 3:04 下午和 运行 第一个街区。睡到 3:06 下午和 运行 第二个街区。
我想要实现的目标:在 3:06 下午 3:04 下午
之后睡觉到第二天期望:此脚本需要 运行 每天自动执行而不使用任务计划程序。我正在使用 powershell 3.
欢迎提出任何想法。谢谢。
如果你想在特定时间运行脚本,你应该在这个时候寻找一些东西(你可以称之为事件处理程序)。
例如,在 WMI 中,事件处理程序是等待特定事件发生的东西(例如:启动、插入外部卷时...)
在任务调度器中,事件可以是系统启动、用户登录、每天特定时间(这是你想要的)...
我认为让你的 powershell 脚本 运行 整天在特定时间执行单个任务不是一个好习惯,而是可以使用任务计划程序。
将您的脚本保存在一个位置,然后使用以下脚本在特定时间向 运行 注册新的计划任务。
$ScriptPath = "$home\Desktop\script.ps1"
$Trigger= New-ScheduledTaskTrigger -Daily -At 03:04pm
$Action= New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-executionpolicy bypass -noprofile -file $ScriptPath"
Register-ScheduledTask -TaskName "MyTask" -Trigger $Trigger -User $env:username -Action $Action