每次系统从睡眠中醒来时都需要运行powershell脚本

每次系统从睡眠中醒来时都需要运行powershell脚本,powershell,sleep,wakeup,Powershell,Sleep,Wakeup,我刚刚用PowerShell编写完一个脚本,每次我的系统从睡眠或休眠中醒来时都需要运行它。 我尝试了gpedit.msc->用户配置->Windows设置->脚本->登录,但当我的系统从“睡眠”中唤醒时,这不起作用。。。可能是因为'Sleep'->'Wake-up'从技术上讲不是新登录(作为一个用户,我已经登录) 睡眠唤醒事件或登录(用户登录)事件都会触发我的脚本 有什么办法可以做到这一点吗 关于我的脚本的更多信息:它检查互联网/网络是否连接。如果是,它将尝试使用所需参数运行Cisco VPN连

我刚刚用PowerShell编写完一个脚本,每次我的系统从睡眠或休眠中醒来时都需要运行它。 我尝试了gpedit.msc->用户配置->Windows设置->脚本->登录,但当我的系统从“睡眠”中唤醒时,这不起作用。。。可能是因为'Sleep'->'Wake-up'从技术上讲不是新登录(作为一个用户,我已经登录)

睡眠唤醒事件或登录(用户登录)事件都会触发我的脚本

有什么办法可以做到这一点吗


关于我的脚本的更多信息:它检查互联网/网络是否连接。如果是,它将尝试使用所需参数运行Cisco VPN连接命令行实用程序,并将我登录到VPN。每次我从睡眠中唤醒系统并登录时,我都需要该死的VPN自动连接。

任务调度器似乎更适合我


如果“在启动时”的任务触发器在这种情况下不起作用(我怀疑它不会起作用),那么确定一个发布在“从睡眠中唤醒”上的事件日志条目并触发它。

我找到了答案。如上所述,我使用了任务调度器

我将触发器设置为。。 在事件->系统->内核电源->42上

如果有人感兴趣。。。以下是脚本(我是PowerShell脚本的初学者,欢迎您的输入)


您可以通过安排一个任务来运行脚本,并在事件ID为1的事件“Power Troubleshooter”上触发来完成此任务。这是系统从睡眠状态恢复时记录的事件。当系统进入睡眠状态时,调用事件ID为42的“内核电源”事件(与这里的另一个答案不同)

希望有帮助:)

$strComputerName = gc env:computername
$strVPN = 'c:\Program Files (x86)\Cisco Systems\VPN Client\vpnclient.exe'
$vpnArgs = 'connect', 'ProfileName', 'user', 'XXXXXXXX', 'pwd', 'XXXXXXXXXX'
[int]$count = 6
Write-Host "Checking for Internet Connectivity"
While (!([Activator]::CreateInstance([Type]::GetTypeFromCLSID([Guid]'{DCB00C01-570F-4A9B-8D69-199FDBA5723B}')).IsConnectedToInternet))
{
    Write-Host "Sleeping for 10 seconds before checking for internet again"
    Start-Sleep -s 10
    $count--
    if ( $count -eq 0) 
    {
        Write-Host "Breaking from loop"
        break
    }
}
if ( $count -ne 0) { Invoke-Command -ScriptBlock { & $strVPN $vpnArgs } }
else { Write-Host "No Internet Connectivity, so not attempting VPN connection" }