@@ -107,18 +107,16 @@ function ConvertTo-GzCliXml {
107107 $BufferedStream = New-Object -TypeName System.IO.BufferedStream($GZipStream, 8192)
108108 $xw = [System.Xml.XmlTextWriter]::Create($BufferedStream)
109109 $serializer = $ctor.Invoke($xw)
110- $method = $type.GetMethod('Serialize', 'nonpublic,instance', $null, [type[]]@([object]), $null)
111- $done = $type.GetMethod('Done', [System.Reflection.BindingFlags]'nonpublic,instance')
112110 }
113111 process {
114112 try {
115- [void]$method.Invoke($ serializer, $InputObject)
113+ [void]$type.InvokeMember('Serialize', 'InvokeMethod,NonPublic,Instance', $null, $ serializer, [object[]]@( $InputObject) )
116114 } catch {
117115 write-warning "Could not serialize $($InputObject.gettype()): $_"
118116 }
119117 }
120118 end {
121- [void]$done.invoke( $serializer, @())
119+ [void]$type.InvokeMember('Done', 'InvokeMethod,NonPublic,Instance', $null, $serializer, @())
122120 $xw.Close()
123121 $BufferedStream.Flush()
124122 $BufferedStream.Dispose()
@@ -133,7 +131,7 @@ function ConvertTo-GzCliXml {
133131 $MemoryStream.Dispose()
134132
135133 # Cleanup
136- Remove-Variable -Name type, ctor, MemoryStream, GZipStream, xw, serializer, method, done
134+ Remove-Variable -Name type, ctor, MemoryStream, GZipStream, xw, serializer
137135 }
138136}
139137
@@ -158,12 +156,10 @@ function ConvertFrom-GzCliXml {
158156 $GZipStream = New-Object -TypeName System.IO.Compression.GZipStream($MemoryStream, [System.IO.Compression.CompressionMode]::Decompress, $false)
159157 $xr = [System.Xml.XmlTextReader]::Create($GZipStream)
160158 $deserializer = $ctor.Invoke($xr)
161- $method = @($type.GetMethods('nonpublic,instance') | Where-Object {$_.Name -like "Deserialize"})[1]
162- $done = $type.GetMethod('Done', [System.Reflection.BindingFlags]'nonpublic,instance')
163- while (!$done.Invoke($deserializer, @()))
159+ while (!$type.InvokeMember('Done', 'InvokeMethod,NonPublic,Instance', $null, $deserializer, @()))
164160 {
165161 try {
166- $method.Invoke($ deserializer, "" )
162+ $type.InvokeMember('Deserialize', 'InvokeMethod,NonPublic,Instance', $null, $ deserializer, @() )
167163 } catch {
168164 Write-Warning "Could not deserialize ${string}: $_"
169165 }
@@ -173,7 +169,7 @@ function ConvertFrom-GzCliXml {
173169 $MemoryStream.Dispose()
174170
175171 # Cleanup
176- Remove-Variable -Name type, ctor, MemoryStream, GZipStream, xr, deserializer, method, done
172+ Remove-Variable -Name type, ctor, MemoryStream, GZipStream, xr, deserializer
177173 }
178174}
179175
@@ -196,26 +192,24 @@ function Export-GzCliXml {
196192 $BufferedStream = New-Object -TypeName System.IO.BufferedStream($GZipStream, 8192)
197193 $xw = [System.Xml.XmlTextWriter]::Create($BufferedStream)
198194 $serializer = $ctor.Invoke($xw)
199- $method = $type.GetMethod('Serialize', 'nonpublic,instance', $null, [type[]]@([object]), $null)
200- $done = $type.GetMethod('Done', [System.Reflection.BindingFlags]'nonpublic,instance')
201195 }
202196 process {
203197 try {
204- [void]$method.Invoke($ serializer, $InputObject)
198+ [void]$type.InvokeMember('Serialize', 'InvokeMethod,NonPublic,Instance', $null, $ serializer, [object[]]@( $InputObject) )
205199 } catch {
206200 write-warning "Could not serialize $($InputObject.gettype()): $_"
207201 }
208202 }
209203 end {
210- [void]$done.invoke( $serializer, @())
204+ [void]$type.InvokeMember('Done', 'InvokeMethod,NonPublic,Instance', $null, $serializer, @())
211205 $xw.Close()
212206 $BufferedStream.Flush()
213207 $BufferedStream.Dispose()
214208 $GZipStream.Dispose()
215209 $FileStream.Dispose()
216210
217211 # Cleanup
218- Remove-Variable -Name type, ctor, FileStream, GZipStream, xw, serializer, method, done
212+ Remove-Variable -Name type, ctor, FileStream, GZipStream, xw, serializer
219213 }
220214}
221215
@@ -238,12 +232,10 @@ function Import-GzCliXml {
238232 $GZipStream = New-Object -TypeName System.IO.Compression.GZipStream($FileStream, [System.IO.Compression.CompressionMode]::Decompress, $false)
239233 $xr = [System.Xml.XmlTextReader]::Create($GZipStream)
240234 $deserializer = $ctor.Invoke($xr)
241- $method = @($type.GetMethods('nonpublic,instance') | Where-Object {$_.Name -like "Deserialize"})[1]
242- $done = $type.GetMethod('Done', [System.Reflection.BindingFlags]'nonpublic,instance')
243- while (!$done.Invoke($deserializer, @()))
235+ while (!$type.InvokeMember('Done', 'InvokeMethod,NonPublic,Instance', $null, $deserializer, @()))
244236 {
245237 try {
246- $method.Invoke($ deserializer, "" )
238+ $type.InvokeMember('Deserialize', 'InvokeMethod,NonPublic,Instance', $null, $ deserializer, @() )
247239 } catch {
248240 Write-Warning "Could not deserialize ${string}: $_"
249241 }
@@ -256,7 +248,7 @@ function Import-GzCliXml {
256248 end
257249 {
258250 # Cleanup
259- Remove-Variable -Name type, ctor, FileStream, GZipStream, xr, deserializer, method, done
251+ Remove-Variable -Name type, ctor, FileStream, GZipStream, xr, deserializer
260252 }
261253}
262254
@@ -6022,7 +6014,10 @@ function Export-SqlServerInventoryDatabaseEngineConfigToExcel {
60226014 $WorksheetData[$Row,$Col++] = $_.IsSystemObject
60236015 $WorksheetData[$Row,$Col++] = $_.HasBlankPassword
60246016 $WorksheetData[$Row,$Col++] = $_.HasNameAsPassword
6025- $WorksheetData[$Row,$Col++] = ($_.Member | Where-Object { $_.Sid } | ForEach-Object { $_.NTAccountName } | Sort-Object) -join $Delimiter
6017+ $WorksheetData[$Row,$Col++] = $(
6018+ $Member = ($_.Member | Where-Object { $_.Sid } | ForEach-Object { $_.NTAccountName } | Sort-Object) -join $Delimiter
6019+ if ($Member.Length -gt 5000) { $Member.Substring(0, 4997) + '...' } else { $Member }
6020+ )
60266021 $Row++
60276022 }
60286023 }
0 commit comments