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