2017-08-09 20 views
1

私自身でPowerShellを学び始めています。私は、実行後にストレージプール、仮想ディスク、および新しく作成されたvdisc上の新しい共有を作成するスクリプトを作成しなければならないという仕事を得ています(Windows Server R2、実装とメンテナンス)。プール、仮想ディスク、共有を提供

本の指示に基づいて、これは私がすでにやったことです:

New-StoragePool -FriendlyName "Pool" -StorageSubSystemFriendlyName (Get-StorageSubSystem).FriendlyName -PhysicalDisk (Get-PhysicalDisk | where CanPool -eq True) -ProvisingTypeDefault Thin -ResiliencySettingNameDefault Mirror 

New-VirtualDisk -FriendlyName "vDisk1" -StoragePoolFriendlyName "Pool" -Size 5TB 

New-VirtualDisk -FriendlyName "vDisk2" -StoragePoolFriendlyName "Pool" -Size 10TB 

New Partition -DiskNumber(Get-Disk | where BusType -eq Spaces).Number -UseMaximumSize -AssignDriveLetter | Format-Volume -FileSystem NTFS -Confirm:$false 

は今、私はNew-Item機能により、新しく作成された仮想ディスクの共有フォルダを作成したいです。問題は、複数のディスクのパスを作成する方法がわからず、パラメータが何であるか-AssignDriveLetterからNew Partitionまでが自動的にドライブレターを作成するということです。そのため、私はドライブレターを知らない。その結果、変数PathNew-Itemに設定する方法がわかりません。

+0

これはHyper-V用ですか? –

+0

こんにちは、はいサーバーはHyper-Vにあります –

+0

ハイパーでv私は2つの物理ディスクを設定しています(オフラインです) –

答えて

1

私はこれで一般的なアプローチを提案:あなたのプールやディスクを設定して、あなたがあなたの次のステップでそれらを再利用することができ、あなたが作成した特定のオブジェクトへの参照が存在しますので、 使用変数を:

$NewPartitions = New-Partition -DiskNumber(Get-Disk | where BusType -eq Spaces).Number -UseMaximumSize -AssignDriveLetter | Format-Volume -FileSystem NTFS -Confirm:$false 

$NewPartitions変数を使用すると、New-Itemを実行foreachループで毎回繰り返すことができ、そのドライブ文字と一緒にあなたの新しいパーティションの配列が含まれています:

$NewFolders = foreach ($DriveLetter in ($NewPartitions.DriveLetter)) 
{ 
    New-Item -Type Directory -Path ($DriveLetter+":\share") 
} 

これにより、各ドライブに "share"というフォルダが作成されます。このフォルダは、同じ方法でNew-SmbShareコマンドレットに渡すことができます。 $NewFolders.FullNameには、新しく作成したフォルダのフルパスが含まれています。

+0

良いアイデアありがとう! :) –

関連する問題