# 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
}