Solved

list local administrator group members.

Posted on 2014-09-09
18
245 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
 

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
Integrate social media with email signatures

Is your company active on social media? Do you also use email signatures? Including social media icons in your email signature is a great way to get fans for free. Let all your email users know you’re on social media quickly and easily, in a single click.

 

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

Windows Server 2016: All you need to know

Learn about Hyper-V features that increase functionality and usability of Microsoft Windows Server 2016. Also, throughout this eBook, you’ll find some basic PowerShell examples that will help you leverage the scripts in your environments!

Question has a verified solution.

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

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…
The recent Microsoft changes on update philosophy for Windows pre-10 and their impact on existing WSUS implementations.
This tutorial will walk an individual through the process of installing of Data Protection Manager on a server running Windows Server 2012 R2, including the prerequisites. Microsoft .Net 3.5 is required. To install this feature, go to Server Manager…
This tutorial will walk an individual through setting the global and backup job media overwrite and protection periods in Backup Exec 2012. Log onto the Backup Exec Central Administration Server. Examine the services. If all or most of them are stop…

910 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

25 Experts available now in Live!

Get 1:1 Help Now