簡體   English   中英

在Excel VBA中運行Powershell腳本

[英]Running Powershell Script in Excel VBA

因此,我正在嘗試創建一個工作簿,該工作簿將使用Powershell從AzureAD提取所有信息。(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文件,最后我按下一個按鈕,它將運行整個腳本。

許多用戶正在運行32bit excel,因此需要一些東西來檢查其32bit是否運行,如果是,則運行powershell 64bit而不是32bit。

根據我的測試,它可以在64位Excel VBA項目中工作。

因此,請嘗試使用64位Excel進行測試。

如果我在32位excel VBA中運行命令,我也可以重現您提到的問題。

我們可以知道Powershell AzureADAzureAD preview模塊中的Connect-AzureAD。 我還發現我無法在32位VBA項目中Import-Module AzureAD

在AzureADPreview / AzureAD.psd1文件中,我發現

ProcessorArchitecture = 'Amd64'

而且我還嘗試更新ProcessorArchitecture = "None"ProcessorArchitecture = "X86" ,但是兩者都不起作用。

powershell腳本:

Import-Module AzureAD -Force  //force to load the AzureAD module 
Connect-AzureAD

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM