powershell 在Windows 10中检测驱动器号更改并重新分配(USB驱动器号)

6jygbczu  于 2023-01-30  发布在  Shell
关注(0)|答案(2)|浏览(240)

Windows(10)会时不时地交换我的2个连接的USB Type 3设备的分配驱动器号。因此,与其使用J:具有标签“keedrive”和V:带有标签“次要”,Windows有时会将它们交换,J:变为“次要”,V:“keedrive”。我试图有一个批处理脚本,将检查驱动器号是否已更改,如果是这样,重置他们,因为他们是。
目前,我必须手动重新分配与Diskpart实用程序的字母。
我读过关于How to run a PowerShell script from a batch fileHow do I capture the output into a variable from an external process in PowerShell的文章,试图获得一个工作脚本。到目前为止,我陷入了将PowerShell命令的输出转换为变量的困境,不知道如何根据DeviceID设置检查驱动器盘符的条件,并随后相应地重新分配盘符。请帮助。提前感谢。
这是我设计的PowerShell命令
获取CIM示例-类名CIM存储卷|格式-表-属性设备ID、驱动器号、标签|T形对象变量UsBDrvLetters

htzpubme

htzpubme1#

$Drive = Get-CimInstance -ClassName Win32_Volume -Filter "DeviceID = '<YourDeviceID>'"
$Drive | Set-CimInstance -Property @{DriveLetter ='<DesiredLetter>:'}

第一个命令返回CimInstance对象,第二个命令将其传输到set-CimInstance。
有关此主题的更多信息:
https://devblogs.microsoft.com/powershell-community/changing-drive-letters-and-labels-via-powershell/

s3fp2yjn

s3fp2yjn2#

我最终使脚本工作起来,尽管使用Win32_Volume类的另一个属性(SerialNumber)进行筛选。
$Drive =获取-CimInstance-类名Win32_Volume-筛选器'序列号,如"6316615927"'
$驱动器|设置CimInstance属性@{驱动器号='G:'}
该过滤也适用于"标签"属性。
我仍然很好奇/困惑为什么我不能用"DeviceID"属性过滤;因此,我非常非常高兴看到解决办法。
谢谢你。

相关问题