Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 获取具有其他用户对象属性的所有用户组_Powershell - Fatal编程技术网

Powershell 获取具有其他用户对象属性的所有用户组

Powershell 获取具有其他用户对象属性的所有用户组,powershell,Powershell,我是powershell新手,希望了解如何以以下格式获取属于用户的组以及其他用户对象属性(重复每个组的用户和电子邮件): 我知道这会获得用户组,但不确定如何包括其他用户对象,并以上述格式重复: Get-ADPrincipalGroupMembership username | select name 您需要获取ADUser对象,展开它们的memberof属性,迭代这些对象,并获取每个对象的广告组 $username = "PowerShellGuy" $adUserObj

我是powershell新手,希望了解如何以以下格式获取属于用户的组以及其他用户对象属性(重复每个组的用户和电子邮件):

我知道这会获得用户组,但不确定如何包括其他用户对象,并以上述格式重复:

Get-ADPrincipalGroupMembership username | select name

您需要获取ADUser对象,展开它们的memberof属性,迭代这些对象,并获取每个对象的广告组

$username = "PowerShellGuy"
$adUserObj = Get-ADUser -Filter "SamAccountName -eq '$username'" -properties memberof
$groups = $adUserObj.MemberOf | Get-ADgroup
你可以这样画一行

Get-ADUser -Filter "SamAccountName -eq 'PowerShellGuy'" -properties memberof | % memberof | Get-ADgroup
Class CustomAdInfo 
{
    $UserName
    $Email
    $Group
}

$listOfUsers = @("foo","bar")

$customObjects = 
    foreach($user in $listOfUsers)
    {
        $adUserObj = Get-ADUser -Filter "SamAccountName -eq '$user'" -properties memberof, emailaddress
        $groups = $adUserObj.MemberOf | Get-ADgroup
        foreach($group in $groups)
        {
            New-Object -TypeName CustomAdInfo -Property @{
                UserName = $adUserObj.SamAccountName
                Email = $adUserObj.EmailAddress
                Group = $group
            }
        }
    }
如果需要自定义格式,可以构建自定义psobject或自定义类。我更喜欢课堂教学法

Class CustomAdInfo 
{
    $UserName
    $Email
    $Group
}
如果你想每人一组,那么你可以这样做

Get-ADUser -Filter "SamAccountName -eq 'PowerShellGuy'" -properties memberof | % memberof | Get-ADgroup
Class CustomAdInfo 
{
    $UserName
    $Email
    $Group
}

$listOfUsers = @("foo","bar")

$customObjects = 
    foreach($user in $listOfUsers)
    {
        $adUserObj = Get-ADUser -Filter "SamAccountName -eq '$user'" -properties memberof, emailaddress
        $groups = $adUserObj.MemberOf | Get-ADgroup
        foreach($group in $groups)
        {
            New-Object -TypeName CustomAdInfo -Property @{
                UserName = $adUserObj.SamAccountName
                Email = $adUserObj.EmailAddress
                Group = $group
            }
        }
    }

您需要获取ADUser对象,展开它们的memberof属性,迭代这些对象,并获取每个对象的广告组

$username = "PowerShellGuy"
$adUserObj = Get-ADUser -Filter "SamAccountName -eq '$username'" -properties memberof
$groups = $adUserObj.MemberOf | Get-ADgroup
你可以这样画一行

Get-ADUser -Filter "SamAccountName -eq 'PowerShellGuy'" -properties memberof | % memberof | Get-ADgroup
Class CustomAdInfo 
{
    $UserName
    $Email
    $Group
}

$listOfUsers = @("foo","bar")

$customObjects = 
    foreach($user in $listOfUsers)
    {
        $adUserObj = Get-ADUser -Filter "SamAccountName -eq '$user'" -properties memberof, emailaddress
        $groups = $adUserObj.MemberOf | Get-ADgroup
        foreach($group in $groups)
        {
            New-Object -TypeName CustomAdInfo -Property @{
                UserName = $adUserObj.SamAccountName
                Email = $adUserObj.EmailAddress
                Group = $group
            }
        }
    }
如果需要自定义格式,可以构建自定义psobject或自定义类。我更喜欢课堂教学法

Class CustomAdInfo 
{
    $UserName
    $Email
    $Group
}
如果你想每人一组,那么你可以这样做

Get-ADUser -Filter "SamAccountName -eq 'PowerShellGuy'" -properties memberof | % memberof | Get-ADgroup
Class CustomAdInfo 
{
    $UserName
    $Email
    $Group
}

$listOfUsers = @("foo","bar")

$customObjects = 
    foreach($user in $listOfUsers)
    {
        $adUserObj = Get-ADUser -Filter "SamAccountName -eq '$user'" -properties memberof, emailaddress
        $groups = $adUserObj.MemberOf | Get-ADgroup
        foreach($group in $groups)
        {
            New-Object -TypeName CustomAdInfo -Property @{
                UserName = $adUserObj.SamAccountName
                Email = $adUserObj.EmailAddress
                Group = $group
            }
        }
    }

没有理由把它复杂化。我添加了Get-ADOU调用,以防您想使用组名而不是可分辨名称

$ouname = "Some OU"

$OU = Get-ADOrganizationalUnit -Filter "name -eq '$ouname'"

Get-ADUser -Filter * -SearchBase $OU -Properties mail | Foreach-Object {
    Foreach($group in Get-ADPrincipalGroupMembership $_)
    {
        [PSCustomObject]@{
            UserName   = $_.samaccountname
            User_Email = $_.mail
            User_Group = $group.name
        }
    }
}

没有理由把它复杂化。我添加了Get-ADOU调用,以防您想使用组名而不是可分辨名称

$ouname = "Some OU"

$OU = Get-ADOrganizationalUnit -Filter "name -eq '$ouname'"

Get-ADUser -Filter * -SearchBase $OU -Properties mail | Foreach-Object {
    Foreach($group in Get-ADPrincipalGroupMembership $_)
    {
        [PSCustomObject]@{
            UserName   = $_.samaccountname
            User_Email = $_.mail
            User_Group = $group.name
        }
    }
}

你如何获得你的用户?意思是你在寻找哪些用户?在ou中使用get ADUser并将其保存在数组对象和循环@DougMaurer中,以获取所有用户您是如何获取用户的?你在寻找哪些用户?希望通过在ou中使用get ADUser并将其保存在数组对象中并循环@Dougmaurer来获取所有用户也有办法将其导出到CSV吗?@just4code是的,只需将
$customObjects
导入到
导出CSV
$customObjects |导出CSV-非类型信息-使用文化-路径“C:\temp\thingy.csv”感谢您的帮助!还有什么方法可以将其导出到csv吗?@just4code是的,只需将
$customObjects
管道导出到
$customObjects
像这样导出csv-非类型信息-使用文化-路径“C:\temp\thingy.csv”感谢您的帮助!