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=" "& '${deploysolutions.ps1}' '${solutionconfiguration.xml}' " " />
</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 " -file ${deploysolutions.ps1} " -ArgumentList '${solutionconfiguration.xml}' " />
2. <arg value=" " start-process powershell -verb runas & '${deploysolutions.ps1}' '${solutionconfiguration.xml}' " " />
3. <arg value=" ' start-process powershell -verb runas ' " />
<arg value=" "& '${deploysolutions.ps1}' '${solutionconfiguration.xml}' " " />
我也試着通過PowerShell腳本執行管理權限,但沒有成功。有沒有人有任何想法?
沒有不幸的不是。這是一個自動運行的腳本,按照您的建議執行提示輸入密碼。另外,用戶是管理員。問題是需要以「以管理員身份運行」模式運行PowerShell。 – grimorde 2011-03-29 14:23:39
id發誓它認爲你可以在腳本中提供密碼,看起來像我錯了。 – 2011-03-29 14:33:04