2016-03-23 52 views
1

目前,如果我手動連接到我的管理員Windows帳戶並啓動此代碼,它可以正常工作,但如果有人沒有管理員憑據,「啓用郵箱無法工作,因爲它無法工作發現數據庫。我做了一些研究,這是因爲他不具備權限。有什麼辦法來運行該代碼爲其他用戶提供的用戶名和密碼?如何以其他用戶身份啓動PowerShell

PowerShell powershell = PowerShell.Create(); 
      PSSnapInException ex; 
      powershell.Runspace.RunspaceConfiguration.AddPSSnapIn(
       "Microsoft.Exchange.Management.PowerShell.Admin", out ex); 
      if (ex != null) 
       throw ex; 
      powershell.AddScript(". $env:ExchangeInstallPath\\bin\\RemoteExchange.ps1"); 
      powershell.AddScript("Connect-ExchangeServer -auto"); 
      powershell.Invoke(); 
      powershell.Streams.ClearStreams(); 
      powershell.Commands.Clear(); 
      powershell.AddCommand("Enable-Mailbox"); 
      powershell.AddParameter("Identity", "username"); 
      powershell.AddParameter("Database", @"databasePath"); 
      var result = powershell.Invoke(); 

回答

0
$user = 'xxxxx' 
$PlainPassword = 'xxxxx' 
$SecurePassword = $PlainPassword | ConvertTo-SecureString -AsPlainText -Force 
$cred = New-Object System.Management.Automation.PSCredential -ArgumentList $User, $SecurePassword 

您可以使用這樣的代碼創建用戶憑證變量,可用於從用戶上下文啓動某​​些東西 您也可以提示用戶\ pa帶有Read-Host的ssword。

+0

這是直接在PowerShell的權利?你知道如何把這段代碼放在C# – spnshguy

+0

是的,那是直接在PowerShell中。遺憾的是,我對c#部分一無所知。但是,如果你的代碼沒有powershell命令(我不確定),你可以嘗試像powershell.AddCommand(xxxx)? – 4c74356b41

+0

請不要使用Read-Host來索取憑證。使用'Get-Credentials'。 –

相關問題