Improve company productivity with a Business Account.Sign Up

x
?
Solved

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

Posted on 2011-03-11
10
Medium Priority
?
421 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
Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

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.

 

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

Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

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…
Welcome, welcome!  If you are new to the series and haven't been following along, please take a brief moment to review the first three installments: Part 1 (http://www.experts-exchange.com/Programming/Languages/Visual_Basic/VB_Script/A_266-VBScri…
In this video I will demonstrate how to set up Nine, which I now consider the best alternative email app to Touchdown.
Watch the working video to know how to import Outlook PST/OST files to Amazon WorkMail. Kernel released this tool which is very easy to use and migrate single or multiple PST and OST files to Amazon WorkMail. To know more about Kernel Import PST to …

585 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