Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Выполнение команды системы в 1с

Выполнение команды системы в 1с
Я
   perlharbor
 
15.06.21 - 11:17
Всем привет.
Пытаюсь через Wscript.Shell (тут вопрос даже не в 1с, а в тот,как правильно написать команду в цмд) выполнить такую команду

powershell start-process net -Verb Runas -argumentlist localgroup , "Пользователи удаленного рабочего стола" , ТестовыйПользователь , /add

Не работает. Ошибка значит такая - Не удается найти позиционный параметр, принимающий аргумент "удаленного".Я так понимаю дело в скобках.Если группа в одно слово команда выполняется.Пробовал символы ' ' и  `",не помогает. Знающие люди,помогитее)
   1Сергей
 
1 - 15.06.21 - 11:29
КомандаЦМД = "powershell start-process net -Verb Runas -argumentlist localgroup , ""Пользователи удаленного рабочего стола"" , ТестовыйПользователь , /add";

если я правильно настрадамуснул
   acht
 
2 - 15.06.21 - 11:36
(0) powershell Start-Process -Verb Runas -FilePath 'net.exe' -ArgumentList 'localgroup, "Пользователи удаленного рабочего стола", ТестовыйПользователь, /add,'
   ДедМорроз
 
3 - 15.06.21 - 11:37
А чего,просто запустить net.exe не получается.
Просто, runas если от другого пользователя,требует ввода пароля,ну и,внезапно,повышение привилегий через него не включается.
   perlharbor
 
4 - 15.06.21 - 11:42
(1) Не,так пробовал,не работает
   perlharbor
 
5 - 15.06.21 - 11:43
(2) Сама команда выполнилась,но в группу пользователь не добавился. Даже не понял в чем проблема. Открылось еще одно окошко цмд на милисекунду,и внем наверняка ошибка была
   eklmn
 
6 - 15.06.21 - 11:52
извращенцы, запустить пошик чтоб запустить цмд )))

add-LocalGroupMember "Пользователи удаленного рабочего стола" -Member "ВасинДомен\Вася"
   eklmn
 
7 - 15.06.21 - 11:54
можно в одиначные ковычки
   perlharbor
 
8 - 15.06.21 - 12:24
(6) Так я же не смогу штатно через Wscript.Shell скрипт ps выполнить, разве нет?
   acht
 
9 - 15.06.21 - 12:25
(5) > Даже не понял в чем проблема
В кодировке консоли.
   perlharbor
 
10 - 15.06.21 - 12:26
(2) Есть какой-то ключ, чтобы окно с ошибкой не закрывалось?
   1Сергей
 
11 - 15.06.21 - 12:27
(10) запускать батник с последней строкой PAUSE
   perlharbor
 
12 - 15.06.21 - 12:33
(9) (11)  Проверил, действительно кирилица в иероглифы превращается. Как побороть?)
   1Сергей
 
13 - 15.06.21 - 12:38
(12) лучший способ - не создавать пользователей с кирилицей
а так в батнике команда
chcp 866
   perlharbor
 
14 - 15.06.21 - 13:31
(11) написал бат,запустил,ошибок нет.Но и в группу не добавляется
   perlharbor
 
15 - 16.06.21 - 11:16
В общем дело не в кодировке, а передаче параметров в argumentlist. Перехватил вывод ошибок,вот они:

Несуществующий глобальный пользователь или группа: удаленного.
Несуществующий глобальный пользователь или группа: рабочего.
Несуществующий глобальный пользователь или группа: стола.
Системная ошибка 1378.
Указанная учетная запись уже входит в эту группу.

Поняли в чем прикол?) Когда я пишу это
powershell Start-Process -FilePath net -ArgumentList "localgroup ,'""пользователи удаленного рабочего стола""', спбтест3, /add"

строка "пользователи удаленного рабочего стола" разбивается на массив групп.В синтаксисе net localgrouop имя группы одно,а вот пользователей(и групп) можно указать много через пробелы.Собственно вопрос-как правильно передать эти параметры в аргументлист?
   perlharbor
 
16 - 16.06.21 - 11:18
Start-Process -FilePath net -ArgumentList 'localgroup' ,'"пользователи удаленного рабочего стола"', 'спбтест3', '/add'
Вот такая команда в повершел выполняется, добавляю перед Start-Process вначале powershell.exe -работать перестает
   ДенисЧ
 
17 - 16.06.21 - 11:23
Запиши команду в файл и выполни его
   perlharbor
 
18 - 16.06.21 - 11:47
(17) И пользователей каждый раз в файле менять? Хотелось бы одной строкой в КомандаСистемы(),а там и параметр передать можно
   ДенисЧ
 
19 - 16.06.21 - 11:50
(18) временные файлы уже запретили?
   ДедМорроз
 
20 - 16.06.21 - 11:52
А просто почитать параметры net.exe и передать ему то,что он хочет.
И,анезапно,кавычки могут быть вложенными,то есть двойные,четверные и т.п.
   perlharbor
 
21 - 16.06.21 - 12:26
(19) А,каждый раз создавать файлик скрипта повершел.Ну не знаю.Как вариант,наверное да. Но,хотя бы,для общего развития хотелось бы понять как команду без файлика выполнить)
   perlharbor
 
22 - 16.06.21 - 12:29
(20) Я уж что только не пробовал,и экранирование пробелов,и кавычек,и тройные ",и комбинации кавычек =).Опыта не хватает грамотно параметры передать
   eklmn
 
23 - 16.06.21 - 13:15
(8) Штаааа мляяя? ты в(0) это пытаешся сделать же? или ты что ввообще пытаешся? тут дело даже не в параметрах, ты через опу делаешь просто
   perlharbor
 
24 - 16.06.21 - 13:39
(23) Окей,поясняю.
Мне надо пользователя в группу добавить. Чтоб это сделать нужны повышенные привелегии (типа запуск от администратора).Как я понял можно сделать это только в повер шелл через start-process с ключом -verb runas. (6) может и сработало бы, но повышенных прав в этой команде не будет (да и смысл,если есть net.exe). Смысл использования повершел только в повышении привелегий.
   eklmn
 
25 - 16.06.21 - 13:41
(24) runas и в цмд есть
   eklmn
 
26 - 16.06.21 - 13:43
runas /user:Administrator@DOMAIN "net localgroup Administrators DOMAIN\username /add"
   acht
 
27 - 16.06.21 - 13:43
(26) Ему эскалация привелегий текущего нужна, а не пароль админа вводить.
   perlharbor
 
28 - 16.06.21 - 13:44
(27) В точку
   ДедМорроз
 
29 - 16.06.21 - 17:05
Shell.Application
ShellExecute ELEV
Должно помочь без всякого power shell.
   perlharbor
 
30 - 16.06.21 - 23:02
В общем методом научного тыка удалось выполнить (0)
powershell Start-Process -verb runas -FilePath net -ArgumentList localgroup,  '"""пользователи удаленного рабочего стола"""'  ,'спбтест3','/add'
Теперь пытаюсь через ком объект А=WshShell.run() выполнить эту строку,не работает. Точнее возвращает единичку, на мгновенье открывается консоль повершелл и закрывается,не доходя даже до uac.Та же самая строка в КомандаСистемы() отрабатывает. Только результат не возвращает.Выдод в файл через -RedirectStandardError и -RedirectStandardOutput вместе с -verb runas нельзя использовать. В чем может быть подвох с WshShell?
 
 
   Garykom
 
31 - 16.06.21 - 23:09
   Garykom
 
32 - 16.06.21 - 23:10
Когда уже гуглить научитесь? У меня первая же строка в https://bit.ly/3cNCjr0
   perlharbor
 
33 - 17.06.21 - 13:10
(32) А чем мне эта статья поможет? Я ведь run использую,а не exec, у него есть параметр есть дожидаться окончания.Как выяснил проблема была в && в строке команды


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.