|
ЗапускПриложения с правами админа | ☑ | ||
---|---|---|---|---|
0
perlharbor
22.05.21
✎
19:18
|
Всем привет. На сервере у меня стоят админские права. Хочу открыть файл с повышенными правами. Есть в cmd какая-нибудь команда для этого? Пишу в 1с что-то наподобии
КомандаСистемы("runas /user:%username% "мойфайл.exe""). Запрашивает пароль... Хочу чтоб без пароля. Ну или на крайний случай чтоб после выполнения команды можно было пароль передать из 1с |
|||
1
acht
22.05.21
✎
21:45
|
powershell Start Notepad.exe -ArgumentList "d:\1.txt" -Verb Runas
|
|||
2
pechkin
23.05.21
✎
09:04
|
Была раньше какая то прога для этого.
Типовыми средствами винды так не сделаешь |
|||
3
pechkin
23.05.21
✎
09:04
|
||||
4
perlharbor
23.05.21
✎
14:34
|
(1) А как можно программу с параметрами запустить? Например такую - mstsc /shadow:1 /v:localhost
|
|||
5
pechkin
23.05.21
✎
14:50
|
(1) так для терминального клиента же можно файл настроек создать и юзера там прописать
|
|||
6
acht
23.05.21
✎
14:55
|
(4) Через значение параметра ArgumentList пробовал?
|
|||
7
acht
23.05.21
✎
14:56
|
А вообще тебе чего надо - повышения уровня своих привелегий через UAC или запуск от другого пользователя с его правами?
|
|||
8
perlharbor
23.05.21
✎
15:05
|
(6) Все,разобрался) В -ArgumentList прописал параметры с тильдой. Всем спасибо)
|
|||
9
Mikhail Volkov
23.05.21
✎
20:15
|
(8) В параметрах писать пароль конкретного админа? Это не хорошо... пароли постоянно меняются. Можно выполнять любое задание под СИСТЕМА командой SchTasks Создать событие Windows из 1С возможно?
|
|||
10
perlharbor
24.05.21
✎
15:23
|
(9) Не, пароль прописывать не нужно. Просто файл открывается с повышенными привилегиями через ps.
Есть еще вопрос. Как-нибудь можно получить соответствие виндового пользователя и пользователя в 1с? Может через какой-нибудь ком объект(без явного заполнения нового реквизита в модуле приложения при запуске системы). Например, через подключение к кластеру, в нем есть список сеансов и компьютер, с которого сеанс запущен. А имени или ид пользователя, вроде бы, нету |
|||
11
1Сергей
24.05.21
✎
15:27
|
(10) ПользователиИнформационнойБазы.ПолучитьПользователей()
Перебираешь массив и смотришь на реквизит ПользовательОС |
|||
12
acht
24.05.21
✎
15:41
|
(11) А там внезапно пусто, потому что используется авторизация не ОС а 1С.
При этом прикинь, текущий пользователь ОС не меняется. |
|||
13
acht
24.05.21
✎
15:42
|
(10) Тебе чего надо-то? Узнать имя пользователя windows, из под которого запущена клиенсткая часть?
|
|||
14
perlharbor
24.05.21
✎
15:44
|
(12) Да)
|
|||
15
perlharbor
24.05.21
✎
15:44
|
(13) Да
|
|||
16
acht
24.05.21
✎
15:58
|
(15) Разбирай вывод whoami.exe. Оно, по-моему, сейчас в винде везде уже есть.
|
|||
17
acht
24.05.21
✎
16:05
|
Ну или вывод
powershell [System.Security.Principal.WindowsIdentity]::GetCurrent().Name Что то же самое |
|||
18
perlharbor
24.05.21
✎
16:16
|
(16) Как получить список пользователей я знаю. Мне как-то нужно сделать соответствие их с пользователями 1с (имена в терминале и базе данных отличаются)
|
|||
19
1Сергей
24.05.21
✎
16:22
|
(14) Тогда я бы через кластер сделал
|
|||
20
1Сергей
24.05.21
✎
16:23
|
Хотя, пользователя ОС, наверное, оттуда не вытащить... хз в общем
|
|||
21
acht
24.05.21
✎
16:25
|
(18) > соответствие их с пользователями 1с
Нет такого. Кто мешает пользователю domain\user открыть две 1Ски как Иванов и Петров? |
|||
22
1Сергей
24.05.21
✎
16:29
|
(21) а с привязкой к сеансу?
|
|||
23
acht
24.05.21
✎
16:30
|
А чтобы узнать текущую комбинацию - парсинг вывода утилит и ИмяПользователя();
|
|||
24
acht
24.05.21
✎
16:32
|
(22) И еще в веб клиенте, ага
|
|||
25
perlharbor
24.05.21
✎
16:47
|
(21) Это скорее исключение. Да даже так устроит
|
|||
26
TormozIT
гуру
24.05.21
✎
16:57
|
У меня в ВК есть функция
Run(Строка ИсполняемыйФайл, Строка ПараметрыЗапуска, Строка ТекущийКаталог, Булево ОжидатьЗавершения, Булево Элевация) - выполняет команду системы Тебе нужен параметр Элевация=Истина. http://devtool1c.ucoz.ru/load/prochie/iskhodnyj_kod_vneshnej_komponenty_obshhego_naznachenija/2-1-0-13 |
|||
27
pechkin
24.05.21
✎
17:10
|
а разве можно программно элевацию выполнить, без нажатия кнопки?
|
|||
28
perlharbor
24.05.21
✎
17:30
|
(26) Что-то не понял, как этим всем пользоваться
|
|||
29
Mikhail Volkov
24.05.21
✎
19:25
|
(10) У меня была такая задача: по завершению работы последнего пользователя запустить bat-файл для dt-выгрузки базы. Для его запуска не нужны административные права, но если пользователь выходит из системы, то выполнение bat-файла прекращается: в нем пауза пара минут, она выполняется, а dt-выгрузка - нет. Вот не пришлось запускать bat-файл под СИСТЕМА командой SchTasks.
Насчет пользователя ОС использую: // Возвращает пользователя ОС (если он в базе), или Неопределено // по примеру https://forum.infostart.ru/forum9/topic10769/ Функция ПользовательОС(Пользователь = Неопределено) Экспорт Пользователь = ?(Пользователь = Неопределено, ПараметрыСеанса.Пользователь, Пользователь); Текущий = Пользователь = ПараметрыСеанса.Пользователь; СоединенияИнформационнойБазы = ПолучитьСоединенияИнформационнойБазы(); Фильтр = Новый Структура; Фильтр.Вставить("Пользователь", СокрЛП(Пользователь.Код)); Фильтр.Вставить("Событие", "_$Session$_.Authentication"); Фильтр.Вставить("Сеанс", НомерСеансаИнформационнойБазы()); ТЗ = Новый ТаблицаЗначений; ВыгрузитьЖурналРегистрации(ТЗ, Фильтр, "Сеанс, Данные, Дата", , ?(Текущий, 10, 500)); ТЗ.Сортировать("Дата Убыв"); Для Каждого Соединение Из СоединенияИнформационнойБазы Цикл НайденнаяСтрока = ТЗ.Найти(Соединение.НомерСеанса, "Сеанс"); Если НайденнаяСтрока <> Неопределено Тогда ДанныеСобытия = НайденнаяСтрока.Данные; Если Текущий И ДанныеСобытия.Свойство("ТекущийПользовательОС") Тогда Возврат ДанныеСобытия.ТекущийПользовательОС; ИначеЕсли ДанныеСобытия.Свойство("ПользовательОС") Тогда Возврат ДанныеСобытия.ПользовательОС; КонецЕсли; КонецЕсли; КонецЦикла; Возврат Неопределено; КонецФункции // ПользовательОС() |
|||
30
perlharbor
25.05.21
✎
17:19
|
(29) У меня в базе отключен журнал. Да и работа с ним спорное решение. Быстродействие страдает.
В общем, я так понял нет решения моей задачи. В консоли кластера из интересного есть только инфа о машине, на которой запущен rphost и ид сеанса.В таблицах скл тоже очень сомневаюсь, что есть записи о пользователях винды. Тут,получается,либо журнал регистрации, либо тж... Ну или явно писать в реквизит имя пользователя в приначалеработысистемы |
|||
31
pechkin
25.05.21
✎
17:28
|
Через wmi можно же получить имя пользователя
|
|||
32
perlharbor
25.05.21
✎
17:41
|
(31) Получить пользователя ос можно миллионом способов. Как связать юзера в бд с юзером системы не нашел ни одного
|
|||
33
perlharbor
25.05.21
✎
17:42
|
Ну, кроме тех, что выше написал
|
|||
34
pechkin
25.05.21
✎
17:42
|
Если авторизация ос не используется то никак
|
|||
35
Kassern
25.05.21
✎
17:49
|
(34) можно наверное через регистр соответствие пользователя ОС к пользователю БД хранить. Нет типовой связи, сделайте свою с блекджеком и запусками приложений)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |