Активность пользователя
Имеем много компов (windows 10 в домене) в разных часовых поясах и локалях
Нужно обновить на них софт пока пользователей нет на местах.
Как точно определить что пользователя нет на месте и не было уже n времени и можно грохать его сессии и обновлять приложения, разумеется батчем.
Предложения с принудительными ребутами сразу мимо.
|
Приказом по организации: при уходе со смены перезагружать компьютер.
|
Прекрасная идея, еще предложения?
|
Цитата:
Цитата c4uran
Как точно определить что пользователя нет на месте »
|
Датчик на стул который определяет есть ли весовое или другое воздействие. Камеру на каждое раб. место и софт с распознаванием.
Цитата:
Цитата c4uran
и не было уже 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
|
Цитата:
Цитата c4uran
пользователя нет на месте и не было уже n времени и можно грохать его сессии и обновлять приложения »
|
нельзя так делать
вы не знаете, что делает пользователь
Может там что-то качается/обновляется. Либо другая работа происходит. Компьютеры для того и придумали, чтобы они выполняли тупые рутинные операции без участия человека.
|
Kazun, интересная утилита но он не всегда отрабатывает
Еще получил отчеты от утилиты nir last activity view или как то так называется, но там слишком много избытычной информации и порой нет базового взаимодействия с интерфейсом
Есть еще планировщик с выполнением on idly
Еще предложения?
|
Цитата:
Цитата c4uran
но он не всегда отрабатывает »
|
Например?
Цитата:
Цитата c4uran
Еще получил отчеты от утилиты 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
|
Время: 16:00.
© OSzone.net 2001-