Powershell — вывод в текстовое поле

#powershell #powershell-3.0

#powershell #powershell-3.0

Вопрос:

Я создаю базовый графический интерфейс для внутреннего персонала для совместного использования календарей от имени других пользователей.

В настоящее время у меня есть кнопка, чтобы получить права доступа к календарю. Как мне обновить текстовое поле с именем ‘calendarGetOutput?’

     $User = $inputCalendarGet.Text
    $CalendarGet = Get-MailboxFolderPermission -Identity ${user}:Calendar 
    $calendarGetOutput.text = ???
  

Вывод не многострочный

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

1. Зависит от того, какие свойства вы хотите отобразить.. $calendarGetOutput.Text = ($CalendarGet | Select-Object User, AccessRights | Format-Table -AutoSize | Out-String) Возможно, что-то вроде?

2. @Theo Будет ли это работать аналогичным образом для списка? В идеале он должен отображать более одной строки текста. Разве текстовые поля не могут быть многострочными?

3. Просто установите для многострочного свойства значение $true

Ответ №1:

  1. сделайте ваше текстовое поле намного больше по вертикали, чтобы оно могло содержать более одной строки текста
  2. задайте для него следующие свойства:
     $calendarGetOutput.Font = New-Object System.Drawing.Font 'Consolas', 10  # or any other monospaced font
    $calendarGetOutput.Multiline  = $true
    $calendarGetOutput.WordWrap   = $false
    $calendarGetOutput.ScrollBars = 'Both'
    $calendarGetOutput.Anchor     = 'Left, Top, Right, Bottom'  # so it can grow/shrink with the form
      
  3. получите mailboxpermissions и Format-Table создайте красивое табличное представление из интересующих вас свойств и добавьте обработчик нажатия кнопки, который делает это:
     $theButton.Add_Click({ 
        $User = $inputCalendarGet.Text
        $Perms = Get-MailboxFolderPermission -Identity ${user}:Calendar
        $calendarGetOutput.Text = $Perms | Select-Object User, AccessRights | 
                                  Format-Table -AutoSize | Out-String
    })
      

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

1. С таблицей разрешений, похоже, отображаются разрешения вошедшего в систему пользователя вместо ввода текстового поля?

2. @Elliottconnor2 Конечно, у вас может не быть доступа к некоторым параметрам, если они не включены в назначенные вам разрешения. Можно видеть только то, что разрешено.