【问题标题】:provide pool, virtual disc and shares提供池、虚拟磁盘和共享
【发布时间】:2017-08-09 09:14:47
【问题描述】:

我开始自学 PowerShell。在其中一本书(Windows Server 2012 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 函数为新创建的虚拟磁盘创建共享文件夹。问题是我不确定如何为多个磁盘创建路径,更重要的是New Partition 中的参数-AssignDriveLetter 会自动创建驱动器号。因此,我不知道驱动器号。结果我不知道如何在New-Item中设置变量Path

【问题讨论】:

  • 这是为 Hyper-V 准备的?
  • 嗨,是的,服务器在 Hyper-V 上
  • 在 hyper vi 上设置 2 个物理磁盘(离线)

标签: powershell windows-server-2012-r2 hyper-v


【解决方案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 包含您新创建的文件夹的完整路径。

【讨论】:

    猜你喜欢
    • 2015-01-10
    • 2012-02-25
    • 2018-03-08
    • 1970-01-01
    • 2011-02-14
    • 1970-01-01
    • 2018-08-02
    • 1970-01-01
    • 2016-02-10
    相关资源
    最近更新 更多