我是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执行脚本,但我可以执行一行。任何建议将不胜感激
答案 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...