2017-08-09 85 views
1

我开始自己学习PowerShell。在其中一本书中(Windows Server R2,实施和维护),我得到了必须创建脚本的任务,该脚本在运行后将在新创建的vdisc上创建存储池,虚拟光盘和新共享。提供池,虚拟光盘和共享

基于指令书这就是我所做的已经:

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功能来创建新创建的虚拟磁盘共享文件夹。问题是我不知道如何为多个磁盘创建路径,而且参数-AssignDriveLetterNew Partition自动创建驱动器号。因为我不知道驱动器号。因此我不知道如何在New-Item中设置变量Path

+0

这是用于Hyper-V的吗? –

+0

嗨,是的服务器上的Hyper-V –

+0

在超v我设置了2个physicall光盘(这是离线) –

回答

1

我建议的一般方法与此: 使用变量为您配置池和磁盘,这样你就可以重新使用他们在你的下一个步骤,也将是您创建的具体对象的引用:

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

$NewPartitions变量将包含与他们的驱动器号,沿着你的新分区的数组,你可以用foreach循环执行New-Item每次迭代:

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

这将在每个驱动器上生成一个名为“share”的文件夹,然后您可能会使用相同的策略将其传递给New-SmbShare cmdlet。 $NewFolders.FullName包含新建文件夹的完整路径。

+0

好主意谢谢! :) –