0
//set up exchange server name
var Exchangesrv = "ex1.iah.ac.uk";
// Initialize PowerShell engine
var shell = PowerShell.Create();
// Add the script to the PowerShell object
shell.Commands.AddScript("Invoke-Command -Computername hostname.example.com -ScriptBlock{get-alias}");
// Execute the script
var results = shell.Invoke();
Input.DataSource = results;
Input.DataBind();
所以很乾脆我要調用一個電源外殼命令和「輸入」下面的代碼位是一個列表框對象我填充
但是,當我在IIS服務器上運行它不起作用,我認爲這是因爲IIS應用程序沒有運行遠程服務器上的管理員帳戶我試圖運行該命令。任何人都可以幫助解決這個問題嗎?我怎樣才能讓網頁用正確的憑證調用這個invoke命令?
編輯
所以我決定創建的時候打開,我現在用的帳戶電源外殼的交換模塊被加載,這意味着在Web服務器上的配置文件。但是,使用下面的代碼
using (var powershell = PowerShell.Create())
{
//powershell.Runspace = runspace;
// Add the script to the PowerShell object
//powershell.AddScript("Get-alias");
powershell.AddScript("Get-DynamicDistributionGroup");
// Execute the script
var results = powershell.Invoke();
Input.DataSource = results;
Input.DataBind();
時,我沒有看到這個加載
那麼應該怎麼發生的是電源外殼在本地運行的Web服務器上,但我需要它來加載配置文件,但是我看不出爲什麼它是不這樣做。是否有命令強制它加載模塊。
那麼,首先要做的事情 - 在那裏獲得正確的日誌記錄,以便知道*爲什麼*這是失敗的,而不僅僅是假設。其次,如果是因爲權限不足(這可能是一個問題,我同意),那麼您可以[以不同的用戶模仿](https://www.google.co.uk/search?q=impersonation + iis + asp.net&oq = impersonation + iis + asp.net&aqs = chrome..69i57.4032j0j7&sourceid = chrome&ie = UTF-8)。或者,'Invoke-Command'具有'-Credential'參數,也可以用於模擬。 –
嗨,對不起,我已經打開IIS中的日誌記錄,但是在日誌文件中沒有看到任何關於它的信息。 – DevilWAH
對不起 - 我的意思是你應該把日誌消息添加到你的應用程序*,通常使用像Log4Net這樣的庫來確保你可以準確地診斷這個和將來的問題。 IIS日誌記錄旨在告訴您有關HTTP調用,而不是應用程序處理。 –