2017-08-09 131 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

好主意謝謝! :) –