2016-11-02 3 views
1

私はので、私はそれを行うために、これを使用して終了し、いくつかのVMに仮想HDDを追加するために必要:この番号のシーケンスは正しく動作しますか?

get-vm server[2..3..6][1-3].domain.com | new-harddisk -CapacityGB 10 

これは、サーバーへの10GiG HDDを追加しました:私が欲しかったものである

server21.domain.com 
server22.domain.com 
server23.domain.com 

server31.domain.com 
server32.domain.com 
server33.domain.com 

server61.domain.com 
server62.domain.com 
server63.domain.com 

。 ..私は正しい構文を使用していますか?私は1..3は通常1 2 3に拡張されることを知っていますが、この場合は2番目の部分で1〜3を使用し、2〜3 6を2 3 6にしただけです。

誰か確認していただけますか?

答えて

2

1..3を生成するために、PowerShellの配列の構文であります配列ですが、Get-VM xyz[1..3]のコンテキストではそうではありません。

Examples of how it's being parsed showing ISE syntax highlighting

はまた、あなたはパーサを通してそれを実行した場合、それを見て、それが読まれていますどのように見ることができます:あなたは、PowerShellのISE中の着色から見ることができます

{get-vm server[1..3..5]}.Ast.FindAll({$true}, $true) 

# includes output 

StringConstantType : BareWord 
Value    : server[1..3..5] 
StaticType   : System.String 

{get-vm $server[1..3..5]}.Ast.FindAll({$true}, $true) 

Operator  : DotDot 
Left   : 1 
Right   : 3 

Value  : 1 
StaticType : System.Int32 

Value  : 3 
StaticType : System.Int32 

Value  : 5 
StaticType : System.Int32 

つまり、PowerShellの配列拡張(それらは連鎖することはできません)では構文が間違っていますが、これはPowerShellの配列リテラルではなく、 Get-VMコマンドレットにパラメータとして渡されたリテラル文字列。これは(おそらく)何らかの方法でワイルドカードとして扱われます。

Hyper-V Get-VMはワイルドカード文字をサポートしていないと言います。

VMware Get-VMの例では、ワイルドカードが使用されています。

PowerCLIので遊んでのビットから..が無視されているように、それが見え、そして[236]「は2、この位置 3または6」と[1-3]手段」この1と3の間の数字を意味しますポジション "。あなたが望む出力を得ているので、その意味では構文は問題ありません。おそらく、PSアレイを使用できる場合よりも簡単です。

+0

これは私が探していたものです。私はPowerCLIを使用していて[236]はあなたが説明したように動作します...興味深いことに、Hyper-Vでは動作しません。 – TyMac

1

構文が正しくない(エラーが発生した可能性があります)。 2つのシークエンス(1,2,3)と(2,3,6)を作成し、両方を繰り返して希望する9つの組み合わせを作成することができます。しかし、私はちょうどこのようにそれを行うだろう:あなたの番号セットがちょうど一握りよりも少し大きいと仮定すると、

21, 22, 23, 31, 32, 33, 61, 62, 63 | ForEach-Object { 
    get-vm ('server{0}.domain.com' -f $_) | 
     new-harddisk -CapacityGB 10 
} 
1

、私はこれを行うには、アルゴリズムのいくつかの並べ替えの値を見ることができます。あなたが使用することができ、本当に急いで一緒に投げ、何かのために

、:

2,3,6 | % {$x=$_; 1..3 | % {"server$($x*10+$_).domain.com"}} 

そして何にあなたがエントリーしてやってみたかったパイプ...

関連する問題