Powershell Active Directory Get-ADComputer输入

时间:2017-01-27 19:16:10

标签: powershell active-directory

我正在尝试编写一个允许我执行以下操作的Powershell脚本:

  1. 使用Get-ADGroupMember获取特定群组的用户
  2. 使用Get-ADUser中第一步的信息获取姓氏,名字格式
  3. 的用户信息
  4. 使用Get-ADComputer中步骤2的字符串搜索所有计算机的描述字段,以查找在其描述字段中包含该字符串的计算机。
  5. 以下是我的尝试(认为它会起作用):

    Get-ADGroupMember'组名'| Get-ADUser -Properties givenName,sn |选择givenName,sn | Get-ADComputer -filter'描述 - 像“$ sn,$ givenName ”' - 属性描述|选择姓名*

    大胆的文字有效,我知道斜体文字不起作用,但这就是我认为它会起作用的格式

    如果我发了任何东西,请告诉我,绝对是Powershell新手

    TLDR:尝试根据特定AD群组的搜索获取用户名和他们的计算机名称

1 个答案:

答案 0 :(得分:1)

在管道中的那一点,您不再直接使用Get-ADUser的输出对象作为Get-ADComputer的输入对象。 ForEach-Object cmdlet所在的位置。它需要一个脚本块,允许您为管道中的每个项目定义行为:

Get-ADGroupMember 'Group Name' | 
    Get-ADUser -Properties givenName, sn | 
    ForEach-Object -Process {
        $sn = $_.sn
        $givenName = $_.givenName

        Get-ADComputer -Filter 'description -like "$sn,$givenName"' -property description
    } | select Name*