2011-03-28 135 views
1

我目前正在構建一個將部署SharePoint Web部件的自動NAnt腳本。這個過程的惡性代碼: -通過NAnt運行具有管理員權限的PowerShell腳本

<echo message="Deploying Solutions" /> 
<exec failonerror="true" program="${powershell.exe}"> 
    <arg value="-noprofile" /> 
    <arg value="-nologo" /> 
    <arg value="-noninteractive" /> 
    <arg value="-command" /> 
    <arg value=" &quot;&amp; &apos;${deploysolutions.ps1}&apos; &apos;${solutionconfiguration.xml}&apos; &quot; " /> 
</exec> 

其中$ {} deploysolutions.ps1是要運行的腳本和$ {} solutionconfiguration.xml要傳遞給腳本的參數。

在我的本地機器上運行時,這可以正常工作。當我嘗試通過我們的SharePoint開發服務器上的巡航控件運行時,我遇到了權限錯誤。我已經證實所使用的憑證具有必要的許可證。我在生成日誌看到的錯誤是: -

 [exec] Deploy-Solution : Unable to add solution MyWebParts.wsp 

這是我扔的PowerShell腳本內

try 
{ 
    Write-Host "Adding solution $name" 
    Add-SPSolution -LiteralPath $path -ErrorAction Stop 
    Start-Sleep -Seconds 60 
    # as above 
} 
catch 
{ 
    Write-Error "Unable to add solution $name" 
    throw "Could not add solution $name" 
} 

但是錯誤,憑據通過PowerShell的乳寧相同的命令時,都很好當以管理員身份運行時,

有沒有一種方法可以告訴NAnt調用以管理員身份運行PowerShell?我試過以下沒有成功: -

1. <arg value="Start-Process powershell -verb runas -FilePath &quot; -file ${deploysolutions.ps1} &quot; -ArgumentList &apos;${solutionconfiguration.xml}&apos; " /> 

2. <arg value=" &quot; start-process powershell -verb runas &amp; &apos;${deploysolutions.ps1}&apos; &apos;${solutionconfiguration.xml}&apos; &quot; " /> 

3. <arg value=" &apos; start-process powershell -verb runas &apos; " /> 
<arg value=" &quot;&amp; &apos;${deploysolutions.ps1}&apos; &apos;${solutionconfiguration.xml}&apos; &quot; " /> 

我也試着通過PowerShell腳本執行管理權限,但沒有成功。有沒有人有任何想法?

回答

0

不能把命令runas中的調用封裝到powershell中嗎? 例如runas/user:adminuser powershell.exe

在你的exec語句中?

+0

沒有不幸的不是。這是一個自動運行的腳本,按照您的建議執行提示輸入密碼。另外,用戶是管理員。問題是需要以「以管理員身份運行」模式運行PowerShell。 – grimorde 2011-03-29 14:23:39

+0

id發誓它認爲你可以在腳本中提供密碼,看起來像我錯了。 – 2011-03-29 14:33:04

相關問題