public/Dismount-WindowsInstallMedia.ps1
|
<#
.SYNOPSIS Dismounts a previously mounted Windows ISO. .DESCRIPTION Dismounts an ISO by path or by passing the object returned from Mount-WindowsInstallMedia. .PARAMETER ImagePath Path to the mounted ISO image. .PARAMETER InputObject Object returned by Mount-WindowsInstallMedia. .EXAMPLE $mount = Mount-WindowsInstallMedia -Path 'D:\ISO\Win.iso' Dismount-WindowsInstallMedia -InputObject $mount #> function Dismount-WindowsInstallMedia { [CmdletBinding(DefaultParameterSetName = 'ByPath', SupportsShouldProcess)] param( [Parameter(Mandatory, ParameterSetName = 'ByPath')] [string] $ImagePath, [Parameter(Mandatory, ValueFromPipeline, ParameterSetName = 'ByObject')] [psobject] $InputObject ) process { if ($PSCmdlet.ParameterSetName -eq 'ByObject') { $ImagePath = [string] $InputObject.ImagePath } if ([string]::IsNullOrWhiteSpace($ImagePath)) { throw "ImagePath is required to dismount media." } if ($PSCmdlet.ShouldProcess($ImagePath, 'Dismount-DiskImage')) { Write-Verbose "Dismounting image: $ImagePath" $dismountDiskImageParams = @{ ImagePath = $ImagePath } $null = Dismount-DiskImage @dismountDiskImageParams } } } |