Get-Unique также требует отсортированный список, и я предполагаю, что вы, вероятно, хотите
сохранить порядок исполнения. Попробуйте вместо этого
Get-History -Count 32767 | Group CommandLine | Foreach {$_.Group[0]} |
Export-Clixml "$home\pshist.xml"
Этот подход использует командлет Group-Object для создания уникальных групп команд
и затем блок Foreach-Object просто захватывает первый элемент в каждой корзине.
Кстати, если вы хотите, чтобы все команды были сохранены в файле истории, я бы использовал предельное значение
- 32767 - если только для этого параметра не установлено значение $ MaximumHistoryCount.
Кстати, если вы хотите автоматически сохранить это при выходе, вы можете сделать это на 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