| 
    
        
     
     | 
    
    
  | 
Скрипт 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) :)))) да. Спасибо     
         | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |