日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > C# >内容正文

C#

C#调用Power Shell 管理Office365 执行脚本时遇到的问题

發(fā)布時(shí)間:2023/12/1 C# 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#调用Power Shell 管理Office365 执行脚本时遇到的问题 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Power Shell管理Office參考http://www.mamicode.com/info-detail-494553.html

C#調(diào)用Power Shell 參考 https://www.cnblogs.com/chenkai/archive/2010/11/09/1872471.html

string pwd = "**********";string userName = "**********";StringBuilder ss = new StringBuilder();ss.AppendLine("$password = ConvertTo-SecureString \"" + pwd + "\" -AsPlainText –Force");ss.AppendLine("$credential = New-Object System.Management.Automation.PsCredential(\"" + userName + "\",$password)");ss.AppendLine("$cred = Get-Credential -cred $credential");ss.AppendLine("Import-Module MSOnline");//ss.AppendLine("Get-Module");ss.AppendLine("Connect-Msolservice -cred $cred");ss.AppendLine("Get-MsolAccountSku");using (Runspace runspace1 = RunspaceFactory.CreateRunspace()){Collection<PSObject> results = null;try{runspace1.Open();Pipeline pipeline = runspace1.CreatePipeline();pipeline.Commands.AddScript(ss.ToString());results = pipeline.Invoke();}catch (Exception ex){var ss1 = ex.ToString();}finally{runspace1.Close();}}

?

第一次出現(xiàn)的錯(cuò)誤:無(wú)法將“Connect-Msolservice”項(xiàng)識(shí)別為 cmdlet、函數(shù)、腳本文件或可運(yùn)行程序的名稱。請(qǐng)檢查名稱的拼寫,如果包括路徑,請(qǐng)確保路徑正確,然后再試一次。

然后發(fā)現(xiàn)在安裝的MSOnline模塊默認(rèn)在64位PowerShell中可以成功導(dǎo)入,但是在32位的PowerShell X86中無(wú)法導(dǎo)入,

報(bào)錯(cuò):

?

PS C:\WINDOWS\system32>> Import-Module MSOnline
Import-Module : 未能加載指定的模塊“MSOnline”,因?yàn)樵谌魏文K目錄中都沒有找到有效模塊文件。
所在位置 行:1 字符: 1
+ Import-Module MSOnline
+ ~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ResourceUnavailable: (MSOnline:String) [Import-Module], FileNotFoundException
+ FullyQualifiedErrorId : Modules_ModuleNotFound,Microsoft.PowerShell.Commands.ImportModuleCommand

原來(lái)模塊只安裝到64位下,32位并沒有安裝MSOnline模塊;

這里我參考了http://just4fun.cn/?p=786 這個(gè)文章,但是其中有部分是錯(cuò)誤的:比如"登錄助手默認(rèn)安裝到32位的模塊庫(kù)中,64位的模塊庫(kù)中沒有",估計(jì)它弄反了。

還有C#默認(rèn)調(diào)用的是32位的PowerShell x86,而不是64位的;

這里說(shuō)明下一個(gè)容易搞錯(cuò)的路徑:

C:\Windows\SysWOW64\WindowsPowerShell\v1.0 下的是32位的Power Shell,

而C:\Windows\System32\WindowsPowerShell\v1.0放的是64位的Power Shell;??

這里很容易被SysWOW64和System32搞暈,SysWOW64文件夾里面的程序類型可參考百度百科https://baike.baidu.com/item/syswow64/10627204?fr=aladdin

?

后來(lái)我發(fā)現(xiàn)修改項(xiàng)目生成屬性的目標(biāo)平臺(tái)為x64可以成功調(diào)用64位的PowerShell;

?

?

這里我分析:

如果你的項(xiàng)目設(shè)置了首選32位或者引用任何32位的dll? 就會(huì)自動(dòng)調(diào)用32位的power Shell,可以通過(guò)設(shè)置目標(biāo)平臺(tái)為x64測(cè)試有沒有依賴32位程序集,如果依賴會(huì)報(bào)

?

未能加載文件或程序集“ConnectionOffice365”或它的某一個(gè)依賴項(xiàng)。試圖加載格式不正確的程序。

說(shuō)明:?執(zhí)行當(dāng)前 Web 請(qǐng)求期間,出現(xiàn)未經(jīng)處理的異常。請(qǐng)檢查堆棧跟蹤信息,以了解有關(guān)該錯(cuò)誤以及代碼中導(dǎo)致錯(cuò)誤的出處的詳細(xì)信息。?

異常詳細(xì)信息:?System.BadImageFormatException: 未能加載文件或程序集“ConnectionOffice365”或它的某一個(gè)依賴項(xiàng)。試圖加載格式不正確的程序。

?

?

?

?

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/stjwy/p/8493959.html

總結(jié)

以上是生活随笔為你收集整理的C#调用Power Shell 管理Office365 执行脚本时遇到的问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。