Имя: Пароль:
1C
 
Как сделать автозапуск 1С вместо explorer.exe?
0 Вадяс
 
11.10.10
11:08
Но только чтобы в зависимости от учетной записи.

То есть кассир включает комп, и сразу 1С запускается. Рабочего стола и кнопки пуск нету.

А если Администратор включает, то тогда все как обычно. Никагого автозапуска.

HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon параметр shell влияет на всех пользователей. А так не надо.
1 D_Krivosheev
 
11.10.10
11:14
конфа какая?
2 Kom-off
 
11.10.10
11:14
А в групповых политиках написать скрипт в logon для того, чтобы менять этот параметр, если это не Администратор? Не прокатит?
3 SmallDog
 
11.10.10
11:15
терминал???
4 el-gamberro
 
11.10.10
11:16
Блин куча прог прописать автозапуск.
5 zGainer
 
11.10.10
11:16
(0) Администратор может нажать Win+R и загрузить эксплорер.
6 ПульсЪ
 
11.10.10
11:18
в автозагрузку кинь ярлык
7 ПульсЪ
 
11.10.10
11:18
а если нужно что б конфа подгружалась, пиши батник
8 smaharbA
 
11.10.10
11:22
какой сервер ?
9 el-gamberro
 
11.10.10
11:22
(6) Следущий вопрос будет:
Как чтобы при выходе из 1С система завершала работу.
10 smaharbA
 
11.10.10
11:22
(5) попытайся
11 D_Krivosheev
 
11.10.10
11:22
Зачем батник. Помсмотри ключи для запуска 1с.
12 Вадяс
 
11.10.10
11:23
(6),(7) надо чтобы Пуск и рабочий стол не появлялся. А так он будет.
(5) Он кнопку пуск не увидит
(4) например какая нибудь хоть?
(3) нет, не терминал
(2) я не умею
13 ПульсЪ
 
11.10.10
11:23
(11) ну как варик) хотя одно и то же получится) с батником красивее)
14 smaharbA
 
11.10.10
11:24
(12) т.е. на локальном компе нужен разный запуск по пользователям ?
15 ПульсЪ
 
11.10.10
11:25
(12) почему будет? ну если и даже так, тогда в мс КОНФИГЕ замути автозапуск)
16 le_
 
11.10.10
11:26
(0) А что насчет HKCU?
17 Вадяс
 
11.10.10
11:26
(14) именно!
18 Вадяс
 
11.10.10
11:28
(16) Так вот я и не пойму какой ключ найти там надо в этой ветке?
19 Apokalipsec
 
11.10.10
11:29
(18)HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Winlogon
20 Apokalipsec
 
11.10.10
11:30
автор, ОС хоть какая?
21 le_
 
11.10.10
11:30
(18) То же самое, что в LM, только Shell нужно вручную создать, его там нет по-умолчанию.
22 eklmn
 
гуру
11.10.10
11:30
23 Вадяс
 
11.10.10
11:31
(19) А как определить что курент юзер - это тот пользователь, который нужен?
24 Вадяс
 
11.10.10
11:31
(20) XP
25 ПульсЪ
 
11.10.10
11:33
(0) короче,качай XP Tweaker, там есть галка на запрет рабочего стола, и прочий хрени типа пуска и т.д., там же в автозагрузку добвляй ярлык запуска 1С

все просто:)
26 le_
 
11.10.10
11:33
(23) Зайди под пользователем и создай этот параметр в CU.
27 ПульсЪ
 
11.10.10
11:34
там те можешь и пароль поставить на эту прогу, и запретить диспетчер задач и много другое
28 zGainer
 
11.10.10
11:34
(10) (12) Win это кнопка на клавиатуре, Win+R вызовет "Выполнить" там набираете "explorer" и делов-то. Делал неоднократно.
29 ПульсЪ
 
11.10.10
11:35
(28) значит сисадмин лобок был)
30 toxavich
 
11.10.10
11:38
написать vbs скрипт, где прописать путь к базе, юзверя, пасс, и там разные варианты, типа монопольно или нет, когда они будут выходить из 1С, можно будет спрашивать, вы хотите выключить комп, если нет, то снова запускать 1С!
31 le_
 
