Having some issues with checking who is an administrator


hi all,

i having issues writing script following.

grab sql agent service account , check if service account part of local administrators group. @ moment, have script can both separately, want bring them work together.

$sqlagent = get-wmiobject win32_service -filter  "name '%sqlserveragent%'" | select  startname    write-host $sqlagent   

one issue here if have multiple sql instances.

another issue on windows 7 machine, output comes out username@domain.com on windows server machine domain\username. there issue of inconsistent format.

i have function returns list of usernames, domain local adminstrators on server. issue need result of script above check out function producing.

function get-localgroupmembers  {  param(  [parameter(valuefrompipeline=$true)][array]$server = $env:computername,  $groupname = $null  )  process {      $finalresult = @()      $computer = [adsi]"winnt://$server"        if (!($groupname))      {      $groups = $computer.psbase.children | {$_.psbase.schemaclassname -eq "group"} | select -expand name      }      else      {      $groups = $groupname      }      $currentdomain = [system.directoryservices.activedirectory.domain]::getcurrentdomain().getdirectoryentry() | select name,objectsid      $domain = $currentdomain.name      $sid=$currentdomain.objectsid      $domainsid = (new-object system.security.principal.securityidentifier($sid[0], 0)).value          foreach ($group in $groups)      {      $gmembers = $null      $localgroup = [adsi]("winnt://$server/$group,group")          $gmembers = $localgroup.psbase.invoke("members")      $gmemberprops = @{server="$server";"localgroup"=$group;name="";type="";adspath="";domain="";sid=""}      $memberresult = @()              if ($gmembers)          {          foreach ($gmember in $gmembers)              {              $membertable = new-object psobject -property $gmemberprops              $name = $gmember.gettype().invokemember("name",'getproperty', $null, $gmember, $null)              $sid = $gmember.gettype().invokemember("objectsid",'getproperty', $null, $gmember, $null)              $usersid = new-object system.security.principal.securityidentifier($sid, 0)              $class = $gmember.gettype().invokemember("class",'getproperty', $null, $gmember, $null)              $ads = $gmember.gettype().invokemember("adspath",'getproperty', $null, $gmember, $null)              $membertable.name= "$name"              $membertable.type= "$class"              $membertable.adspath="$ads"              $membertable.sid=$usersid.value                  if ($usersid -like "$domainsid*")                  {                  $membertable.domain = "$domain"                  }                $memberresult += $membertable              }             }           $finalresult += $memberresult       }      $finalresult | select server,"localgroup",name,type,domain,sid      }  }          	$local_admins_list = get-localgroupmembers -group administrators | select name , domain  	write-host $local_admins_list  

if($collection -contains $value){
    processing:

help comparison_operators


\_(ツ)_/



Windows Server  >  Windows PowerShell



Comments

Popular posts from this blog

Edit Group Policy

Hyper-V VM not reaching OS 'Logon' screen

DNS question...