Issue
A customized job fails with the error message
Exception of type 'System.OutOfMemoryException' was thrown
Cause
This can be caused when a hashtable is passed to the Out-File cmdlet
$hashtable = @{
Key1 = 'value1'
Key2 = 'value2'
}
Out-File -InputObject $hashtable -LiteralPath "C:\TEMP\outfile.txt" -Force -NoClobber -Encoding utf8 -Append
We suspect that there are other possible causes, but couldn't verify this. Please contact our support if you encounter this issue in any other situation.
Solution
You can work around this issue by passing a string to the Out-File cmdlet. You can use the below function to convert any hashtable into a multiline string.
function Convert-HashtableToString {
param([Hashtable]$Hashtable)
$out = ""
foreach ($item in $Hashtable.GetEnumerator()) {
$out += "{0} = {1}`r`n" -f $item.Key, $item.Value
}
return $out
}
$hashtable = @{
Key1 = 'value1'
Key2 = 'value2'
}
Out-File -InputObject (Convert-HashtableToString -Hashtable $hashtable) -LiteralPath "C:\TEMP\outfile.txt" -Force -NoClobber -Encoding utf8 -Append