11.10.10
11:39
+ (26) А еще:

Чтобы узнать, в какой ветке находятся настройки нужного пользователя, нужно узнать его SID.

Идентификатор безопасности (SID, security ID) - структура данных переменной длины, которая идентифицирует пользователя, группу или компьютер. Каждая учетная запись в сети имеет уникальный SID. Внутренние процессы в Windows обращаются к SID для получения учетной записи пользователя или имени группы.

Откройте редактор реестра HKLM\SOFTWARE\ Microsoft\Windows NT\CurrentVersion\ProfileList. Выберите SID и посмотрите ProfileImagePath. В конце строки найдете имя пользователя.
32 ПульсЪ
 
11.10.10
11:40
(30) сказал же человек, что не шарит в vba )
33 ПульсЪ
 
11.10.10
11:42
(31) зачем усложнять когда можно твикнуть раз, и одним махом решить все проблемы) там даже рабенок сообрзит как и че)
34 le_
 
11.10.10
11:44
(33) На самом деле ничего сложного в этом нет )

Всего один параметр создать нужно. Лично я бы не стал ради этого качать чего-то там, устанавливать и т.п. Тем более, если это нужно сделать на сервере, например (хотя, автор делает не на сервере).
35 YF
 
11.10.10
11:45
(0) gpedit.msc ...

Если есть домен, то политикой ...
36 Вадяс
 
11.10.10
11:47
(34) Спасибо, я понял все. Получилось. Я вобщем-то как раз и не мог понять, что надо в этого пользователя зайти и под ним в реестр зайти.
Ну и все спасибо тоже большое, приму к сведению.
37 ПульсЪ
 
11.10.10
11:48
(33) дык он ж говрил что на локальном компе..) или я хз)

ну просто, прошаренный пользователь всеравно запутит что то запретное, а твики оч хорошо обрезают это дело..) на себе проверял.. пришлось админку новую мутить) старую заблочил так, что самому не разблочить было))) кстать, день назад)
38 smaharbA
 
11.10.10
11:50
(37) все делается штатно и мс это описывает в своем сапорте и кз
39 le_
 
11.10.10
11:51
(36) Заходить под пользователем не обязательно, настройки всех пользователей находятся в HKEY_USERS. В HKEY_CURRENT_USER что-то типа ссылки на ветку из HKEY_USERS.

Как в HKEY_USERS найти нужного пользователя - см. (31).

А зайти под пользователем - это тоже вариант, и, наверное, самый простой, но не всегда возможный...
40 smaharbA
 
11.10.10
11:52
(39) а можно узнать как найти пользователя в HKEY_USERS когда ни один не подключен ?
41 eklmn
 
гуру
11.10.10
11:53
(40) да!
42 le_
 
11.10.10
12:11
(40) Вот такой скриптик наваял:

strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
SID =  iNPUTBOX("Введите сид:")
Set objAccount = objWMIService.Get("Win32_SID.SID='" & SID & "'")
MSGBOX "Имя пользователя: " & objAccount.AccountName & VBCRLF & "Домен: " & objAccount.ReferencedDomainName

Просто сохрани с расширением VBS и запусти.

SID вводится в виде: S-1-5-21-117609710-362288127-1801674531-1005

Можно открыть HKEY_USERS в REGEDIT, щелкнуть правой кнопкой на любом подразделе, выбрать "Копировать имя раздела" и из этого имени убрать потом "HKEY_USERS\".
43 ПульсЪ
 
11.10.10
12:12
(42) красава =) шаришь в скриптах?
44 le_
 
11.10.10
12:15
+ (42) А обратную операцию можно проделать так:

strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set objAccount = objWMIService.Get _
("Win32_UserAccount.Name='usermane',Domain='computername'")
MSGBOX objAccount.SID
45 le_
 
11.10.10
12:18
(43) Описание объектов с пом. гугла легко находятся. А VB - оно почти 1С )
46 ПульсЪ
 
11.10.10
12:23
(45) ну что то такое есть) общий предок паскаль чуствуется)

