PoshCode Archive  Artifact [2de8e85003]

Artifact 2de8e850035af73198cac1176bcdffb666f817a086674fc8d1190369c5156b8b:

  • File Find-Local-Group-Members.ps1 — part of check-in [c2e19ff594] at 2018-06-10 13:27:47 on branch trunk — Find matching members in a local group (user: Hal Rottenberg size: 1262)

# encoding: ascii
# api: powershell
# title: Find Local Group Members
# description: Find matching members in a local group
# version: 0.1
# author: Hal Rottenberg
# license: CC0
# x-poshcode-id: 3572
# x-archived: 2016-05-20T03:53:01
# x-published: 2013-08-13T02:51:00
#
#
# Author: Hal Rottenberg
# Purpose: Find matching members in a local group
# Used tip from RichS here: http://powershellcommunity.org/Forums/tabid/54/view/topic/postid/1528/Default.aspx

# Change these two to suit your needs
$ChildGroups = "Domain Admins", "Group Two"
$LocalGroup = "Administrators"

$MemberNames = @()
# uncomment this line to grab list of computers from a file
# $Servers = Get-Content serverlist.txt
$Servers = $env:computername # for testing on local computer
foreach ( $Server in $Servers ) {
	$Group= [ADSI]"WinNT://$Server/$LocalGroup,group"
	$Members = @($Group.psbase.Invoke("Members"))
	$Members | ForEach-Object {
		$MemberNames += $_.GetType().InvokeMember("Name", 'GetProperty', $null, $_, $null)
	} 
	$ChildGroups | ForEach-Object {
		$output = "" | Select-Object Server, Group, InLocalAdmin
		$output.Server = $Server
		$output.Group = $_
		$output.InLocalAdmin = $MemberNames -contains $_
		Write-Output $output
	}
}