?
Solved

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

Posted on 2011-03-11
10
Medium Priority
?
419 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
  • 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
[Webinar] Kill tickets & tabs using PowerShell

Are you tired of cycling through the same browser tabs everyday to close the same repetitive tickets? In this webinar JumpCloud will show how you can leverage RESTful APIs to build your own PowerShell modules to kill tickets & tabs using the PowerShell command Invoke-RestMethod.

 

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

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

This is an addendum to the following article: Acitve Directory based Outlook Signature (http://www.experts-exchange.com/Programming/Languages/Visual_Basic/VB_Script/Q_24950055.html) The script is fine, and works in normal client-server domains…
Not long ago I saw a question in the VB Script forum that I thought would not take much time. You can read that question (Question ID  (http://www.experts-exchange.com/Programming/Languages/Visual_Basic/VB_Script/Q_28455246.html)28455246) Here (http…
Hi, this video explains a free download that you can incorporate into your Access databases, or use stand-alone for contact management. Contacts -- Names, Addresses, Phone Numbers, eMail Addresses, Websites, Lists, Projects, Notes, Attachments…
Get the source code for a fully functional Access application shell with several popular security features that Access VBA application developers desire, but find difficult or impossible to figure out how to code. You get the source code for managi…
Suggested Courses

601 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