?
Solved

VB Script to Check Administrator Group on a List of PC's

Posted on 2011-03-11
10
Medium Priority
?
416 Views
Last Modified: 2012-05-11
Hello - I need a VB script that will run against a list of PC's and report back which users/groups are in the Administrators Group on the PC's.
0
Comment
Question by:vhaperbaugub
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 5
10 Comments
 
LVL 8

Expert Comment

by:jawa29
ID: 35110945
Hi

The code below should do the trick, just create a text file on you C: called ListOfPCs.txt with each PC on it's own line and this script will work.

Remember to run this as a Domain Admin or else you won't be able to query the PC remotely.

Jawa29


Const ForReading = 1
Const ForWriting = 2

On Error Resume Next

Set oFSO = CreateObject("Scripting.FileSystemObject")

Set oFile = objFSO.OpenTextFile("C:\ListOfPCs.txt", ForReading)

Do Until oFile.AtEndOfStream
	sComputer = oFile.ReadLine
	sTxt = sTxt & "--" & sComputer & "--" & vbCRLF
	Set oGroup = GetObject("WinNT://" & sComputer & "/Administrators,group")
	For Each oUser in oGroup.Members
		sTxt = sTxt & oUser.Name & vbCRLF
	Next
	sTxt = sTxt & "----------"
Loop

Set oTextFile = oFSO.OpenTextFile("C:\ListOfPCs-Results.txt", ForWriting, True)
oTextFile.WriteLine(sTxt)
oTextFile.Close

Set oFSO = Nothing
Set oFile = Nothing
Set oGroup = Nothing

WScript.Quit

Open in new window

0
 

Author Comment

by:vhaperbaugub
ID: 35111090
Hello - I got this error: C:\FindAdmin.vbs(30, 25) Microsoft VBScript compilation error: Expected end of statement
0
 
LVL 8

Expert Comment

by:jawa29
ID: 35111121
Sorry Friday fingers in operation

Replace this line
Set oFile = objFSO.OpenTextFile("C:\ListOfPCs.txt", ForReading)


With this
Set oFile = oFSO.OpenTextFile("C:\ListOfPCs.txt", ForReading)

Code tested.

Jawa29

0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

Author Comment

by:vhaperbaugub
ID: 35111267
Hello - Now I'm getting this error:

C:\FindAdmin.vbs(31, 25) Microsoft VBScript compilation error: Expected end of statement
0
 
LVL 8

Expert Comment

by:jawa29
ID: 35111304
Can you paste your exact code please?

Jawa29
0
 

Author Comment

by:vhaperbaugub
ID: 35111444
Const ForReading = 1
Const ForWriting = 2

On Error Resume Next

Set oFSO = CreateObject("Scripting.FileSystemObject")

Set oFile = oFSO.OpenTextFile("C:\ListOfPCs.txt", ForReading)


Do Until oFile.AtEndOfStream
      sComputer = oFile.ReadLine
      sTxt = sTxt & "--" & sComputer & "--" & vbCRLF
      Set oGroup = GetObject("WinNT://" & sComputer & "/Administrators,group")
      For Each oUser in oGroup.Members
            sTxt = sTxt & oUser.Name & vbCRLF
      Next
      sTxt = sTxt & "----------"
Loop

Set oTextFile = oFSO.OpenTextFile("C:\ListOfPCs-Results.txt", ForWriting, True)
oTextFile.WriteLine(sTxt)
oTextFile.Close

Set oFSO = Nothing
Set oFile = Nothing
Set oGroup = Nothing

WScript.Quit

Toggle HighlightingOpen in New WindowSelect All
0
 
LVL 8

Accepted Solution

by:
jawa29 earned 2000 total points
ID: 35111477
Whats this?

Toggle HighlightingOpen in New WindowSelect All

Once the script hits WScript.Quit it will finish, remove the above mentioned line.

Jawa29
0
 

Author Comment

by:vhaperbaugub
ID: 35111559
That was wierd.....its working now....Thanks!!!!!!!!!!!!!
0
 

Author Comment

by:vhaperbaugub
ID: 35111982
Just wondering.....is there a way to add a progress bar or something to the script? When you do a couple thousand PC's at once the screen remains blank.....Thanks again.
0
 
LVL 8

Expert Comment

by:jawa29
ID: 35112080
The only real way to do that effectivly is to run the script using cscript and add a Wscript.Echo in there.

Something like:

Do Until oFile.AtEndOfStream
      sComputer = oFile.ReadLine
      sTxt = sTxt & "--" & sComputer & "--" & vbCRLF
      Set oGroup = GetObject("WinNT://" & sComputer & "/Administrators,group")
      For Each oUser in oGroup.Members
            sTxt = sTxt & oUser.Name & vbCRLF
      Next
      sTxt = sTxt & "----------"
      Wscript.Echo sComputer
Loop


If you add this then just double click the file it will constantly pop up a window with the computer name has just completed and not continue until you select OK.

I use VBSEdit which allows you to run scripts as cscript which outputs to a window.

If you want to run the script in script from a command window just type in cscript C:\scriptname.vbs

Jawa29

0

Featured Post

New benefit for Premium Members - Upgrade now!

Ready to get started with anonymous questions today? It's easy! Learn more.

Question has a verified solution.

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

In this article we want to have a look at the directory attributes which are used by Microsoft to store the so called Security Identifiers (SID). These SIDs plays an important role in delegating and granting permissions and in authentication of trus…
When you see single cell contains number and text, and you have to get any date out of it seems like cracking our heads.
In this video, Percona Solution Engineer Rick Golba discuss how (and why) you implement high availability in a database environment. To discuss how Percona Consulting can help with your design and architecture needs for your database and infrastr…
In this video, Percona Solutions Engineer Barrett Chambers discusses some of the basic syntax differences between MySQL and MongoDB. To learn more check out our webinar on MongoDB administration for MySQL DBA: https://www.percona.com/resources/we…
Suggested Courses
Course of the Month8 days, 14 hours left to enroll

765 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