Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Сценарии для Windows

Модерирует : KLASS, IFkO

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
function Get-DiskImageVolume {
<#
   .SYNOPSIS
   Функция возвращает информацию о томе, если том еще не смонтирован, монтирует
   .DESCRIPTION
   Функция возвращает информацию о томе для образа диска (ISO, VHDx).
   Если том еще не смонтирован, то сперва смонтирует
   .PARAMETER DiskImageFile
   Файл(ы) образа диска (ISO, VHDx)
   .INPUTS
   [System.IO.FileInfo] с информацией о файле образа диска
   Можно указать строку [string] с полным именем файла образа диска
   .OUTPUTS
   [Microsoft.Management.Infrastructure.CimInstance] с информацией о томе
   .NOTES
   Автор:          iNNOKENTIY21
   .EXAMPLE
   Get-DiskImageVolume -DiskImageFile "C:\Test.VHDx"
   ===
   Работа с конкретным диском
   .EXAMPLE
   $DiskImageFile = @(
       "C:\Test.VHDx"
       "C:\ru_windows_10_business_editions_version_1909_x64_dvd_675b5388.iso"
   )
   $DiskImageFile | Get-DiskImageVolume
   ===
   Работа с массивом
   .EXAMPLE
   Get-ChildItem -LiteralPath "С:\*.ISO" | Get-DiskImageVolume
   ===
   Работа с выводом команды Get-ChildItem
#>

   [CmdletBinding()]
   [OutputType([Microsoft.Management.Infrastructure.CimInstance])]
   param (
       # Файл образа диска
       [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)]
       [ValidateNotNullOrEmpty()]
       [ValidateScript({Test-Path -Path $PSItem -PathType Leaf})]
       [Alias("FullName")]
       [IO.FileInfo]
       $DiskImageFile
   )

   process {
       $DiskImage = Get-DiskImage -ImagePath $DiskImageFile

       if ($DiskImage.Attached) {
           switch ($DiskImage.StorageType) {
               1 { $DiskImageVolume = $DiskImage | Get-Volume }
               3 { $DiskImageVolume = $DiskImage | Get-Disk | Get-Partition | Get-Volume }
               Default { throw "Неизвестный тип хранения образа диска" }
           }
       } else {
           switch ($DiskImage.StorageType) {
               1 { $DiskImageVolume = Mount-DiskImage -ImagePath $DiskImageFile | Get-Volume }
               3 { $DiskImageVolume = Mount-DiskImage -ImagePath $DiskImageFile | Get-Disk | Get-Partition | Get-Volume }
               Default { throw "Неизвестный тип хранения образа диска" }
           }
       }

       if (-not (Test-Path -Path ($DiskImageVolume.DriveLetter + ':\'))) {
           throw "Не удалось смонтировать: $DiskImageFile"
       }

       $DiskImageVolume
   }
}

Всего записей: 3521 | Зарегистр. 16-08-2012 | Отправлено: 09:03 18-01-2020 | Исправлено: iNNOKENTIY21, 10:02 18-01-2020
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Сценарии для Windows


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru