Welcome to Tech Support Forum home to more then 136,000 problems solved. Issues have included: Spyware, Malware, Virus Issues, Windows, Microsoft, Linux, Networking, Security, Hardware, and Gaming Getting your problem solved is as easy as:
1. Registering for a free account
2. Asking your question
3. Receiving an answer

Registered members:
* Get free support
* Communicate privately with other members (PM).
* Removal of this message
* See fewer ads.
* And much more..

 



Want to know how to post a question? click here Having problems with spyware and pop-ups? First Steps
Go Back   Tech Support Forum > Design Forum > Web Design & Programming
User Name
Password
Site Map Register Donate Rules Blogs Mark Forums Read


Web Design & Programming Discussion of web design, and server-side & client-side scripting

Reply
 
LinkBack Thread Tools
Old 09-16-2008, 07:30 PM   #1 (permalink)
Registered User
 
Join Date: Sep 2008
Posts: 6
OS: VISTA 32


Script help

Hi,

I am not sure if this is the right place to ask for this, but I need help with a script.
I need to get this script to read all the machines form a text file, instead all the machines in domain, there is the option to individually add the single pc, but I have around 150 machines that I need to scan for a certain registry key.-----------------------------------------------------------------------:


' Declare the constants
Const HKLM = &H80000002 ' HKEY_LOCAL_MACHINE
Const REG_SZ = 1 ' String value in registry (Not DWORD)
Const ForReading = 1
Const ForWriting = 2

' Set File objects...
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objDictionary = CreateObject("Scripting.Dictionary")
Set objDictionary2 = CreateObject("Scripting.Dictionary")

' Set string variables
strDomain = "DOMAINNAME" ' Your Domain
strPCsFile = "DomainPCs.txt"
strPath = "C:\scripts\" ' Create this folder
strWorkstationID = "C:\scripts\WorkstationID.txt"

If objFSO.FolderExists(strPath) Then
Wscript.Echo "This program will collect Workstation ID on remote compter(s)"
Else
Wscript.Echo "This program will collect Workstation ID on remote compter(s)"
WScript.Echo "Please create folder: <c:\scripts> then click OK."
End If

' Get list of domain PCs - Using above variables.
strMbox = MsgBox("Would you like info for entire domain: DOMAINNAME ?",3,"Hostname")

'an answer of yes will return a value of 6, causing script to collect domain PC info
If strMbox = 6 Then
Set objPCTXTFile = objFSO.OpenTextFile(strPath & strPCsFile, ForWriting, True)
Set objDomain = GetObject("WinNT://" & strDomain) ' Note LDAP does not work
objDomain.Filter = Array("Computer")
For Each pcObject In objDomain
objPCTXTFile.WriteLine pcObject.Name
Next
objPCTXTFile.close

Else
'an answer of no will prompt user to input name of computer to scan and create PC file
strHost = InputBox("Enter the computer you wish to get Workstation ID","Hostname"," ")
Set strFile = objfso.CreateTextFile(strPath & strPCsFile, True)
strFile.WriteLine(strHost)
strFile.Close
End If


' Read list of computers from strPCsFile into objDictionary
Set readPCFile = objFSO.OpenTextFile(strPath & strPCsFile, ForReading)
i = 0
Do Until readPCFile.AtEndOfStream
strNextLine = readPCFile.Readline
objDictionary.Add i, strNextLine
i = i + 1
Loop
readPCFile.Close

' Run the procedure defined in the Sub routine GetWorkstationID()

For each DomainPC in objDictionary
strComputer = objDictionary.Item(DomainPC)
GetWorkstationID()
Next

Set objFilesystem = Nothing

WScript.echo "Finished Scanning Network check : " & strPath

Sub GetWorkstationID()

On Error Resume next

' WMI connection to the operating system note StdRegProv
Set objReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
strComputer & "\root\default:StdRegProv")

If Err <> "0" Then
Exit Sub
End If

' Registry paths which hold the WorkstationID information.
unKeyPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\AppMgmt\{fae450a5-a221-4b05-9edb-de2f210db2ec}"
unValueName = ("Deployment Name")

' Enumerate Registry subkey paths for WorkstationID.
'objReg.EnumKey HKLM, unKeyPath
Set objTextFile1 = objFSO.OpenTextFile(strWorkstationID, ForWriting,True)
'For Each Subkey in arrSubKeys
objTextFile1.WriteLine (unKeyPath & (Enter))
'Next

' Read Registry info stored in the strWorkstationID file
Set objTextFile3 = objFSO.OpenTextFile(strWorkstationID, ForReading)

'pipe the WorkstationID paths from the WorkstationID.txt file into a second dictionary
i = 0
Do Until objTextFile3.AtEndOfStream
strNextLine = objTextFile3.Readline
objDictionary2.Add i, strNextLine
i = i + 1
Loop

' These paths are used in the filenames you see in the strPath
pcName = "SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName\"
pcNameValueName = "ComputerName"
userPath = "Software\Microsoft\Windows NT\CurrentVersion\Winlogon\"
userValueName = "DefaultUserName"
objReg.GetStringValue HKLM,pcName,pcNameValueName,pcValue
objReg.GetStringValue HKLM,userPath,userValueName,userValue

' Build up the filename found in the strPath
strFileName = UserValue & "_" & "On" & "_" & PCValue & "_" & "Workstation ID" _
& year(date()) & right("0" & month(date()),2) _
& right("0" & day(date()),2) & ".txt"

' Write each PC's software info file...
Set objTextFile2 = objFSO.OpenTextFile(strPath & strFileName, ForWriting, True)
' Writing info to the corresponding Software info file...
objTextFile2.WriteLine(vbCRLF & "==============================" & vbCRLF & _
"Current Workstation ID " & vbCRLF & Time & vbCRLF & Date _
& vbCRLF & "ID for:" & "" & userValue & vbCRLF & "On System:" _
& "" & pcValue & vbCRLF & "----------------------------------------" & vbCRLF)

' First enumeration also clean up if error exists (Second enumaration omitted)
For Each objItem in objDictionary2
strKeyPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\AppMgmt\{fae450a5-a221-4b05-9edb-de2f210db2ec}"
objReg.GetstringValue HKLM ,strKeyPath, unValueName, strValue
objTextFile2.WriteLine (strValue)
If Err Then
objDictionary2.Remove(objItem)
End If
Next

End Sub

wscript.Quit

----------------------------------------------

I am new to script, appreciate any help on this.
Thanks
Dzoza is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Reddit!
Reply With Quote
Important Information
Join the #1 Tech Support Forum Today - It's Totally Free!

TechSupportForum.com is a leading support website for your computer needs. We offer free, friendly and personalized computer support. Why pay to have your computer fixed when you can do it for free.

Join TechSupportforum.com Today - Click Here

Reply


Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off




All times are GMT -7. The time now is 02:05 PM.



Copyright 2001 - 2009, Tech Support Forum
Home Tips Plus | Outdoor Basecamp | Automotive Support Forum

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85