Имя: Пароль:
1C
1С v8
Скрипт Powershell из 1С
0 maz
 
05.10.18
15:29
Есть маленький скриптик по выгрузке данных из AD, запускаемый отдельным файликом *.ps1
Задача, собственно, выполнять работу данного скрипта из 1С. Пока не понимаю даже с какого боку подступиться к задаче. Каким образом можно реализовать, через КОМ либо АДО выполнить запросец данного скрипта. Кто-то сталкивался с подобной штукой?
1 Cool_Profi
 
05.10.18
15:37
А куда он выгружает?
Может тупо, КомандаСистемы("ps.exe MyScript.ps1"); ?
2 spiller26
 
05.10.18
15:42
(0)
ЗапуститьПриложение("C:\Windows\explorer.exe ""C:\Program files""");
КомандаСистемы("start explorer.exe ""C:\Program files""");
3 maz
 
08.10.18
14:52
Всем спасибо, сделал через ком:

//
ПС = Новый COMОбъект("WScript.Shell");
ПС.Run(ТекстСкрипта);
//

Главное в тексте скрипта в самом начале передаём "PowerShell -Command", иначе будет просто открывать на редактирование
4 maz
 
08.10.18
17:52
Так же полезно будет для понимания информация о параметрах запуска:

WshShell.Run(<команда>,<вид окна приложения (0-10)>, <требуется ожидать завершения (0-1)>);
5 Fram
 
08.10.18
18:54
(4) штатные методы из (2) не сработали?
6 Cyberhawk
 
08.10.18
20:11
Ты сделал овно. Надо только через ЗапуститьПриложение.
7 antndr
 
08.10.18
20:23
(3) А что за скрипт?
У меня сейчас в виндовом шедуллере такая штука выполняется:
Get-ADUser -Filter * -properties OfficePhone | select-object UserPrincipalName, Name, OfficePhone, Enabled | Export-csv -encoding utf8 -path c:\ad_info\ADUsers.csv

Вот думаю прям в 1с - эту штуку выполнять, но встает вопрос, как результат обрабатывать.
Сейчас это все выгружается в файлик, который потом обрабатывается, но хочется прям в 1с получить данные.
8 Сияющий в темноте
 
08.10.18
20:30
Если запрос через wmi,то можно прямо через Com обьект его создать и читать данные. PowerShell это надстройка над Wmi для тех,кто VbScript не осилил.
9 Локи-13
 
09.10.18
09:22
(8) vbscript устаревшее старье
для тех кто не осилил перфокарты
10 maz
 
09.10.18
09:23
(7) Подключиться к AD и сделать выгрузку
11 Cool_Profi
 
09.10.18
09:24
(9) Сейчас во всём мире подавились водкой адепты bash...
12 maz
 
09.10.18
09:25
(5) срабатывали, но я не знал как именно PowerShell запустить)) пока ковырялся заработало так. Можно переделать
13 maz
 
09.10.18
09:28
а нет, там ругань лезла на запрет выполнения сценариев. Т.е. руками всё ок проходило, а через 1с ругался
14 maz
 
09.10.18
09:32
(7)по сути тоже самое делаю, сначала столкнулся только, что скрипт выполняется, а я не знал как получить статус, в каком он состоянии, закончился или нет. А потом выяснилось что просто параметр передать можно и дождаться окончания (4)
15 Локи-13
 
09.10.18
09:40
(11) не надо гнать на баш
пош делали по его образу и подобию
16 Cool_Profi
 
09.10.18
09:41
(15) vbscript^W bash устаревшее старье
17 Asmody
 
09.10.18
09:47
(16) то-то в Микрософте из кожи вылезли, аж целую WSL запилили, лишь бы "старье" bash в винде запускать.
18 Cool_Profi
 
09.10.18
09:49
(17) Старьё баша в винде запускали ещё когда WSL не то что в проекте не было, а деже его родители под сомнением ходили.
19 Cool_Profi
 
09.10.18
09:50
(17) Кроме того - WSL - это какая-то кривая под(д)елка (как и весь линух в общем)
20 eklmn
 
гуру
09.10.18
10:08
ЗапуститьПриложение("powershell -executionpolicy unrestricted -command ...")
21 maz
 
09.10.18
10:19
(20)да, работает. Выгружает, но ругается на что-то при этом. А задержку выполнения кода до окончания выполнения можно передать, что б дождаться создания файла?
22 maz
 
09.10.18
10:28
вот на это "-executionpolicy unrestricted"
23 eklmn
 
гуру
09.10.18
10:33
ЗапуститьПриложение(<СтрокаКоманды>, <ТекущийКаталог>, <ДождатьсяЗавершения>, <КодВозврата>)

3 параметр
24 maz
 
09.10.18
10:34
(21) вопрос снимается, параметр 3
25 maz
 
09.10.18
10:35
(23) :)))) да. Спасибо