Вопрос:

Попытка установить предварительные требования для sharepoint из powershell в рабочем процессе

powershell sharepoint

41 просмотра

1 ответ

32 Репутация автора

РЕДАКТИРОВАТЬ:

Этот вопрос был задан без полного понимания того, что на самом деле возвращает .exe. Фрагмент кода фактически вернул то, что предполагалось.

Оригинальный вопрос:

Код:

workflow parallelPrereqInstall{
param ($serverNames, $outputFile, $installFilePath)
Function Log-Write([string]$logString){
    $logTime = Get-Date -Format "MM-dd-yyyy_hh-mm-ss"
    $s = "$logTime      $logString";
    Add-Content $Using:outputFile -Value $s
    Write-Host $logString
}
foreach -parallel($server in $serverNames){
  $SPPrereqsInstalled = InlineScript {
        $installSPPrereqs = {
            $fullPath = "$args\prerequisiteinstaller.exe"
            $prereqResult = Start-Process -FilePath $fullPath -ArgumentList "/unattended" -Verb RunAs -Wait -WindowStyle Maximized -PassThru
            return $prereqResult.ExitCode
        }
        $user = "domain\admin"
        $pass = "password"
        $securePass = ConvertTo-SecureString $pass -AsPlainText -Force
        $cred = New-Object System.Management.Automation.PSCredential $user, $securePass
        Invoke-Command -ComputerName $Using:server -ScriptBlock $installSPPrereqs -ArgumentList $Using:installFilePath -Credential $cred -Authentication Credssp
    }
}

Я всегда получаю ответ -1от a, $prereqResultsи кажется, что что-то устанавливает, а затем просто выдает ошибки, тогда как он должен запуститься снова и / или дать мне другой код завершения. Я не верю, что получаю правильный код выхода.

Если я не указываю свойство ExitCode, prereqResults возвращается так:

@{Path=; Company=; CPU=0.0625; FileVersion=; ProductVersion=; Description=;     Product=; __NounName=Process; PSComputerName=localhost;     RunspaceId=a62e33ea-5f4c-4cae-85a4-d1426efacced;     PSShowComputerName=True;     PSSourceJobInstanceId=b2624e9f-5584-4874-a5b3-a9745f95bf42; ExitCode=-1; HasExited=True; ExitTime=03/20/2017 13:12:31;           Handle=2504;     SafeHandle=Microsoft.Win32.SafeHandles.SafeProcessHandle; Id=2980;     MachineName=.; PrivilegedProcessorTime=00:00:00.0625000;         StartInfo=System.Diagnostics.ProcessStartInfo; StartTime=03/20/2017 13:12:30;     SynchronizingObject=; Total
ProcessorTime=00:00:00.0625000; UserProcessorTime=00:00:00;     EnableRaisingEvents=False; Site=; Container=}

Может кто-нибудь помочь мне понять, как правильно запустить и вернуть код выхода?

Автор: Keven Scharaswak Источник Размещён: 20.03.2017 08:50

Ответы (1)


0 плюса

483 Репутация автора

Решение

Попробуйте Write-Output $ prereqResult и проверьте, совпадает ли имя свойства с «ExitCode», также попробуйте Write-Output $ prereqResult.PSSourceJobInstanceId.

Если он отображается правильно, переместите его в переменную и верните переменную или используйте select-string -pattern "ExitCode"

Надеюсь, что это работает

Автор: Vinod kumar G Размещён: 21.03.2017 09:28
Вопросы из категории :
32x32