Имя: Пароль:
IT
Админ
BAT файл закрытия 1с
, ,
0 picom
 
31.05.13
09:14
Нужно написать файл, который бы закрывал 1с (снимал задачу) только у текущего пользователя сервера терминалов.
Есть такое уже реализованное?
1 vicof
 
31.05.13
09:20
taskkill?
2 Fish
 
31.05.13
09:23
(0) Пользователи не умеют закрывать 1С?
3 picom
 
31.05.13
12:49
(2) ни любят в один документ всей толпой заходить
4 Alterife
 
31.05.13
13:04
(3) А чого это 1С закрывать? В таких случаях надо весь сервак гасить нахрен! Шоб знали!
5 picom
 
31.05.13
13:08
(4) Есть другой способ ) ?
6 dk
 
31.05.13
13:10
а зачем у текущего-то?
юзеры сами будут жмакать кнопку "Убейте меня"?
7 Grobik
 
31.05.13
13:13
Внешняя обработка ЗавершениеРаботыПользователей
8 picom
 
31.05.13
14:28
(6) да
(7) И как юзер себя закроет если 1с уже в нирване ?
9 Fish
 
31.05.13
14:29
(3) И что в этом плохого? 1С всё равно даст редактировать док только одному, а остальные обломятся.
10 Ковычки
 
31.05.13
18:48
@set @x=0;/*
echo off
set name=1cv7s.exe
cscript /e:javascript //nologo "%~0" "%name%" "%username%"
exit /b
*/
var y;
var x=new Enumerator(GetObject('winmgmts://./root/cimv2').ExecQuery('select * from win32_process where name="'+WScript.Arguments.item(0)+'"'));
for(;!x.atEnd();x.moveNext())
   if(x.item().ExecMethod_("GetOwner").User.toLocaleLowerCase()==WScript.Arguments.item(1).toLocaleLowerCase())
   {
       //x.item().Terminate(0);
       WScript.Echo(x.item().processid);
   }



а так см (1)
11 sdv2000
 
31.05.13
21:41
(10) ну ты монстр
12 Dionis Sergeevich
 
31.05.13
21:54
(10) Это.. Респектище. Яву к сценариям.. Прям как в баше с сями.
13 minsk1s
 
31.05.13
21:57
14 Ковычки
 
31.05.13
22:04
иногда полезно

@set @x=0;/*
echo off
for /f "delims=" %%x in ('cscript /e:javascript //b "%~0"') do (
   %%x
)
if not defined DISPLAYAVAILWIDTH set DISPLAYAVAILWIDTH=1024
if not defined DISPLAYAVAILHEIGHT set DISPLAYAVAILHEIGHT=738
set /a DISPLAYAVAILWIDTH=%DISPLAYAVAILWIDTH% - 16
set /a DISPLAYAVAILHEIGHT=%DISPLAYAVAILHEIGHT% - 28
set ip=адрес
set user=имя
set pass=пароль
set vpn=впн
set title=%vpn% %date:/=.%
set rdp=адресрдпчерезвпн
set rdpTemp=%temp%\%title%-%RANDOM%.rdp
rasdial %vpn% /disconnect > nul 2>&1
ping -n 2 127.0.0.1 > nul
rasdial %vpn% %user% %pass% && (
   ping -n 1 127.0.0.1 > nul
   echo screen mode id:i:1 > "%rdpTemp%"
   echo desktopwidth:i:%DISPLAYAVAILWIDTH% >> "%rdpTemp%"
   echo desktopheight:i:%DISPLAYAVAILHEIGHT% >> "%rdpTemp%"
   echo session bpp:i:16 >> "%rdpTemp%"
   echo winposstr:s:0,0,0,0,%DISPLAYAVAILWIDTH%,%DISPLAYAVAILHEIGHT% >> "%rdpTemp%"
   type "%~dpn0.rdp" | findstr /v /i "desktopwidth:" | findstr /v /i "desktopheight:" | findstr /v /i "winposstr:" | findstr /v /i /c:"screen mode id:" | findstr /v /i /c:"session bpp:" >> "%rdpTemp%"
   start "" /wait /max mstsc "%rdpTemp%"
rem /w:%DISPLAYAVAILWIDTH% /h:%DISPLAYAVAILHEIGHT%
   del /q "%rdpTemp%"
) || (
   color 04
   echo.
   echo *************************
   echo *!!!НЕТ СВЯЗИ С %vpn%!!!*
   echo *************************
   echo.
   pause
)
exit /b
*/
var ie;
var DisplayWidth = 0;
var DisplayHeight = 0;
var DisplayAvailWidth = 0;
var DisplayAvailHeight = 0;
var wshshell;
var documentd;
var VideoController;
try
{
   wshshell=new ActiveXObject("wscript.shell");
   document=new ActiveXObject("htmlfile");
}
catch(e)
{
   ie=new ActiveXeObject("InternetExplorer.Application")
   ie.visible=false;
   ie.Navigate("about:blank");
   while (ie.ReadyState<4)
   {
       WScript.Sleep(100);
   }
   document=ie.document;
}
DisplayWidth = document.parentWindow.screen.width;
DisplayHeight = document.parentWindow.screen.height;
DisplayAvailWidth = document.parentWindow.screen.availWidth;
DisplayAvailHeight = document.parentWindow.screen.availHeight;
if (ie) ie.Quit();
if (DisplayHeight==0)
{
   try
   {
       VideoController=GetObject("winmgmts://./root/cimv2:Win32_VideoController.DeviceID='VideoController1'");
       DisplayWidth = VideoController.CurrentHorizontalResolution;
       DisplayHeight = VideoController.CurrentVerticalResolution;
       DisplayAvailWidth = VideoController.CurrentHorizontalResolution;
       DisplayAvailHeight = VideoController.CurrentVerticalResolution;
   }
   catch(e)
   {
   }
}
if (DisplayHeight==0)
{
   DisplayWidth = 1024;
   DisplayHeight = 768;
}
if (DisplayAvailHeight==0)
{
   DisplayAvailWidth = 1024;
   DisplayAvailHeight = 738;
}
var env=wshshell.environment("USER");
env.item("DISPLAYWIDTH")=DisplayWidth;
env.item("DISPLAYHEIGHT")=DisplayHeight;
env.item("DISPLAYAVAILWIDTH")=DisplayAvailWidth;
env.item("DISPLAYAVAILHEIGHT")=DisplayAvailHeight;
WScript.StdOut.WriteLine("SET DISPLAYWIDTH=" + DisplayWidth);
WScript.StdOut.WriteLine("SET DISPLAYHEIGHT=" + DisplayHeight);
WScript.StdOut.WriteLine("SET DISPLAYAVAILWIDTH=" + DisplayAvailWidth);
WScript.StdOut.WriteLine("SET DISPLAYAVAILHEIGHT=" + DisplayAvailHeight);
15 Ковычки
 
