Ответ 1
Get-Unique также требует отсортированного списка, и я предполагаю, что вы, вероятно, захотите сохранить порядок выполнения. Попробуйте это вместо
Get-History -Count 32767 | Group CommandLine | Foreach {$_.Group[0]} |
Export-Clixml "$home\pshist.xml"
В этом подходе используется командлет Group-Object для создания уникальных кодов команд а затем блок Foreach-Object просто захватывает первый элемент в каждом ковше.
Кстати, если вы хотите, чтобы все команды были сохранены в файле истории, я бы использовал предельное значение - 32767 - если это не то, что вы задали $MaximumHistoryCount.
BTW, если вы хотите автоматически сохранить это при выходе, вы можете сделать это на 2.0, например так
Register-EngineEvent PowerShell.Exiting {
Get-History -Count 32767 | Group CommandLine |
Foreach {$_.Group[0]} | Export-CliXml "$home\pshist.xml" } -SupportEvent
Затем для восстановления при загрузке все, что вам нужно, это
Import-CliXml "$home\pshist.xml" | Add-History