# encoding: ascii # api: powershell # title: Seach-LocalGroupMember # description: search users in the local administrators group on computers domain network # version: 0.1 # type: function # author: Angel-Keeper # license: CC0 # function: Seach-LocalGroupMemberDomenNetwork # x-poshcode-id: 1877 # x-archived: 2013-05-27T19:41:16 # x-published: 2010-05-26T23:10:00 # # function Seach-LocalGroupMemberDomenNetwork() { param( $Domen, $User ) function Ping ($Name){ $ping = new-object System.Net.NetworkInformation.Ping if ($ping.send($Name).Status -eq "Success") {$True} else {$False} trap {Write-Verbose "Error Ping"; $False; continue} } [string[]]$Info [string[]]$Computers if ($User){$Connection = Get-Credential -Credential $User} $Computers = Get-QADComputer -Service $Domen -OSName '*XP*','*Vista*','*7*' -SizeLimit 0 -ErrorAction SilentlyContinue | Select-Object name -ExpandProperty name Foreach ($Computer in $Computers){ $Alive = Ping $Computer if ($Alive -eq "True"){ if ($Connection) { Trap {Write-Host "Error WMI $Computer";Continue} $GroupName = Get-WmiObject win32_group -ComputerName $Computer -Credential $Connection | Where-Object {$_.SID -eq 'S-1-5-32-544'} | Select-Object name -ExpandProperty name } else { Trap {Write-Host "Error WMI $Computer";Continue} $GroupName = Get-WmiObject win32_group -ComputerName $Computer | Where-Object {$_.SID -eq 'S-1-5-32-544'} | Select-Object name -ExpandProperty name } if ($GroupName){ $Users = ([ADSI]"WinNT://$Computer/$GroupName").psbase.invoke("Members") | % {$_.GetType().InvokeMember("Name", 'GetProperty', $null, $_, $null)} $Info += $Users | % {$_ | Select-Object @{e={$Computer};n='Computer'},@{e={$_};n='Login'}} } } } $Info }