powershell - 使用 PowerShell 为驱动器分配挂载点文件夹路径

标签 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-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

从这里开始,我希望做一些类似的事情:

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

但这不会产生任何输出,我注意到之前创建分区时,它也创建了一个卷。

我在想 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

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

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

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

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

最佳答案

我需要的命令行开关是 Add-PartitionAccessPath

我通过磁盘 2 上的 GUI 按照我想要的方式进行设置,在磁盘 3 上创建了一个分区,然后仔细比较了属性。
关键在这里:

(Get-Partition -DiskNumber 2).AccessPaths
(Get-Partition -DiskNumber 3).AccessPaths

还有一个额外的 Disk2 访问路径,这让我在寻找方法的 MSDN 文章中找到了一些,直到我最终发现已经有了它的命令。

以下命令完成了交易:

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

作为引用,这里是完整的解决方案:

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

关于powershell - 使用 PowerShell 为驱动器分配挂载点文件夹路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32192483/

相关文章:

windows-8 - 在 Windows 8/Server 2012 中 deDE 中 NaN 的本地化返回 "NaN"而不是 "n. def."

ssl - 在 IIS 8.5 中设置具有多个绑定(bind)的 SSL 站点

jenkins - 更新后无法在Windows中启动Jenkins服务

powershell脚本忽略回车

powershell - 如果可以运行包含选项的命令,如何使用Powershell进行验证?

powershell - 如何替换管道内的字符串?

powershell - 在哈希表中搜索一个键并平均关联值 Powershell

installation - 在 Windows Server 2012 上安装 AppFabric 1.1 出现错误

windows-server-2012-r2 - 为什么这种使用共享文件夹的 DSC 文件资源只成功一次?

windows - 如何测试Windows Server是否完全更新? (尝试创建更新/重启循环脚本)