获取OU中每个AD组的所有成员

时间:2018-01-12 17:02:44

标签: powershell active-directory

我是Powershell和AD的新手。我遇到的挑战是能够查询OU以检索该OU中的所有组,然后检索每个组的所有成员。我目前有以下脚本允许我这样做:

$Groups = Get-ADGroup -Filter * -SearchBase "OU=xx,OU=xx xx,DC=xx,DC=xx" -SERVER "xxxxxx" #creates a variable with the name Groups and stores all the groups into it

$Results = foreach( $Group in $Groups ){ #looks for members in each group and stores them in Results
    Get-ADGroupMember -Identity $Group -SERVER "xxxxxx" | Select distinguishedName | foreach {
        [pscustomobject]@{
            GroupName = $Group.Name
            Name = $_
        }
    }
}

$Results| sort -Property GroupName | Export-Csv -Path c:\Temp\groups.csv -NoTypeInformation #stores results in a csv

我遇到的问题是我需要能够在 一行 中执行相同操作,以便我可以运行并将其拉回到Excel(报告)。由于签名,我无法从Excel执行脚本,但我可以执行一行。任何建议将不胜感激

1 个答案:

答案 0 :(得分:1)

您可以使用EncodedCommand选项:

$ScriptText  = Get-Content C:\Path\To\Script.ps1 -Raw
$ScriptBytes = [System.Text.Encoding]::Unicode.GetBytes($ScriptText)
$EncCommand  = [System.Convert]::ToBase64String($ScriptBytes)

现在复制$EncCommand的内容(例如$EncCommand |Set-ClipBoard)并将生成的base64字符串作为命令行参数提供给EncodedCommand命令行开关:

powershell.exe -EncodedCommand JABHAHIAbwB1AHAAcwAgAD0AIABHAGUAdAA...