2009-07-21 90 views

回答

5

嘗試Exec的任務來執行RunAs.exe這將運行XCOPY.EXE

+0

以及您將如何在msbuild中指定該用戶的密碼? – arconaut 2009-09-16 15:49:40

+1

你是對的,我忘了RunAs _asks_的密碼vs接受它作爲參數:( 我想你可以使用/ savecred,但這將需要你手動做的第一次,在生成機器和憑據 – zvolkov 2009-09-16 17:14:41

11

這是最好創建CallTarget任務的快速擴展,通過Uwe Keim使用Impersonator,像這樣:

public class Impersonate : CallTarget 
{ 
    public string Domain { get; set; } 

    [Required] 
    public string UserName { get; set; } 

    [Required] 
    public string Password { get; set; } 

    public override bool Execute() 
    { 
     using (new Impersonator(this.UserName, this.Domain, this.Password)) 
     { 
      return base.Execute(); 
     } 
    } 
} 

然後電話將如下所示:

<Target Name="DoSms"> 
    <....> 
</Target> 

<Target Name="Impersonate"> 
    <Impersonate Targets="DoSms" UserName="username" Password="password" Domain="domain"/> 
</Target> 
相關問題