This script you write all groups and their members
$objRoot = [ADSI]"WinNT://."
If ($objRoot.Name -eq $null)
{
Write-Host "Computer wasn't connected"
}
else
{
If ($objRoot.Name -eq "."){$strComputerName = (get-content
env:COMPUTERNAME)}else {$strComputerName = $objRoot.Name}
"Local accounts on computer $strComputerName`n"
"Groups:"
Foreach ($objDirEntry in $objRoot.psbase.get_Children())
{
if ("Group" -eq $objDirEntry.psbase.Get_SchemaClassName())
{
$objDirEntry.Name
if (@($objDirEntry.psbase.Invoke("Members")).Count -eq 0)
{
" This group hasn't an members.`n"
}
else
{
" Members:"
$objDirEntry.psbase.Invoke("Members") |Format-Table -HideTableHeader
@{e={""};w=6}, @{e={$_.GetType().InvokeMember("Name", 'GetProperty', $null,
$_, $null)};w=21}, @{e={$_.GetType().InvokeMember("Class", 'GetProperty',
$null, $_, $null)};w=8}, @{e={$_.GetType().InvokeMember("AdsPath",
'GetProperty', $null, $_, $null)};w=50}
}
}
}
}
AlKos
"VB" wrote:
> What is the equivalent in PS of the bellow code (cannot find .members in
> PS):
>
>
>
> strComputer = "atl-fs-01"
>
> Set colGroups = GetObject("WinNT://" & strComputer & "/Administrators")
>
> For Each objUser In colGroups.Members
> Wscript.Echo objUser.Name
> Next
>
>
>
> Thanks,
>
> VB
>
>
>