Показать полную графическую версию : Активность пользователя
Имеем много компов (windows 10 в домене) в разных часовых поясах и локалях
Нужно обновить на них софт пока пользователей нет на местах.
Как точно определить что пользователя нет на месте и не было уже n времени и можно грохать его сессии и обновлять приложения, разумеется батчем.
Предложения с принудительными ребутами сразу мимо.
Приказом по организации: при уходе со смены перезагружать компьютер.
Прекрасная идея, еще предложения?
Как точно определить что пользователя нет на месте »
Датчик на стул который определяет есть ли весовое или другое воздействие. Камеру на каждое раб. место и софт с распознаванием.
и не было уже n времени »
Запуск скринсейвера или переход в ждущие режим монитора.
quser
USERNAME SESSIONNAME ID STATE IDLE TIME LOGON TIME
The idle time (the number of minutes since the last keystroke or mouse movement at the session)
The date and time the user logged on
пользователя нет на месте и не было уже n времени и можно грохать его сессии и обновлять приложения »
нельзя так делать
вы не знаете, что делает пользователь
Может там что-то качается/обновляется. Либо другая работа происходит. Компьютеры для того и придумали, чтобы они выполняли тупые рутинные операции без участия человека.
Kazun, интересная утилита но он не всегда отрабатывает
Еще получил отчеты от утилиты nir last activity view или как то так называется, но там слишком много избытычной информации и порой нет базового взаимодействия с интерфейсом
Есть еще планировщик с выполнением on idly
Еще предложения?
но он не всегда отрабатывает »
Например?
Еще получил отчеты от утилиты nir last activity view или как то так называется, но там слишком много избытычной информации и порой нет базового взаимодействия с интерфейсом »
LastActivityView — это вообще не о том:
LastActivityView is a tool for Windows operating system that collects information from various sources on a running system, and displays a log of actions made by the user and events occurred on this computer. The activity displayed by LastActivityView includes: Running .exe file, Opening open/save dialog-box, Opening file/folder from Explorer or other software, software installation, system shutdown/start, application or system crash, network connection/disconnection and more...
Еще предложения? »
C++ ;).
Что то подобное, но работает странно, на локальной машине все четко: двинул мышкой input time изменился, на удаленной херня, в .net я не шарю, можете посмотреть что не так?
$scriptblock = {
Add-Type @'
using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
namespace PInvoke.Win32 {
public static class UserInput {
[DllImport("user32.dll", SetLastError=false)]
private static extern bool GetLastInputInfo(ref LASTINPUTINFO plii);
[StructLayout(LayoutKind.Sequential)]
private struct LASTINPUTINFO {
public uint cbSize;
public int dwTime;
}
public static DateTime LastInput {
get {
DateTime bootTime = DateTime.UtcNow.AddMilliseconds(-Environment.TickCount);
DateTime lastInput = bootTime.AddMilliseconds(LastInputTicks);
return lastInput;
}
}
public static TimeSpan IdleTime {
get {
return DateTime.UtcNow.Subtract(LastInput);
}
}
public static int LastInputTicks {
get {
LASTINPUTINFO lii = new LASTINPUTINFO();
lii.cbSize = (uint)Marshal.SizeOf(typeof(LASTINPUTINFO));
GetLastInputInfo(ref lii);
return lii.dwTime;
}
}
}
}
'@
for ( $i = 0; $i -lt 20; $i++ ) {
Write-Host ("Last input " + [PInvoke.Win32.UserInput]::LastInput)
Write-Host ("Idle for " + [PInvoke.Win32.UserInput]::IdleTime)
Start-Sleep -Seconds (Get-Random -Minimum 1 -Maximum 2)
}
}
$hostname = "xxx.domain.local"
Invoke-Command -ComputerName $hostname -ScriptBlock $scriptblock
Вот еще решение:
http://mctexpert.blogspot.com/2012/10/how-to-determine-if-client-on-your.html
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.