none
Service -> PowerShell ->Excel(VBA) -> Txt RRS feed

  • Вопрос

  • Коллеги, добрый день!

    Основная задача заключается в том, что бы сохранить текстовый файл в каталог по цепочке Служба->powershell->VBA (Excel).

    Возникла крайне горячая проблема. Пишу сюда, т.к. нигде на просторах интернета не смог найти решение данной проблемы.

    У меня есть программное обеспечение, которое работает в виде службы. Эта служба запускает приложение, которое вызывает powershell. Затем Powershell заходит в процедуру макроса Excel (VBA) и запускает её. Макрос (VBA) сохраняет текстовый документ в директорию.

    Когда вручную запускаю PowerShell, то всё работает исправно и текстовый файл по цепочке (PowerShell->XLSM(VBA)->TXT) сохраняется исправно.

    Но если я пытаюсь данный механизм поставить на расписание, т.е. используя службу, то это не работает. 

    Аналогичный механизм работает исправно в Widows 7. Возможно в серверной ос Windows Server 2012 R2 более строгие настройки безопасности?

    Пользователь имеет находится в группе - администраторы, к каталогу для записи файла имеет все права. В настройках Excel разрешил запуск всех небезопасных компонентов. 

    Пожалуйста помогите решить данную проблему. Или может подскажите, где посмотреть какой-то log по данной проблеме, что бы идентифицировать, почему Windows Server 2012 R2 не хочет сохранять txt в каталог.
    На всякий случай прилагаю скрипты PowerShell и VBA (Excel).

    Скрипт PowerShell:

    Set-ExecutionPolicy Unrestricted
    $excel = new-object -comobject excel.application
    
    $strFileName = "C:\ProgramData\QlikTech\SourceDocuments\TestPS\TEST.xlsm"
    
    $excelFiles = Get-ChildItem -Path($strFileName)
    $app = $excel.Application
    $workbook = $app.workbooks.open($excelfiles)
    $app.Visible = $False
    $excel.displayalerts = $False
    $workbook.Activate()
    $app.Run("CreateTXT")
    
    # PowerShell Out-File -Append
    
    $File ="C:\ProgramData\QlikTech\SourceDocuments\TestPS\TEST.txt"
    Get-Date | Out-File $File
    Get-Process | Out-File $File -Append

    Скрипт VBA в Excel:

    Sub CreateTXT()

        strFile_Path = "C:\ProgramData\QlikTech\SourceDocuments\TestPS\Check.txt"

        Open strFile_Path For Output As #1
        Print #1, "CheckMask"
        Close #1

    End Sub

    Причём, если сохранять текстовый файл из powershell - то всё работает. Но почему-то сбой происходит на этапе вызова процедуры VBA из Excel.

    Подскажите пожалуйста как решить данную проблему. Может какие-нибудь веяния, соображения по этому поводу?

    Заранее спасибо.


    9 февраля 2016 г. 10:16

Ответы

Все ответы