|
Выполнение команды системы в 1с | ☑ | ||
---|---|---|---|---|
0
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";
если я правильно настрадамуснул |
|||
2
acht
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 если от другого пользователя,требует ввода пароля,ну и,внезапно,повышение привилегий через него не включается. |
|||
4
perlharbor
15.06.21
✎
11:42
|
(1) Не,так пробовал,не работает
|
|||
5
perlharbor
15.06.21
✎
11:43
|
(2) Сама команда выполнилась,но в группу пользователь не добавился. Даже не понял в чем проблема. Открылось еще одно окошко цмд на милисекунду,и внем наверняка ошибка была
|
|||
6
eklmn
гуру
15.06.21
✎
11:52
|
извращенцы, запустить пошик чтоб запустить цмд )))
add-LocalGroupMember "Пользователи удаленного рабочего стола" -Member "ВасинДомен\Вася" |
|||
7
eklmn
гуру
15.06.21
✎
11:54
|
можно в одиначные ковычки
|
|||
8
perlharbor
15.06.21
✎
12:24
|
(6) Так я же не смогу штатно через Wscript.Shell скрипт ps выполнить, разве нет?
|
|||
9
acht
15.06.21
✎
12:25
|
(5) > Даже не понял в чем проблема
В кодировке консоли. |
|||
10
perlharbor
15.06.21
✎
12:26
|
(2) Есть какой-то ключ, чтобы окно с ошибкой не закрывалось?
|
|||
11
1Сергей
15.06.21
✎
12:27
|
(10) запускать батник с последней строкой PAUSE
|
|||
12
perlharbor
15.06.21
✎
12:33
|
(9) (11) Проверил, действительно кирилица в иероглифы превращается. Как побороть?)
|
|||
13
1Сергей
15.06.21
✎
12:38
|
(12) лучший способ - не создавать пользователей с кирилицей
а так в батнике команда chcp 866 |
|||
14
perlharbor
15.06.21
✎
13:31
|
(11) написал бат,запустил,ошибок нет.Но и в группу не добавляется
|
|||
15
perlharbor
16.06.21
✎
11:16
|
В общем дело не в кодировке, а передаче параметров в argumentlist. Перехватил вывод ошибок,вот они:
Несуществующий глобальный пользователь или группа: удаленного. Несуществующий глобальный пользователь или группа: рабочего. Несуществующий глобальный пользователь или группа: стола. Системная ошибка 1378. Указанная учетная запись уже входит в эту группу. Поняли в чем прикол?) Когда я пишу это powershell Start-Process -FilePath net -ArgumentList "localgroup ,'""пользователи удаленного рабочего стола""', спбтест3, /add" строка "пользователи удаленного рабочего стола" разбивается на массив групп.В синтаксисе net localgrouop имя группы одно,а вот пользователей(и групп) можно указать много через пробелы.Собственно вопрос-как правильно передать эти параметры в аргументлист? |
|||
16
perlharbor
16.06.21
✎
11:18
|
Start-Process -FilePath net -ArgumentList 'localgroup' ,'"пользователи удаленного рабочего стола"', 'спбтест3', '/add'
Вот такая команда в повершел выполняется, добавляю перед Start-Process вначале powershell.exe -работать перестает |
|||
17
ДенисЧ
16.06.21
✎
11:23
|
Запиши команду в файл и выполни его
|
|||
18
perlharbor
16.06.21
✎
11:47
|
(17) И пользователей каждый раз в файле менять? Хотелось бы одной строкой в КомандаСистемы(),а там и параметр передать можно
|
|||
19
ДенисЧ
16.06.21
✎
11:50
|
(18) временные файлы уже запретили?
|
|||
20
ДедМорроз
16.06.21
✎
11:52
|
А просто почитать параметры net.exe и передать ему то,что он хочет.
И,анезапно,кавычки могут быть вложенными,то есть двойные,четверные и т.п. |
|||
21
perlharbor
16.06.21
✎
12:26
|
(19) А,каждый раз создавать файлик скрипта повершел.Ну не знаю.Как вариант,наверное да. Но,хотя бы,для общего развития хотелось бы понять как команду без файлика выполнить)
|
|||
22
perlharbor
16.06.21
✎
12:29
|
(20) Я уж что только не пробовал,и экранирование пробелов,и кавычек,и тройные ",и комбинации кавычек =).Опыта не хватает грамотно параметры передать
|
|||
23
eklmn
гуру
16.06.21
✎
13:15
|
(8) Штаааа мляяя? ты в(0) это пытаешся сделать же? или ты что ввообще пытаешся? тут дело даже не в параметрах, ты через опу делаешь просто
|
|||
24
perlharbor
16.06.21
✎
13:39
|
(23) Окей,поясняю.
Мне надо пользователя в группу добавить. Чтоб это сделать нужны повышенные привелегии (типа запуск от администратора).Как я понял можно сделать это только в повер шелл через start-process с ключом -verb runas. (6) может и сработало бы, но повышенных прав в этой команде не будет (да и смысл,если есть net.exe). Смысл использования повершел только в повышении привелегий. |
|||
25
eklmn
гуру
16.06.21
✎
13:41
|
(24) runas и в цмд есть
|
|||
26
eklmn
гуру
16.06.21
✎
13:43
|
runas /user:Administrator@DOMAIN "net localgroup Administrators DOMAIN\username /add"
|
|||
27
acht
16.06.21
✎
13:43
|
(26) Ему эскалация привелегий текущего нужна, а не пароль админа вводить.
|
|||
28
perlharbor
16.06.21
✎
13:44
|
(27) В точку
|
|||
29
ДедМорроз
16.06.21
✎
17:05
|
Shell.Application
ShellExecute ELEV Должно помочь без всякого power shell. |
|||
30
perlharbor
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? |
|||
31
Garykom
гуру
16.06.21
✎
23:09
|
||||
32
Garykom
гуру
16.06.21
✎
23:10
|
Когда уже гуглить научитесь? У меня первая же строка в https://bit.ly/3cNCjr0
|
|||
33
perlharbor
17.06.21
✎
13:10
|
(32) А чем мне эта статья поможет? Я ведь run использую,а не exec, у него есть параметр есть дожидаться окончания.Как выяснил проблема была в && в строке команды
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |