2013-04-22 8 views
6

Ich habe ein paar Powershell-Skripte, die von einem C# -Codepart auslösen.

Sie laufen nicht interaktiv und es gibt keine Möglichkeit, einen Befehl zu bestätigen.

In Powershell können wir die ErrorActionPreference globales Set mit $ErrorActionPreference = "Stop"

Gibt es eine gleiche Art und Weise auf jedem setzen Befehl falsch die confirm Parameter auf $, wenn es vorhanden ist?

Antwort

4

Sie können versuchen, mit:

$ConfirmPreference = "None" 

lesen here

+0

+1, setzen perfekt funktioniert, vielen Dank :) – Solaflex

0

Sie überprüfen können, ob der Befehl unterstützt splatting mit bestätigen und festgelegt:

$param = @{} 
if((Get-Command Enable-PSRemoting).Parameters.Confirm) {$param.Confirm=$false} 

Enable-PSRemoting @param 

In Powershell 3.0 können Sie die verwenden können, $ PSDefaultParameterValues ​​Variable:

$PSDefaultParameterValues["*:Confirm"]=$false 
+0

Aber mit dem Weg, ich muss auf jeden Befehl diesen Code machen , aber ich möchte es als globale Einstellung, wie ich schon sagte. – Solaflex

+0

Für 3.0 ist nicht nur: '$ PSDefaultParameterValues ​​[" bestätigen "] = $ false'? oder '$ PSDefaultParameterValues ​​= @ {" *: bestätigen "= $ false}' –

+0

@Solaflex Ich dachte du wolltest "auf jeden Befehl setzen", mein Schlechter. –

1

Werfen Sie einen Blick here

Sie können das globale Verhalten mit

$ConfirmPreference = "None"/"Low"/"High" 
Verwandte Themen