Qual è l'accordo con i parametri del commando del commutatore PowerShell che richiedono i due punti?PowerShell: Colon nei parametri del commandlet
Prendere in considerazione il cmdlet di shell di gestione di Exchange 2010 Move-ActiveMailboxDatabase. L'opzione Confirm è un System.Management.Automation.SwitchParameter
e deve essere utilizzato in questo modo,
Move-ActiveMailboxDatabase -Confirm:$false
Senza i due punti il comando non riesce a riconoscere la non confermano l'interruttore in questo modo,
Move-ActiveMailboxDatabase -Confirm $false
Perché? Qual è la differenza che fa il colon? Perché Exchange2010 sembra essere l'unica cosa che ho notato questo comportamento?
Ho sfogliato Powershell in Action e Powershell 2.0, ma non ho trovato nulla su questa sintassi. La risoluzione dell'ambito e gli usi di accesso agli oggetti .Net sono tuttavia documentati su questi libri.
Il mio Google-fu ha trovato un article che afferma che inoltra esplicitamente i valori dei parametri, ma non riesce a spiegare di cosa si tratta.
Non la risposta completa - Non so sull'esempio Mailboxes, ma in molti altri casi (ad esempio 'Set-SMBServerConfiguration'), l'effetto di' -Confirm: $ false' è diverso dalla sua assenza. Posso usare '-Confirm: $ false' o' -Force', altrimenti ho bisogno di confermare. – Lamarth