а ты случайно не знаешь как с помощью скрипта сделать общую папку для сетевых юзеров? батник не предлагать, т.к. работает он криво, пробывал, лажа получается, через раз канает..
47 le_
 
11.10.10
12:35
(46) Если на сервере с наличием AD, то думается мне, тут можно обойтись и без батников и скриптов, один раз всё настроить и всё.

В других случаях больше инфы нужно )
48 ПульсЪ
 
11.10.10
12:38
(46) сервак - обычный комп с огромным винчем, рабочей группой и т.д. ) слетает бывает расшаренные папки, хз почему.. мб ось кривая.. (ХП) думаю скрипт намутить и в автозагрузку, чтоб наверника )
49 vde69
 
11.10.10
12:41
(0) ЗАЧЕМ ???

все запреты делаются политикой, а ОДИН ярлык на рабочем месте можно и ткнуть, ну а как пользователю удалять/добавлять базы и выбирать пользователя - вариантов масса... (например http://infostart.ru/public/16686/ )
50 vde69
 
11.10.10
12:42
(49) в крайнем случае кури "публикуемое приложение"
51 le_
 
11.10.10
12:45
52 ПульсЪ
 
11.10.10
12:46
(48) гуд инфа) спасяб ) изучу )
53 ПульсЪ
 
11.10.10
13:01
пожалуйста, обращайся еще хДД
было б не плохо хДД
55 Вадяс
 
12.10.10
11:27
(9) И вправду возник вопрос такой.
Как чтобы при выходе из 1С завершался сеанс пользователя?
56 le_
 
12.10.10
11:28
(55) При логоне можно запускать скрипт, который будет запускать 1С, ждать, пока она завершит работу и выполнять выход из системы или выключение рабочей станции.
57 Вадяс
 
12.10.10
11:33
(56) Блин я в скриптах не силен. А где можно взять такой скрипт? Или хотяб где про скрипты прочитать как их писать?
58 le_
 
12.10.10
11:37
(57) http://www.script-coding.info/

В скрипте 4 строчки буквально будет )
59 Вадяс
 
12.10.10
12:02
(58)А-а-а, я полдня въезжать буду :(
Если там всего 4 строчки, может поможете?
60 Smallrat
 
12.10.10
12:19
(58)
есть одна засада - если 8.2 то правильнее указывать 1cestart.exe, но он после запуска базы завршается и скрипт начинает дальше работать, то есть выключает комп. поэтому приходится указывать ехе-шник конкретной версии.

start /wait c:\"Program Files"\1cv82\8.2.12.80\bin\1cv8.exe enterprise /IBName"База"
shutdown -s

и этот cmd я прописал в качестве shell в реестре. Но у меня терминал и клавы и мыши на нем нету. поэтому я особо не морочился запретом всего.
61 Smallrat
 
12.10.10
12:20
(60)->(57)
62 le_
 
12.10.10
12:27
(59) Самый простой вариант описан в (58).

Можно сделать иначе, имхо, красивее (строчек будет чуть больше, чем 4):

Dim WshShell  

'интервал проверки запущенного процесса
Const TimePoll = 500 'в миллисек.

'Запускаем 1С
Set WshShell = WScript.CreateObject("WScript.Shell")  
WshShell.Run """C:\Program Files\1cv81\bin\1cv8.exe"""  

'ищем процесс
Set svc = GetObject("winmgmts:root\cimv2")
sQuery="select * from win32_process where name='1cv8.exe'"
set cproc = svc.execquery(sQuery)
iniproc = cproc.count  

'Ждем, пока 1С завершится
Do While iniproc <> 0
   wscript.sleep timepoll
   sQuery="select * from win32_process where name='1cv8.exe'"
   Set cproc = svc.execquery(sQuery)
   iniproc = cproc.count
Loop

set cproc = nothing
set svc = nothing

'Выходим из системы
WshShell.Run "C:\WINDOWS\system32\shutdown.exe -L -F" ' У shutdown.exe есть другие параметры - см. справку

'Выключаем PC
'WshShell.Run "C:\WINDOWS\system32\shutdown.exe -S -F"
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший