$foo | Export-CliXml foo.xml
потом позже
$foo = Import-CliXml foo.xml
Обратите внимание, что если $ foo представляет живой объект, при его восстановлении вы получите только его свойства. Однако информация о типе более или менее сохраняется. Например, если вы сохраните объект System.Diagnostics.Process, при его повторной гидратации у вас будет объект Deserialzed.System.Diagnostics.Process.
Кстати, если вам нужно сохранить / получить несколько переменных, вы можете сделать это следующим образом:
Get-Variable bla* | Export-Clixml vars.xml
Import-Clixml .\vars.xml | %{ Set-Variable $_.Name $_.Value }