Simplificando o cmdlet do PowerShell

Simplificando o cmdlet do PowerShell

Eu tenho um cmdlet do PowerShell (move-IMAPMailboxToExchange) que requer muita repetição para entrar. Quero chamá-lo com outro script em lote/Powershell que recebe apenas dois argumentos da linha de comando. Tentei todas as convenções de chamada que consigo imaginar, mas não consigo fazer funcionar.

Eu quero isso:

Move-IMAPMailboxToExchange -SourcePassword P@ssW0rd! -allowunsecureconnection -sourceLoginId username -sourceserver source.ser.ver -sourceidentity [email protected] targetclientaccessserver "client.access.ser.ver" -targetidentity [email protected] -verbose

Para ser isso:

migrate-user username P@ssW0rd!

Eu tentei $args, mas isso parece se expandir. Eu tentei $args[0] que funciona na senha simples e no sourcelogin, mas não funciona próximo ao @mail.... Eu tentei% 1, etc, desde os velhos tempos do DOS, mas isso não acontece. não funciona.

Eu sou um idiota do Unix e ainda não estou grocando o PowerShell.

Responder1

Pelo que me lembro, aspas simples é como o PowerShell designa algo como 'não analisar'. então...

Você pode querer fazer algo assim

$username=$args[0]
$passwd=$args[1]

Move-IMAPMailboxToExchange [all that jazz]

Como forma de declarar firmemente as variáveis ​​​​dentro do contexto do script. Se você estiver tendo problemas para construir as variáveis ​​-sourceidentity e -targetidentity, você pode querer pré-construí-las antes de colocá-las no comando move-imaptoexchange...

$sourceident="$username"+'@srcmail.dom.ain'
$targeditent="$username"+'@tgtmail.dom.ain'

Responder2

Você deve ser capaz de definir uma função ou arquivo de script em torno do seu cmdlet, assim:

    function migrate-user
{
 param($username,$password)

Move-IMAPMailboxToExchange -SourcePassword $password -allowunsecureconnection -sourceLoginId $username -sourceserver 'source.ser.ver' -sourceidentity "$username`@mail.dom.ain" targetclientaccessserver 'client.access.ser.ver' -targetidentity "$username`@mail.dom.ain" -verbose

}

informação relacionada