[英]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 AzureAD
或AzureAD 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.