Private/Get-IntuneWinXML.ps1
Function Get-IntuneWinXML() { param( [Parameter(Mandatory = $true)] $SourceFile, [Parameter(Mandatory = $true)] $fileName ) Test-SourceFile "$SourceFile" try { Add-Type -Assembly System.IO.Compression.FileSystem $archive = [System.IO.Compression.ZipFile]::OpenRead($SourceFile) $file = $archive.Entries | Where-Object { $_.Name -eq $fileName } $stream = $file.Open() $reader = New-Object System.IO.BinaryReader($stream) $output = $reader.ReadBytes($stream.Length) $reader.Close() $stream.Close() [xml]$IntuneWinXML = [System.Text.Encoding]::UTF8.GetString($output) return $IntuneWinXML } catch { Write-Error "Failed to read file '$SourceFile'. Error: $_" } finally { if ($archive) { $archive.Dispose() } } } |