2017-01-16 7 views
1

非常に速くそれを理解しているようですね!スイッチを使用してコマンドをトリガーする

基本的に私は従業員の参加プロセスをスピードアップするのに役立つスクリプトを変更していますが、いくつかの質問がありますが、最初に作成したユーザーアカウントメールを交換後に有効にしようとしています。 Iveはそこにいくつかのオプションを入れて、私たちのチームがアカウントを作成するExchangeデータベースを選択することができます。私がうまくいかないのは、それを正しく行う方法です。 (正しい構文ではわからない)

元々、変数を使用してその入力を渡してみましたが、変数が取得されなかったため動作していないように見えました。私は正しく非常に高く評価

switch ($result) { 
    1 { $database = "Enable-Mailbox -Identity domain\$un -Database Database1" } 
    2 { $database = "Enable-Mailbox -Identity domain\$un -Database Database2" } 
    3 { $database = "Enable-Mailbox -Identity domain\$un -Database Database3" } 
} 

ヘルプ:)

+1

質問の名前を変更してください。どのようにあなたの問題を記述する "非常に新しいパワーシェル"ですか? –

+0

また、エラーがある場合は、*あなたの質問に*エラーメッセージを提供してください。単にそれをpowershellからコピーし、それを[edit] <= LOOKに追加すると、クリック可能になります! – Will

答えて

3

下に書くべき方法を知りたい - 私は、彼らはエラーとして私は、正確に以下の式を書かれていませんでした知っている

道の下にあなたのコマンドの引用符を削除するだけでLYの文字列:

switch ($result) { 
    1 { $database = Enable-Mailbox -Identity domain\$un -Database Database1 } 
    2 { $database = Enable-Mailbox -Identity domain\$un -Database Database2 } 
    3 { $database = Enable-Mailbox -Identity domain\$un -Database Database3 } 
} 
+0

ご協力いただきありがとうございます!かなり明白!今働いています:) – Eddie

+0

@Eddieようこそ!あなたが好きな答えを投票し、あなたが好むものを受け入れる(投票の近くに緑色のチェックマークを入れる)。ハッピーコーディング! – sodawillow

1

このような状況で私の推薦は、これははるかに簡単で、後のメンテナンスを行って、コードからデータを分離することです。また、データを再利用することもできます。この例では、私はハッシュテーブルを作成したい、 例えば:

Set-StrictMode -Version 2; 

[Int32]  $Local:intHashKey   = 0; 
[Int32]  $Local:intSelection  = 0; 
[String] $Local:strDatabase   = ''; 
[Hashtable] $Local:objExchangeDBLookup = @{ 1 = 'Database1'; 
              2 = 'Database2'; 
              3 = 'Database3' 
              }; 
# Display options and get selection. 
do { 
    Foreach ($intHashKey in ($objExchangeDBLookup.Keys | Sort-Object)) { 
     Write-Host -Object ('{0}. {1}' -f $intHashKey, $objExchangeDBLookup[$intHashKey]); 
     } #Foreach 
    $intSelection = Read-Host -Prompt "`nPlease select a database"; 
    } until ($objExchangeDBLookup.ContainsKey($intSelection)); 

# Create Mailbox. 
try { 
    $strDatabase = $objExchangeDBLookup[$intSelection]; 
    Write-Host -Object ('Creating mailbox on DB "{0}"...' -f $strDatabase); 
    Enable-Mailbox -Identity domain\$un -Database $strDatabase; 
    } #try 
catch [System.Exception] { 
    # Something went wrong. 
    } #catch 

コードが冗長に終了され、意図的硬化のために静的なデータ型を使用しています。

+0

ご協力いただきありがとうございます!これは明らかに複雑で、私は現時点で頭を上げることができないと確信しています! :) - 私のスクリプトは主に作業しているので、もう少しアドバイスが必要な場合もあります:) – Eddie

+0

@Eddieこのコードを理解してください。これは確実に進むでしょう:) – sodawillow

関連する問題