Wil*_*son 4 powershell disk-partitioning windows-server-2012 windows-server-2012-r2
我有一台配置了多个磁盘的服务器.一个用于OS,一个用于程序等,其余的将安装到空的NTFS文件夹.
Disk 0: C:
Disk 1: G:
Disk 2: G:\Folder01\
Disk 3: G:\Folder02\
Run Code Online (Sandbox Code Playgroud)
这通过GUI非常简单:https://technet.microsoft.com/en-us/library/cc753321.aspx
但是,我需要自动化,所以我需要弄清楚如何使用PowerShell执行此操作.我遇到了几个死胡同:
我以为我在Get-Disk,Initialize-Disk和New-Partition方面取得了一些进展
$Disk = Get-Disk 2
$Disk | Initialize-Disk -PartitionStyle MBR
$Disk | New-Partition -UseMaximumSize -MbrType IFS
$Partition = Get-Partition -DiskNumber $Disk.Number
Run Code Online (Sandbox Code Playgroud)
从这里,我希望做的事情如下:
New-Volume $Partition -FriendlyName Folder01 -AccessPath F:\Folder01 -FileSystem NTFS
Run Code Online (Sandbox Code Playgroud)
但这并没有产生任何输出,我注意到在我创建分区之前,它也创建了一个卷.
我认为New-Volume可能是错误的命令,因为帮助表明输入对象应该是MSFT_StoragePool对象.
我尝试使用以下命令进行一些操作:Get-PhysicalDisk,New-StoragePool,Get-StoragePool
$Disk = Get-PhysicalDisk -FriendlyName PhysicalDisk2
New-StoragePool -FriendlyName Pool2 -StorageSubsystemFriendlyName "Storage Spaces*" -PhysicalDisks $Disk
$Pool = Get-StoragePool Pool2
New-Volume -FriendlyName Folder01 -AccessPath G:\Folder01 -FileSystem NTFS -InputObject $Pool
Run Code Online (Sandbox Code Playgroud)
但是我在这一点上只收到一条错误消息,我认为这很奇怪,因为我能够使用Get-Member确认$ Pool是MSFT_StoragePool.
我还注意到,在创建该存储池后,我的磁盘从磁盘管理中消失,不再显示Get-Disk
我认为这表明存储池与我想要的实际完全不同.
如何使用Powershell将驱动器分配给NTFS文件夹?
我需要的Commandlet是Add-PartitionAccessPath
我通过磁盘2上的GUI设置我想要的方式,在磁盘3上创建了一个分区,然后仔细比较了属性.关键在于:
(Get-Partition -DiskNumber 2).AccessPaths
(Get-Partition -DiskNumber 3).AccessPaths
Run Code Online (Sandbox Code Playgroud)
还有一个额外的AccessPath for Disk2,它引导我阅读一些寻找方法的MSDN文章,直到我终于发现已经有一个命令.
以下命令密封了交易:
$Partition | Add-PartitionAccessPath -AccessPath "G:\Folder01"
Run Code Online (Sandbox Code Playgroud)
作为参考,这是完整的解决方案:
$Disk = Get-Disk 3
# $Disk | Clear-Disk -RemoveData -Confirm:$false
$Disk | Initialize-Disk -PartitionStyle MBR
$disk | New-Partition -UseMaximumSize -MbrType IFS
$Partition = Get-Partition -DiskNumber $Disk.Number
$Partition | Format-Volume -FileSystem NTFS -Confirm:$false
New-Item -ItemType Directory -Path "G:\Folder01"
$Partition | Add-PartitionAccessPath -AccessPath "G:\Folder01"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14892 次 |
| 最近记录: |