/ / Uruchom skrypt PowerShell z uprawnieniami administratora poprzez NAnt - powershell, nant

Uruchom skrypt PowerShell z uprawnieniami administratora poprzez NAnt - powershell, nant

Obecnie buduję zautomatyzowany skrypt NAnt, który wdroży części Web SharePoint. Kod NAnt tego procesu to: -

<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>

gdzie $ {deploysolutions.ps1} to skrypt do uruchomienia, a $ {solutionconfiguration.xml} to argument, który należy przekazać do skryptu.

Działa to dobrze, gdy działa na moim komputerze lokalnym. Kiedy próbuję uruchomić to za pomocą tempomatu na naszym serwerze programistycznym SharePoint, napotykam błędy uprawnień. Sprawdziłem, czy używane poświadczenia mają wymagane uprawnienia. Błąd, który widzę w dzienniku kompilacji, to:

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

który jest błędem, który zgłaszam w skrypcie 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"
}

Jednak poświadczenia są poprawne, gdy uruchamiasz te same polecenia za pomocą konsoli PowerShell podczas uruchamiania jako administrator.

Czy istnieje sposób, aby powiedzieć wywołaniu NAnt, aby uruchomiło PowerShell jako administrator? Próbowałem następujących bezskutecznie: -

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; " />

Próbowałem również uruchomić administratora bezpośrednio za pomocą skryptu PowerShell, ale bez powodzenia. Czy ktoś ma jakieś pomysły?

Odpowiedzi:

0 dla odpowiedzi № 1

Nie możesz po prostu zawrzeć wywołania programu PowerShell w poleceniu runas? na przykład runas / user: adminuser powershell.exe

w twojej instrukcji exec?