首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用PowerShell将装载点文件夹路径分配给驱动器

使用PowerShell将装载点文件夹路径分配给驱动器
EN

Stack Overflow用户
提问于 2015-08-25 06:04:07
回答 4查看 23.5K关注 0票数 8

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

代码语言:javascript
复制
Disk 0: C:
Disk 1: G:
Disk 2: G:\Folder01\
Disk 3: G:\Folder02\

通过图形用户界面这是相当简单的:https://technet.microsoft.com/en-us/library/cc753321.aspx

但是,我需要自动化,所以我需要弄清楚如何使用PowerShell来实现这一点。我遇到了几个死胡同:

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

代码语言:javascript
复制
$Disk = Get-Disk 2
$Disk | Initialize-Disk -PartitionStyle MBR
$Disk | New-Partition -UseMaximumSize -MbrType IFS
$Partition = Get-Partition -DiskNumber $Disk.Number

从这里开始,我希望这样做:

代码语言:javascript
复制
New-Volume $Partition -FriendlyName Folder01 -AccessPath F:\Folder01 -FileSystem NTFS

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

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

我试着用如下命令沿着这条路走下去:Get-PhysicalDiskNew-StoragePoolGet-StoragePool

代码语言:javascript
复制
$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文件夹?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-08-25 07:49:50

我需要的Commandlet是Add-PartitionAccessPath

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

代码语言:javascript
复制
(Get-Partition -DiskNumber 2).AccessPaths
(Get-Partition -DiskNumber 3).AccessPaths

还有一个用于Disk2的额外的AccessPath,它引导我浏览了大量寻找方法的MSDN文章,直到我最终发现已经有了它的命令。

以下命令已完成交易:

代码语言:javascript
复制
$Partition | Add-PartitionAccessPath -AccessPath "G:\Folder01"

作为参考,下面是完整的解决方案:

代码语言:javascript
复制
$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"
票数 15
EN

Stack Overflow用户

发布于 2015-08-25 06:17:45

如何使用Command Line将驱动器分配给Powershell中的NTFS文件夹:

代码语言:javascript
复制
cmd /c 'subst G: "C:\Folder1"'

注: Explorer显示的文件夹大小与C:相同。

票数 2
EN

Stack Overflow用户

发布于 2021-02-05 23:18:00

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

要查找驱动器/卷名称,请执行以下操作:

代码语言:javascript
复制
MOUNTVOL

要删除驱动器号,请改为装载在空的NTFS文件夹上:

代码语言:javascript
复制
mountvol e: /d
mountvol c:\<path> <volume name> 
eg. mountvol c:\fakedisk\ \\?\Volume{########-####-####-####-############}\

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

在Win 10 CMD上测试

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32192483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档