Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Серверные продукты Microsoft » Windows Server 2012/2012 R2 » 2012 R2 - Запуск и работа Excel VBA используя службу Windows и Power Shell

Ответить
Настройки темы
2012 R2 - Запуск и работа Excel VBA используя службу Windows и Power Shell

Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


Друзья, добрый день!

Пишу сюда, т.к. нигде на просторах интернета не смог найти нужную мне информацию.

По сути:

Есть Excel макрос VBA, данный макрос сохраняет Excel (xlsx) - файлы в каталог.

Когда я запускаю данный механизм локально (вручную) - всё работает.

А если запускаю используя службу - xlsx файлы не сохраняются в каталог.

Запускаю макрос через power shell, который в свою очередь, заходит в макрос и запускает определённую процедуру.

Прилагаю скрипт POWER SHELL:
Код: Выделить весь код
Set-ExecutionPolicy Unrestricted
$excel = new-object -comobject excel.application

$curDir = $MyInvocation.MyCommand.Definition | split-path -parent
$FDir = $curDir;
$FName = "\TEST.xlsm";
$strFileName = $FDir + $FName;

$excelFiles = Get-ChildItem -Path($strFileName)
$app = $excel.Application
$workbook = $app.workbooks.open($excelfiles)
$app.Visible = $False
$excel.displayalerts = $False
$workbook.Activate()
$app.Run("CreateTXT")
Так же прилагаю скрипт VBA:
Код: Выделить весь код
Sub CreateTXT()

    List = "Лист2"
    Sheets(List).Activate

    Cells(1, 1) = 1
    Cells(1, 2) = 2
    Cells(1, 3) = 3
    Cells(1, 4) = 4
    Cells(1, 5) = 5
    
    FPath = ActiveWorkbook.Path
    FName = "Лист2.xlsx"
    
    Sheets(List).Copy
    aFile = FPath & "\" & FName
 
    If Dir(FPath & "\" & FName) <> "" Then
    
        'Перезапись файла
        
        If Len(Dir$(aFile)) > 0 Then
            Kill aFile
        End If
    
        ActiveWorkbook.SaveAs Filename:=aFile
        
        ActiveWorkbook.Close (False)
        
    Else
        
        'Запись файла
        
        ActiveWorkbook.SaveAs Filename:=aFile
        
        ActiveWorkbook.Close (False)
        
    End If
       
    ThisWorkbook.Activate
 
    strFile_Path = FPath & "\Check.txt"
    
    Open strFile_Path For Output As #1
    Print #1, "CheckMask"
    Close #1
    
    ActiveWorkbook.Close (False)

End Sub
Причём текстовый файл он сохраняет, а xlsx - нет.

Подскажите пожалуйста в чём проблема?

Что было проделано:

1. Созданы 2 директории:

- C:\Windows\System32\config\systemprofile\Dektop

- C:\Windows\SysWOW64\config\systemprofile\Desktop

2. В настройках безопасности Excel - разрешил запуск всех небезопасных элементов.

3. Пользователь, от которого запускается служба имеет все администраторские права на чтение, запись на каталог в котором крутится данный механизм.

4. PowerShell запускается от имени администратора...

5. Разрешил запуск COM, COM+ и DCOM объектов.

Какие настройки безопасности Windows Server 2012 R2 блокируют сохранение xlsx из xlsm в каталог ???

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

Отправлено: 12:26, 12-04-2016

 


Компьютерный форум OSzone.net » Серверные продукты Microsoft » Windows Server 2012/2012 R2 » 2012 R2 - Запуск и работа Excel VBA используя службу Windows и Power Shell

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBA - Обращение в VBA к Oval и изменение свойств в Power Point Vladislava-smile Программирование и базы данных 3 23-05-2014 02:45
PowerShell - Power Shell и база Access kknyazz Скриптовые языки администрирования Windows 0 08-11-2012 11:36
PowerShell - [решено] Переименование компьютеров в домене через Power shell Неадекват Скриптовые языки администрирования Windows 3 07-10-2011 08:38




 
Переход