Мне нужно найти номер раздела внешнего диска, который содержит определенную папку.
Я попытался использовать Get-Disk | Where-Object
и выполнить фильтрацию по понятному имени «MSFT Virtual Disk», однако при использовании виртуальных сред этоПодход не работает.
Я считаю, что то, что я ищу, нуждается в нескольких переменных, соединенных вместе, но, учитывая, что я достаточно новичок в PowerShell, я подумал, что я должен спросить мнения.
- Мойпредыдущая попытка использовала жестко закодированный подход, находя виртуальный диск и присоединяя его, затем вызывая ожидаемый раздел.
$Foldername = Get-ChildItem E:\Media$\windowsimagebackup\$PCN\backup*
$Foldername = "E:\Media$\windowsimagebackup\$PCN\" + $Foldername.Name
$VHDName = Get-ChildItem $Foldername *.vhdx | Where-Object {$_.Length -GT 1000000000}
$VHDName = $VHDName.Name
$path = $Foldername + "\" + $VHDName
Mount-DiskImage -ImagePath $path
$DiskNumber = Get-Disk | Where-Object {$_.FriendlyName -Eq "Msft Virtual Disk"}
$DiskNumber = $DiskNumber.Number
Set-Partition -PartitionNumber 2 -DiskNumber $DiskNumber -NewDriveLetter M
- То, что я надеялся сделать, это что-то вроде
- Список всех активных дисков
$Disks = Get-Disk | ##Filter the Results to display active drive letters##
- Протестируйте каждый диск, чтобы увидеть, существует ли путь
$Test = Test-Path $Disk.Driveletter\$Path
Установите переменнуюдля диска и раздела, который содержит требуемый путь
Некоторая форма перехвата ошибок, если сценарий находит 2 диска, которые соответствуют пути