Я хочу определить, был ли пользователь активен за последние 10 минут, используя пакетный файл или какой-либо фоновый процесс.

Я никогда раньше не работал с пакетными файлами, но идея заключается в том, что я хочу просто запустить программу после того, как я был неактивен в течение определенного периода времени.
Неважно, какая программа, я просто хочу, чтобы он работал одновременно с моей заставкой для некоторых световых эффектов с моей клавиатурой.
Я полагаю, что другим решением было бы определить, работает ли заставка или нет, и запустить ее при этом условии, я просто понятия не имею, с чего начать с этим, но я готов учиться.


person Craseder    schedule 25.09.2014    source источник


Ответы (2)


Этот 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
person user3795654    schedule 25.09.2014

Просто запланируйте выполнение задачи в планировщике задач, только если пользователь не использовал компьютер в течение последних 10 минут.

person Noodles    schedule 25.09.2014