"Pegasus [MVP]" <news@xxxxxx> wrote in message
news:OtQIiGG7JHA.3304@xxxxxx
Quote:
>
> "Jeremy" <Jeremy@xxxxxx> wrote in message
> news
E300E1F-5875-4D17-8C8F-318BA7F99489@xxxxxx Quote:
>> "Pegasus [MVP]" wrote:
>> Quote:
>>>
>>> "Jeremy" <Jeremy@xxxxxx> wrote in message
>>> news:3D3742E7-BDA2-4C63-8518-FD4ED51F1402@xxxxxx
>>> >I modified the following script from one I found on the web. It
>>> >searches
>>> > through an array of computers and lists all of the user folders found
>>> > within
>>> > the documents and settings folders on my student computers. Would it
>>> > be
>>> > easy
>>> > to replace the array with something like 047ds* to just search all
>>> > student
>>> > computers in my building?
>>> > Thanks, Jeremy
>>> >
>>> > CODE
>>> > ----------------
>>> > '=========
>>> > arrServers = Array(_
>>> > "047ds-c303-21.student.cssd.ab.ca",_
>>> > "047ds-c312-20.student.cssd.ab.ca",_
>>> > "047ds-cts-05"
>>> > )
>>> >
>>> > strOutputFile = "StudentComputerProfiles.txt"
>>> > strStartFolder = "C:\Documents and Settings"
>>> >
>>> >
>>> > Set objFSO = CreateObject("Scripting.FileSystemObject")
>>> >
>>> > strResults = "Existing Profiles on student computers"
>>> > For Each strServer In arrServers
>>> > strFolder = "\\" & strServer & "\" & Replace(strStartFolder, ":",
>>> > "$")
>>> > For Each objSubFolder In objFSO.GetFolder(strFolder).SubFolders
>>> > strResults = strResults & VbCrLf & strServer & " - " &
>>> > objSubFolder.Name
>>> > Next
>>> > Next
>>> >
>>> > Set objOutputFile = objFSO.CreateTextFile(strOutputFile, True)
>>> > objOutputFile.Write strResults
>>> > objOutputFile.Close
>>> > Set objOutputFile = Nothing
>>> > Set objFSO = Nothing
>>> >
>>> > MsgBox "Finished. Please see " & strOutputFile
>>> > '=========
>>>
>>> The "net.exe view" command is supposed to give you a list of all
>>> computers
>>> connected to the network. I found it rather temperamental but perhaps
>>> you
>>> can use it to generate a list of PCs.
>>>
>> Great idea Pegasus, thx. I could use something like this to add the
>> computer names to the array,
>>
>> CODE
>> --------------------------------------
>> Const ForReading = 1
>>
>> Set objFSO = CreateObject("Scripting.FileSystemObject")
>> Set objTextFile = objFSO.OpenTextFile _
>> ("c:\computer-names.txt", ForReading)
>>
>> Do Until objTextFile.AtEndOfStream
>> strNextLine = objTextFile.Readline
>> arrServiceList = Split(strNextLine , ",")
>> Loop
>>
>> I'd have to start off with creating the file by invoking a cmd like
>>
>> net view /domain:student>computers.txt
>> and then something to strip out the '\' characters and the rest of the
>> messages echoed back. >
> That's the general idea - good luck! When Pegasus refers to the net view command as being temperamental, that
could be because the list comes from the browse master and is not updated
instantaneously as computers shutdown or startup. It can be much more
efficient than pinging a list of all possible computer names because it
retrieves the list from the browse master and does not query the individual
machines. Of course, it can miss some that have just come available and will
include some that have just shutdown. In my experience, the best time to run
a script using this technique is at a time when people are generally all
working, and not starting up or shutting down. 9am and 2:30 pm are best for
us, but ymmv.
Depending on the workstation naming convention, you could do this:
net view /domain | find /i "\\047ds" > computers.txt
Slightly OT, I usually use this in a strictly batch environment, along these
lines:
for /f %%C in ('net view ^| find /i "047ds"') do call

rocess %%C
pause & goto:eof

rocess
dir \\%1\c$\documents and settings
goto:eof
which obviates the need for a temporary file.
/Al