代码之家  ›  专栏  ›  技术社区  ›  Wiktor

提供池、虚拟磁盘和共享

  •  1
  • Wiktor  · 技术社区  · 7 年前

    我开始自学PowerShell。在其中一本书(Windows Server2012R2,implementation and maintaning)中,我得到了一个任务,我必须在其中创建脚本,运行后,该脚本将在新创建的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 作用问题是,我不知道如何为多个磁盘创建路径,更不知道参数是什么 -AssignDriveLetter 从…起 New Partition 自动创建驱动器号。因此,我不知道驱动器号。因此,我不知道如何设置变量 Path 新建项目

    1 回复  |  直到 7 年前
        1
  •  1
  •   Grigory Sergeev    7 年前

    我建议采用一般方法: 在配置池和磁盘时使用变量,以便在接下来的步骤中重用它们,并且会引用您创建的特定对象:

    $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")
     }
    

    New-SmbShare 使用相同策略的cmdlet。 $NewFolders.FullName 包含新创建文件夹的完整路径。