31.05.13
22:06
так то еще вышиваю на машинке, курю и пью как собака.
16 Dionis Sergeevich
 
31.05.13
22:13
(15) в общем в консоли выполняешь яву которая юзая винапи делает то что душе угодно? Круто
17 Dionis Sergeevich
 
31.05.13
22:14
Жаль нельзя сишку подключить - придется яву учить
18 Dionis Sergeevich
 
31.05.13
22:14
вообще ява штука универсальная... давно надо было
19 Ковычки
 
31.05.13
22:16
(16) винапи не прикрутить без обертки, а вот джабускрипт да (с оберткой и винапи), с вбскриптом несколько муторнее, но реализуемо
20 VasilyKushnir
 
31.05.13
23:19
Можно в nnCron задание прописать

BEGIN
       KILL: "1cv7.exe"
       PROC-EXIST: "1cv7.exe" NOT
UNTIL

Ужаляет все запущенные 1cv7.exe
21 Ковычки
 
31.05.13
23:20
(20) текущего ?
22 Ковычки
 
31.05.13
23:22
по сабжу реальная проблема существует
тасккилл не всегда по воле (не взирая на всю толерантность админа)
23 Jump
 
31.05.13
23:23
(20)Используешь nnCron? Как по стабильности в новых виндах не подскажешь? Нет проблем?
А то на офсайте он давно не обновлялся как-то.
24 Ковычки
 
31.05.13
23:23
а уж wmic process call getowner | find /I "%username%" не доступен по обыденности
25 VasilyKushnir
 
31.05.13
23:24
(21) Текущего пользователя имеешь в виду?   Всех! Я эту байду на сервере запускал (все юзеры в терминалке и имели дурную привычку не закрывать 1С)
26 VasilyKushnir
 
31.05.13
23:25
(23) Да , на 2008 сервере есть проблемка. Разработчики кинули версию для отладки  - выйду с отпуска, буду тестить.
27 Ковычки
 
31.05.13
23:31
(25) решается
28 Ковычки
 
31.05.13
23:31
у мене наконец самый два 2012 - теперь могу как все )
29 Jaap Vduul
 
31.05.13
23:46
На старших виндах powershell рулит:
get-wmiObject -class "win32_process" -filter "Name='1cv7.exe'" -computerName $serverName |
   where { $_.getOwner().user -eq $userName } |
   foreach { $_.terminate() }
Программист всегда исправляет последнюю ошибку.