public/Get-LocalGroupMembers.ps1
function Get-LocalGroupMembers { <# .SYNOPSIS Returns local group members .DESCRIPTION I hate repeating myself .PARAMETER ComputerName Name of computer (if remote). Default = 'localhost' .PARAMETER GroupName Name of local group. Default = 'Administrators' .NOTES Adapted from https://gallery.technet.microsoft.com/scriptcenter/List-local-group-members-c25dbcc4 .LINK https://github.com/Skatterbrainz/ds-utils/blob/master/docs/Get-LocalGroupMembers.md #> [CmdletBinding()] [OutputType()] param ( [parameter(ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)] [Alias("Name")] [string]$ComputerName = 'localhost', [parameter()][Alias('Group')][string]$GroupName = "Administrators" ) begin {} process { $ComputerName = $ComputerName.Replace("`$", '') $arr = @() $hostname = (Get-WmiObject -ComputerName $ComputerName -Class Win32_ComputerSystem).Name $wmi = Get-WmiObject -ComputerName $ComputerName -Query "SELECT * FROM Win32_GroupUser WHERE GroupComponent=`"Win32_Group.Domain='$Hostname',Name='$GroupName'`"" if ($null -ne $wmi) { foreach ($item in $wmi) { $data = $item.PartComponent -split "\," $domain = ($data[0] -split "=")[1] $name = ($data[1] -split "=")[1] $arr += ("$domain\$name").Replace("""","") [Array]::Sort($arr) } } return $arr } end {} } |