Запуск скрипта Powershell в Excel VBA - PullRequest
0 голосов
/ 25 октября 2018

Поэтому я пытаюсь создать рабочую книгу, которая будет извлекать всю информацию из AzureAD с помощью powershell. (C: \ Script \ VBA Testing \ ExportOffice365UsersAndGroups.ps1)

, а затем отправлять команды в powershell и запускатьих.

Я думал о разных способах, таких как создание файла ps1:

strpath = "C:\Script\VBA Testing\"
Set oFile = fso.CreateTextFile(strpath & "Testing.ps1")
oFile.WRiteline "Connect-AzureAD"
oFile.Close

, а затем просто запуск его для создания пакетного файла, который будет запускать сценарий после его создания как выполняющийсяСкрипты powershell кажутся трудными.

Я могу запустить powershell и запустить команду, но проблема в том, что по какой-то причине она не замечает модули, которые я запускаю.

"Powershell -noexit -File ""C:\Script\VBA Testing\Testing.ps1"""

просто возвращает, что модуль AzureAD не существует, но если я просто запускаю powershell и пробую его, он работает нормально.

То же самое, если я настроил его запуск из C: \ Windows\ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe

У кого-нибудь есть какие-нибудь блестящие идеи, которые могут мне помочь?

Мне просто нужно сделать это Connect-AzureAD, а затем выполнить несколько строк.. Что я думаю, так это то, что каждое изменение, которое я делаю, будет обновлять файл ps1, и в конце я нажимаю кнопку, и запускается весь скрипт.

Многие пользователи используют 32-битную версию Excel, поэтому нужно что-то, чтопроверит, работает ли он 32-битный, и если так, запустите PowerShell 64-битный вместо 32-битного.

1 Ответ

0 голосов
/ 29 октября 2018

На основании моего теста он работает в 64-битном проекте Excel VBA.

Поэтому, пожалуйста, попробуйте использовать 64-битный Excel для тестирования.

ЕслиЯ запускаю команду в 32-битном Excel VBA, я также могу воспроизвести проблему, которую вы упомянули.

Мы могли бы знать, что Connect-AzureAD в модуле powershell AzureAD или AzureAD preview.Я также обнаружил, что не могу Import-Module AzureAD в 32-битном проекте VBA.

В файле AzureADPreview / AzureAD.psd1 я обнаружил, что

ProcessorArchitecture = 'Amd64'

И я также пытаюсь обновить ProcessorArchitecture = "None" или ProcessorArchitecture = "X86", но оба они не работают.

сценарий powershell:

Import-Module AzureAD -Force  //force to load the AzureAD module 
Connect-AzureAD
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...