我正在向將處理Office 365帳戶供應的C#(.NET 4.5)網站添加頁面。我從Microsoft發現了一個有用的utility,它是一個通過PowerShell調用管理Office 365用戶的Windows應用程序。這個應用程序在我的Windows 7機器上運行得很好,並允許我配置/編輯用戶帳戶。當我從the tool採用完全相同的ExcutePowershellCommands()
方法並將其放入我的Web應用程序中時,它不起作用,表示我嘗試的任何Office 365 cmdlet都無法識別。根據該工具的說明,這是因爲用戶帳戶沒有運行Windows PowerShell的權限,這很有意義,因爲IIS將在運行本機Windows應用程序的單獨用戶帳戶下運行代碼。爲什麼C#Powershell方法在Windows應用程序中工作但不是Web應用程序
如果我將代碼中的ExcutePowershellCommands()
與模擬本地管理員的using()
塊環繞,則該功能在我的Web應用程序中起作用。但是,如果我創建一個調用ExcutePowershellCommands()
函數並運行測試的單元測試,則只會收到錯誤,指出Office 365 cmdlet無法識別(即使我仍然有模擬管理員的using()
塊中包含該函數)。有沒有辦法找出運行單元測試的哪個帳戶(使用TestDriven.Net)?爲什麼如果我做假冒,它甚至會影響單元測試運行的帳戶?
謝謝!
聽起來好像Office 365的cmdlet沒有加載您的IIS帳戶運行的配置文件。我無法確定你可能需要添加什麼才能讓他們識別。我首先看看運行'gc $ profile'返回的內容是否在那裏引用。 – Goyuix
看起來我沒有配置文件,因爲我輸入'$ profile'時列出的路徑中沒有文件。 – kd7iwp