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
Post a Comment