使用PowerShell为驱动器分配装入点文件夹路径

时间:2015-08-24 22:04:07

标签: powershell windows-server-2012 windows-server-2012-r2 disk-partitioning

我有一台配置了多个磁盘的服务器。一个用于操作系统,一个用于程序等,其余用于安装到空的NTFS文件夹。

Disk 0: C:
Disk 1: G:
Disk 2: G:\Folder01\
Disk 3: G:\Folder02\

通过GUI,这是非常简单的:https://technet.microsoft.com/en-us/library/cc753321.aspx

但是,我需要自动化,所以我需要弄清楚如何使用PowerShell执行此操作。 我遇到了几个死胡同:

我认为我在Get-DiskInitialize-DiskNew-Partition方面取得了一些进展

$Disk = Get-Disk 2
$Disk | Initialize-Disk -PartitionStyle MBR
$Disk | New-Partition -UseMaximumSize -MbrType IFS
$Partition = Get-Partition -DiskNumber $Disk.Number

从这里,我希望做一些像:

New-Volume $Partition -FriendlyName Folder01 -AccessPath F:\Folder01 -FileSystem NTFS

但这并没有产生任何输出,我注意到在我创建分区之前,它也创建了一个卷。

我认为New-Volume可能是错误的命令,因为帮助表明输入对象应该是MSFT_StoragePool对象。

我尝试使用以下命令进行一些操作:Get-PhysicalDiskNew-StoragePoolGet-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

但是我刚刚收到一条错误消息,指出无效参数,我认为这很奇怪,因为我能够使用Get-Member确认$ Pool是MSFT_StoragePool。

我还注意到,在创建该存储池后,我的磁盘从磁盘管理中消失,不再显示Get-Disk

我认为这表明存储池与我想要的实际完全不同。

如何使用Powershell将驱动器分配给NTFS文件夹?

2 个答案:

答案 0 :(得分:0)

在运行此命令之前,请确保该文件夹存在:

$Partition | Add-PartitionAccessPath -AccessPath "G:\Folder01"

答案 1 :(得分:0)

如果您正在考虑将文件放入某个文件夹,并希望它们最终存储在某个磁盘上,那么 MOUNTVOL

要查找驱动器/卷名称:

MOUNTVOL

删除驱动器号并安装在一个空的 NTFS 文件夹上:

mountvol e: /d
mountvol c:\<path> <volume name> 
eg. mountvol c:\fakedisk\ \\?\Volume{########-####-####-####-############}\

所以在上面的例子中,每次写入 c:\fakedisk\ 文件夹时,数据最终都会在以前的 e: 驱动器(磁盘/设备)中。这与 subst 相反,后者“将路径与驱动器号相关联 ",因此写入驱动器的数据将存储在该路径/文件夹中。

在 Win 10 上测试 指令