【问题标题】:Powershell GUI How can I add column to GridViewPowershell GUI 如何将列添加到 GridView
【发布时间】:2023-01-14 09:03:15
【问题描述】:

这是一个更大的脚本的一部分,确切地说是 1443 行。它根据名字和姓氏从 AD 中提取用户名。我还需要让它从 AD 中提取 Office 名称,以帮助更好地识别具有相同名称的用户。我确定我只是缺少一些简单的东西。

function getacctname {
    $fname = $FirstName.Text
    $lname = $LastName.Text
    Try {
     $User.Text = Get-ADUser -Filter "GivenName -eq '$fname' -and SurName -eq '$lname'" |
        Select-Object -ExpandProperty 'SamAccountName' |
           Out-Gridview -Title 'Windows Logon' -PassThru
           $Email.Text = (Get-ADUser $User.text -Properties mail).mail
}

【问题讨论】:

  • 你是说Get-ADUser -Filter "GivenName -eq '$fname' -and SurName -eq '$lname'" | Select-Object SamAccountName, EmailAddress | Out-Gridview -Title 'Windows Logon' -PassThru
  • 否。“Office”是 Get-Aduser 命令可用的属性之一。在我们的 AD 办公室是城市名称。

标签: powershell scripting active-directory


【解决方案1】:

Out-GridView 根据您提供给它的输入数据动态构建它的列 - 所以为了获得 3 列,创建一个具有 3 个属性的对象!

更改 Select-Object 语句,以便它创建一个对象,该对象的属性与您想要的列相对应,Out-GridView 负责其余的工作:

Get-ADUser -Filter "GivenName -eq '$fname' -and SurName -eq '$lname'" -Properties physicalDeliveryOfficeName |
     Select-Object 'SamAccountName',@{Name='Office';Expression={$_.physicalDeliveryOfficeName}} |
     Out-Gridview -Title 'Windows Logon' -PassThru

如果办公室名称存储在不同的属性中,请将 physicalDeliveryOfficeName 的两次出现替换为相关属性的 ldap 显示名称

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-05
    • 1970-01-01
    • 2014-05-13
    • 2013-04-04
    • 1970-01-01
    • 2021-09-04
    • 1970-01-01
    相关资源
    最近更新 更多