Solved

list local administrator group members.

Posted on 2014-09-09
18
246 Views
Last Modified: 2014-09-10
I need a command to list members in the local administrator group for a list of servers.  

Please advise.

Thanks.
0
Comment
Question by:nav2567
  • 7
  • 6
  • 4
  • +1
18 Comments
 
LVL 29

Expert Comment

by:becraig
ID: 40313292
simple command prompt (Assuming you have psexec)
for /f %a in (c:\serverlist.txt) do psexec \\%a cmd /c net localgroup Administrators

Open in new window

0
 

Expert Comment

by:Robert Bratton
ID: 40313310
You can use the PSEXEC.exe (Windows SysInternals) tool to run the net command on multiple servers:
psexec @serverfile.txt cmd "/c net localgroup administrators"

Open in new window

Just put a list of servernames in the serverfile.txt
0
 
LVL 40

Expert Comment

by:Subsun
ID: 40313348
If you are looking for a PowerShell script then, Similar question is answered here.. Check and let me know if you have any trouble in getting report..
www.experts-exchange.com/Programming/Languages/Scripting/Powershell/Q_28505177.html
0
NAS Cloud Backup Strategies

This article explains backup scenarios when using network storage. We review the so-called “3-2-1 strategy” and summarize the methods you can use to send NAS data to the cloud

 

Author Comment

by:nav2567
ID: 40313618
I tried to pipe the results to a file by putting a  >>c:\result.txt at the end.

Is there a way I can display the server name before each result in the result file?
0
 
LVL 29

Expert Comment

by:becraig
ID: 40313622
for /f %a in (c:\serverlist.txt) do psexec \\%a cmd /c hostname & net localgroup Administrators >> \\computer\c$\gmembers.txt
                                          

Open in new window


computer would be the name of the computer you are running the command from.
0
 

Author Comment

by:nav2567
ID: 40313636
becraig, I ran that line but still do not see the hostname in the gmembers.txt file.
0
 

Author Comment

by:nav2567
ID: 40313645
By the way, you will need %% instead of %.
0
 
LVL 29

Expert Comment

by:becraig
ID: 40313646
hmm that sounds weird:

You only need %% if you run as a bat or cmd file, from the command line % is what you need (I did not see a need to save a one liner as a cmd or bat)

for /f %a in (c:\serverlist.txt) do psexec \\%a cmd /c echo ============================== & hostname &echo ============================== & net localgroup administrators >> \\computer\c$\gmembers.txt

Open in new window

0
 
LVL 40

Expert Comment

by:Subsun
ID: 40313651
Did you try the PS script?  It will give you a neat csv file which you can open in excel.
0
 

Author Comment

by:nav2567
ID: 40313668
sorry, becraig, I tried but still do not see hostname is being displayed in my results.txt.  Here is what I use:

for /f %a in (c:\serverlist.txt) do psexec \\%a cmd /c hostname & net localgroup Administrators >> c:\results.txt
0
 
LVL 29

Expert Comment

by:becraig
ID: 40313672
Then we can just repeat the variable, though I also see Subsun's report is a nice csv:

 for /f %a in (c:\serverlist.txt) do psexec \\%a cmd /c echo %a & net localgroup Administrators >> c:\results.txt 

Open in new window

0
 

Author Comment

by:nav2567
ID: 40314133
becraig,

It is still not good and same result.  The "echo %a" result did not get piped into the results.txt file but only being shown at the command prompt when I run it.

Subsun, I tried the PS script and the result file only contains information on the last server name in the list.
0
 
LVL 40

Expert Comment

by:Subsun
ID: 40314161
Try..
function get-localusers {
 param(
 [Parameter(Mandatory=$true,valuefrompipeline=$true)]
 [string]$strComputer
 )
 
 $Select = "Name","Class","Parent" | %{  
 Invoke-Expression "@{n='$_';e={ `$_.GetType().InvokeMember('$_', 'GetProperty', `$Null, `$_, `$Null) }}"
 }
 
 If (Test-Connection $strComputer -Count 2 -Quiet){
  try{
  $computer = [ADSI]("WinNT://" + $strComputer + ",computer")
  $AdminGroup = $computer.psbase.children.find("Administrators")
  $Adminmembers= $AdminGroup.psbase.invoke("Members") | Select $Select
    foreach ($admin in $Adminmembers) {
    $admin | Select @{N="ComputerName";E={$strComputer}},@{N="Administrators";E={"$(($_.parent -SPLIT "/")[-1])\$($_.Name)"}},Class,@{N="Parent";E={($_.parent -SPLIT "/")[-1]}}
    }
 }catch{ 
 "" | Select @{N="ComputerName";E={$strComputer}},@{N="Administrators";E={"Access Denied"}},Class,Parent
 }
 }
Else {
 "" | Select @{N="ComputerName";E={$strComputer}},@{N="Administrators";E={"Not able to Ping"}},Class,Parent
 }
}
Get-Content "C:\Powershell\Servers.txt" | %{get-localusers $_} | Select ComputerName,Administrators,Class,Parent | Export-Csv "C:\Powershell\LocalAdm$((get-date).toString('MM-dd-yyyy')).csv" -NTI

Open in new window

1
 
LVL 29

Expert Comment

by:becraig
ID: 40314716
Lol my bad

for /f %a in (c:\serverlist.txt) do psexec \\%a cmd /c echo %a   \\%a\c$\result.txt & net localgroup Administrators >> 
\\%a\c$\result.txt
I suggest saving to the computer you're running from.  \\%a\c$\result.txt
0
 

Author Comment

by:nav2567
ID: 40314858
becraig,

You script is still not working as expected.  Can you please test it?
0
 
LVL 40

Accepted Solution

by:
Subsun earned 500 total points
ID: 40314880
@nav2567, Did you try the PS script which I posted in ID: 40314161? or are you looking only for a batch script?
0
 
LVL 29

Expert Comment

by:becraig
ID: 40314993
for /f %a in (c:\serverlist.txt) do psexec \\%a cmd /c echo %a >>  \\%a\c$\result.txt & net localgroup Administrators >>
\\%a\c$\result.txt

Open in new window

0
 

Author Comment

by:nav2567
ID: 40315299
Sorry, becraig.  It is still not working.  I do not want to pipe the result to the servers C drive.  

I am going to have to use Subsun's script as it has the display I need.  

Thanks for your help.
0

Featured Post

Migrating Your Company's PCs

To keep pace with competitors, businesses must keep employees productive, and that means providing them with the latest technology. This document provides the tips and tricks you need to help you migrate an outdated PC fleet to new desktops, laptops, and tablets.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Utilizing an array to gracefully append to a list of EmailAddresses
I thought I'd write this up for anyone who has a request to create an anonymous whistle-blower-type submission form created using SharePoint 2010 (this would probably work the same for 2013). It's not 100% fool-proof but it's as close as you can get…
This tutorial will walk an individual through configuring a drive on a Windows Server 2008 to perform shadow copies in order to quickly recover deleted files and folders. Click on Start and then select Computer to view the available drives on the se…
This tutorial will walk an individual through the steps necessary to join and promote the first Windows Server 2012 domain controller into an Active Directory environment running on Windows Server 2008. Determine the location of the FSMO roles by lo…

813 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

17 Experts available now in Live!

Get 1:1 Help Now