如何使用powershell通过映射类型名称分配可用驱动符?



我想为一个特定的卷分配一个驱动程序。但是我不知道哪个驱动信是可用的,所以我使用循环来检查可用的信。我试过这种方式,但它总是返回到输入分区号。

$DriveLetterList = 90..65 | ForEach-Object {[char]$_ }
foreach($list in $DriveLetterList){
$Get = Get-Partition | Where-Object{$_.Type -eq "Recovery"} | Set-Partition $list
if ($null -eq $Get) {
Start-Sleep -s 1
$n = 0
while ($null -ne $Get) {
$n++
Break
}
}
}  

任何人可以帮助我这个真的很感激。非常感谢

看起来可以简化很多,您只需要首先获得所有分区,然后过滤不在已使用字母数组中的数组字符。从那里,它只是获得Recovery分区并为其设置一个新字母。

我使用| Select-Object -First 1来选择第一个可用的字符,但是,您可以将其更改为| Get-Random来选择一个随机可用的字符。

$partitions = Get-Partition
$newLetter  = [char[]] ([char]'A'..[char]'Z') |
Where-Object { $_ -notin $partitions.DriveLetter } |
Select-Object -First 1
$partitions | Where-Object { $_.Type -eq "Recovery" } |
Set-Partition -NewDriveLetter $newLetter

最新更新