Batch file 我想通过批处理文件或后台进程来检测用户在过去10分钟内是否处于活动状态

Batch file 我想通过批处理文件或后台进程来检测用户在过去10分钟内是否处于活动状态,batch-file,background-process,user-activity,Batch File,Background Process,User Activity,我以前从未使用过批处理文件,但这背后的想法是,我只想在一段时间不活动后运行一个程序。 不管是哪个程序,我只想让它与我的屏幕保护程序同时运行,以便在键盘上实现一些照明效果。 我想另一个解决方案是检测屏幕保护程序是否正在运行,并在这种情况下启动,我只是不知道从何处开始,但我愿意学习。这个powershell可以让所有用户持续很长时间。更改时间变量,应该可以工作 Import-Module ActiveDirectory function Get-ADUsersLastLogon() { $dc

我以前从未使用过批处理文件,但这背后的想法是,我只想在一段时间不活动后运行一个程序。
不管是哪个程序,我只想让它与我的屏幕保护程序同时运行,以便在键盘上实现一些照明效果。

我想另一个解决方案是检测屏幕保护程序是否正在运行,并在这种情况下启动,我只是不知道从何处开始,但我愿意学习。

这个powershell可以让所有用户持续很长时间。更改时间变量,应该可以工作

Import-Module ActiveDirectory

function Get-ADUsersLastLogon()
{
  $dcs = Get-ADDomainController -Filter {Name -like "*"}
  $users = Get-ADUser -Filter *
  $time = 0
  $exportFilePath = "c:\lastLogon.csv"
  $columns = "name,username,datetime"

  Out-File -filepath $exportFilePath -force -InputObject $columns

  foreach($user in $users)
  {
    foreach($dc in $dcs)
    { 
      $hostname = $dc.HostName
      $currentUser = Get-ADUser $user.SamAccountName | Get-ADObject -Server $hostname -Properties     lastLogon

      if($currentUser.LastLogon -gt $time) 
      {
        $time = $currentUser.LastLogon
      }
    }

    $dt = [DateTime]::FromFileTime($time)
    $row = $user.Name+","+$user.SamAccountName+","+$dt

    Out-File -filepath $exportFilePath -append -noclobber -InputObject $row

    $time = 0
  }
}

Get-ADUsersLastLogon

仅当用户在过去10分钟内未使用计算机时,才在任务计划程序中计划运行任务