Не удается скопировать содержимое из окна `Out-GridView`

#powershell

#powershell

Вопрос:

Я не могу скопировать данные из окна grid при использовании CTRL C. Это просто закрывает окно. Мой код:

 Get-ADUser -Filter * | ForEach-Object -Process {
    Add-Member -InputObject $_ -Name TerminalServicesProfilePath -Force -Membertype NoteProperty -Value (([ADSI]"LDAP://$($_.DistinguishedName)").TerminalServicesProfilePath) -PassThru
} | Select-Object -Property SamAccountName, TerminalServicesProfilePath | Out-GridView
  

Комментарии:

1. Версия Powershell?

2. это версия 5.1.16299.967

3. Не удается воспроизвести. Используете ли вы CTRL C при выбранном ogv окне? или консоли?

4. я выбираю из окна ogv, затем ctrl c. Возможно, один из моих модулей создает проблемы. Я попробовал -noprofile, но проблема все та же

Ответ №1:

Это может решить вашу проблему, а может и не решить, но вместо использования Add-Member (что в данном случае имеет ограниченное применение) попробуйте использовать вычисляемое свойство в вашем конвейере:

 Get-ADUser -Filter * | Select-Object -Property @(
    'SamAccountName'
    @{
        Label      = 'TerminalServicesProfilePath'
        Expression = { ([adsi]"LDAP://$($_.DistinguishedName)").TerminalServicesProfilePath }
    }
) | Out-GridView
  

Если вы используете это в скрипте или что-то в этом роде, то ваша проблема в том, что не используется Wait переключатель вкл Out-GridView . Смотрите документацию здесь.

Комментарии:

1. Приятно, что работает. Все еще не знаю, почему у меня возникла эта проблема.

2. @seyo-IV Я предполагаю , что процесс добавления элемента к объектам возвращал фокус окна на консоль, поэтому, когда вы нажимаете CTRL C, вы фактически отменяете действие.

3. Если [ctrl] [C] прерывается. попробуйте [ctrl] [INS].