![]() |
![]() |
![]() |
|||||
![]() |
![]() |
![]() |
![]() |
![]() |
|||
| 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: * 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 |
|
|||||||
| Web Design & Programming Discussion of web design, and server-side & client-side scripting |
![]() |
|
|
LinkBack | Thread Tools |
|
|
#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 |
|
|
|
| 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 |
![]() |
| Thread Tools | |
|
|