如何使用Powershell更改驱动器标签?

问题描述 投票:0回答:4

我正在尝试安装几个网络驱动器,然后重命名它们。但是,在第一个驱动器重命名正常后,我的 Powershell 脚本失败了。对于第二个,我收到错误:

Exception calling "Put" with "0" argument(s): ""
At C:\Users\ben\Documents\mapdrives.ps1:12 char:11
+ $disk.Put <<<< ()
+ CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException

我的脚本如下所示:

cls
$Username = ""
$Password = ""
$net = New-Object -com WScript.Network; 

$Drive = "M:"
$UNC = "\\server01\bin$"
$net.mapnetworkdrive($Drive, $Unc, $false, $Username, $Password)
$disk = Get-WmiObject "Win32_LogicalDisk WHERE DeviceID='M:'"
if (-not $disk) { return }
$disk.VolumeName = "server1_bin"
$disk.Put()

$Drive = "N:"
$UNC = "\\server01\data$"
$net.mapnetworkdrive($Drive, $Unc, $false, $Username, $Password)
$disk = Get-WmiObject "Win32_LogicalDisk WHERE DeviceID='N:'"
if (-not $disk) { return }
$disk.VolumeName = "server1_data"
$disk.Put()

我做错了什么?

powershell
4个回答
10
投票

尝试像这样使用 comobject 来标记驱动器:

$a = New-Object -ComObject shell.application

$a.NameSpace( "M:\" ).self.name = "server1_bin"

在任何情况下,您都需要以具有管理权限的用户身份运行控制台


0
投票

我已经写了powershell脚本

function ChangeDriveLabel([string]$driveletter,[string]$newlabel )
{    
    $disk = Get-WmiObject -Class win32_volume -Filter "DriveLetter = '$driveletter'"

    Set-WmiInstance -input $disk -Arguments @{ Label=$newlabel}

}

ChangeDriveLabel -driveletter 'e:' -newlabel 'DBLOG'

0
投票

您也可以在提示符下运行它

标签c:操作系统 将驱动器标签更改为“OS”

标签d:数据 将驱动器标签更改为“Data”

确认后运行diskpart激活磁盘分区,然后在diskpart提示符下运行命令listvolume以显示卷及其名称


0
投票

您只需使用 PowerShell 即可完成此操作,至少从 2021 年开始(如果不是更早的话):

Set-Volume -FileSystemLabel 'Data' -NewFileSystemLabel 'NewData'
# OR
Set-Volume -DriveLetter 'a' -NewFileSystemLabel 'NewData'

我今天从 PowerShell 社区帖子的此评论中了解到了这一点(该帖子本身描述了 ExploringApple 描述的 WIM 方法)。

© www.soinside.com 2019 - 2024. All rights reserved.