Scripts/OS/OsAdministrators.ps1
try{ $GroupName=$Query_Win32_Group_OsAdministrators.Name $Computername=$Query_Win32_Group_OsAdministrators.__SERVER Write-Verbose "Administrators GroupName $GroupName" if ($Credential) { $wmitmp = Get-WmiObject -ComputerName $ComputerName -Query "SELECT * FROM Win32_GroupUser WHERE GroupComponent=`"Win32_Group.Domain='$ComputerName',Name='$GroupName'`"" -ErrorAction Stop -Credential $Credential } else { $wmitmp = Get-WmiObject -ComputerName $ComputerName -Query "SELECT * FROM Win32_GroupUser WHERE GroupComponent=`"Win32_Group.Domain='$ComputerName',Name='$GroupName'`"" -ErrorAction Stop } if ($wmitmp -ne $null) { $DispObjArray=@() if ($Credential) { $LocalUserAccounts = Get-WmiObject -Class Win32_UserAccount -Namespace root\cimv2 -ComputerName $ComputerName -Filter "LocalAccount=$true" -ErrorAction Stop -Credential $Credential } else { Write-Verbose "Get-WmiObject -Filter LocalAccount=$true" $LocalUserAccounts = Get-WmiObject -Class Win32_UserAccount -Namespace root\cimv2 -ComputerName $ComputerName -Filter "LocalAccount=$true" -ErrorAction Stop } $wmitmp | foreach{ if ($_.PartComponent -match '(.+:)?win32_(.+)\..+?="(.+?)",Name="(.+?)"') { $Type=$Matches[2] $Type=$Type -replace "User","" $Domain=$matches[3] $Name=$Matches[4] $FullName="$Domain\$Name" $AccountStatus=$null $PasswordRequired=$Nu if ($domain -eq $computername) { $IsLocalAccount=$True } else { $IsLocalAccount=$false } if ($type -eq "Account" -and $IsLocalAccount) { $UserAccount=$LocalUserAccounts | Where-Object {$_.caption -eq $FullName} $AccountStatus=$UserAccount.status } $DispObj=New-Object psobject $DispObj | Add-Member -MemberType NoteProperty -Name FullName -Value "$Domain\$Name" $DispObj | Add-Member -MemberType NoteProperty -Name Type -Value $Type $DispObj | Add-Member -MemberType NoteProperty -Name IsLocal -Value $IsLocalAccount $DispObj | Add-Member -MemberType NoteProperty -Name Status -Value $AccountStatus $DispObjArray+=$DispObj } } $DispObjArray | Sort-Object -Property IsLocal,Type -Descending } else { Write-Error -Message "Query SELECT * FROM Win32_GroupUser WHERE GroupComponent=`"Win32_Group.Domain='$ComputerName',Name='$GroupName'`" return null value" -ErrorAction Stop } } catch { Write-Error $_ } |