2013-05-16 14 views
12

Uso Octopus per le nostre distribuzioni. Ho un problema con uno degli script PowerShell per controllare la distribuzione:PowerShell in modalità non interattiva

# stops running processes 
$processes = @("Notepad", 
       "Firefox") 
foreach ($process in $processes) 
{ 
    $prc = Get-Process -Name $process -ErrorAction SilentlyContinue 
    if (-not($prc -eq $null)) 
    { 
     Write-Host "Stopping " $prc.ProcessName 
     Stop-Process -InputObject $prc -ErrorAction SilentlyContinue 
    } 
} 

i programmi che cercano di fermare non sono quelli che vedete nello script di cui sopra, ma rappresentano quello che sto cercando di fare. Ora il problema che ho con esso, è che funziona bene su un server, ma non su un altro. Dove non funziona, viene visualizzato il messaggio di errore:

Stop-Process: Windows PowerShell è in modalità Non interattiva. La funzionalità di lettura e richiesta non è disponibile.

Lo script che funziona gira su Powershell 3.0, quello che non funziona su Powershell 2.0. Non riesco ad effettuare l'aggiornamento a Powershell 3.0 ovunque, perché i vecchi server funzionano con Windows Server 2003. Come posso farlo funzionare su PS 2.0?

+0

Puoi pubblicare il valore di 'get-executionpolicy' e' $ confirpreference' dal server con la versione 2.0? –

+0

get-executionpolicy RemoteSigned $ confirpreference Non è stato emesso alcun output per $ confirpreference. – tobre

+0

Ops, my typo: $ confirmpreference ... –

risposta

14

Run con -Force:

Stop-Process -InputObject $prc -ErrorAction SilentlyContinue -Force

Come b.c. suggerito nel commento: -confirm:$false dovrebbe anche funzionare. Il motivo per questo è il seguente: -Confirm è un parametro di parametro. I parametri switch possono assumere solo argomenti se si specifica il parametro con due punti finali e un valore.

+0

Farò una prova il prima possibile. I nostri utenti utilizzano spesso il sistema per i test e non posso eseguire spesso le installazioni. Stamattina ho gestito il copione da Powershell ISE, bloccando Notepad e ha funzionato bene. Pertanto, l'unico modo per verificare se il problema è stato risolto è eseguire una distribuzione effettiva. Correzione – tobre

+0

. Esegui con '-Force' –

+0

Questo non funziona con Read-Host. Suggerimenti? – ryanwebjackson

Problemi correlati