Страница 1 из 1

Скриншоты терминалов по расписанию

Добавлено: Вт дек 20, 2016 3:16 pm
amxs3
Возникла необходимость палить работу/досуг пользователей. Вместо готовых монстрообразных программ нашёл следующий способ:

Скачиваем исходники и распаковываем их на диск D:
https://github.com/trmsjj/vnc_screenshot

Т.к. для удобства нужно знать имена пользователей, а не только адреса, я немного изменил код Program.cs
Program.rar
(1.44 КБ) 76 скачиваний
Для просмотра рекомендую Notepad++.

Если не берёте готовую программу моей сборки
vncss.rar
(54.96 КБ) 75 скачиваний
В командной строке выполняем:

Код: Выделить всё

C:\Windows\System32>"C:\Windows\Microsoft.NET\Framework\v3.5\MSBuild.exe" "D:\vnc_screenshot-master\vnc_screenshot\vnc_screenshot.csproj"
Видим "Build succeeded."

Проверяем работу

Код: Выделить всё

C:\Windows\System32>"D:\vnc_screenshot-master\vnc_screenshot\bin\Debug\vnc_screenshot.exe" i:192.168.10.10 p:password o:"D:"
Пакетный режим

Код: Выделить всё

C:\Windows\System32>"D:\vnc_screenshot-master\vnc_screenshot\bin\Debug\vnc_screenshot.exe" f:"D:\vnc_screenshot-master\vnc_screenshot\bin\Debug\iplist.txt" p:password o:"D:"
Если всё прошло хорошо, на диске "D:", который мы указали в параметре "о", увидим скриншот(ы).

Теперь можно сделать два скрипта
В первом делаем скриншоты:

Код: Выделить всё

# Получаем пользователей, которые сегодня логинились на терминальный сервер
# и создаем из них файл для программы vncss формата "ip:name"
#  Если >=WS2012 можно проверять доступность хоста "Test-NetConnection -ComputerName $event.Properties[2].Value -Count 1 -Port 5900"
$iplist = "D:\vncss\iplist.txt"
Out-File $iplist
$CurrentDate = Get-Date -Hour 0 -Minute 0 -Second 0
$allRDPevents = Get-WinEvent -ComputerName 192.168.1.4 -LogName "Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational" | ?{$_.id -eq 1149 } | ?{$_.TimeCreated -ge $CurrentDate }
$results = @{}
foreach ($event in $allRDPevents){
    if (($event.Properties[0].Value) -and !($results.($event.Properties[0].Value))) {
        $results += @{
            $event.Properties[0].Value = $event.Properties[2].Value
        }
    }
}
$results.Keys | foreach {
  $($results.Item($_))+":"+$_ | Out-File $iplist -Append
}
# делаем новые скиншоты
D:\vncss\vncss.exe f:"D:\vncss\iplist.txt" p:password:"D:\vncss\ss"
Во втором ограничиваем их количество

Код: Выделить всё

# в 00 часов каждый день

$pathss = "D:\vncss\ss\*.png"
$rar = "C:\Program Files\WinRAR\Rar.exe"
$Days = -30 # храним только последние 30 дней
$CurrentDate = Get-Date
$OldDate = $CurrentDate.AddDays($Days)

# Архивируем папку ss и очищаем её
$currentArhPath = $pathss + "\vncss-" + (get-date -Format yyyyMMdd) + ".rar"
&$rar a -m5 -s -ep1 -df $currentArhPath $pathss
# удаляем архивы старше $Day дней
Get-ChildItem $pathss | Where-Object { ( $_.LastWriteTime -lt $OldDate ) -and ($_.Extension -eq ".rar")} | Remove-Item
Дальше можно настроить расписание.

Re: Скриншоты терминалов по расписанию

Добавлено: Вт дек 20, 2016 4:46 pm
aka
Круто.

Добавлю: если у пользователя два монитора, второй можно увидеть подключившись с тем же паролем по VNC к порту 5901.

Re: Скриншоты терминалов по расписанию

Добавлено: Вт дек 20, 2016 10:08 pm
zhendosina
aka писал(а):Круто.

Добавлю: если у пользователя два монитора, второй можно увидеть подключившись с тем же паролем по VNC к порту 5901.
Как насчет зашить это в втварь? Пусть конфигуратор снимает скриншотики я считаю :)

Re: Скриншоты терминалов по расписанию

Добавлено: Вт дек 20, 2016 10:19 pm
aka
Ага. Скриншотики, потом клавиатуру с мышью, закончится VNC клиентом в конфигураторе...

Re: Скриншоты терминалов по расписанию

Добавлено: Пн мар 27, 2017 3:51 pm
amxs3
aka писал(а):Ага. Скриншотики, потом клавиатуру с мышью, закончится VNC клиентом в конфигураторе...
А, кстати, есть идея: конфигуратор пусть остаётся для одминов, а для безопасников и прочих бездельников сделать виндовую прогу, которая всё это будет иметь. И продавать за отдельные деньги. Ну и мне за идею лицензию нахаляву ))

Re: Скриншоты терминалов по расписанию

Добавлено: Пт апр 07, 2017 7:52 pm
Дмитрий 123
amxs3 писал(а):
aka писал(а):Ага. Скриншотики, потом клавиатуру с мышью, закончится VNC клиентом в конфигураторе...
А, кстати, есть идея: конфигуратор пусть остаётся для одминов, а для безопасников и прочих бездельников сделать виндовую прогу, которая всё это будет иметь. И продавать за отдельные деньги. Ну и мне за идею лицензию нахаляву ))

+5