2011-05-16 32 views
1

我在這裏把這個新的帖子放在一起。我的主要目標是將這兩部分結合起來,以便不必在每臺計算機上都運行搜索。VB搜索文件的域用戶

'Searching for all computers in the domain 
Dim de As New DirectoryEntry() 
    de.Path = "WinNT://domain.name" 
    For Each d As DirectoryEntry In de.Children() 
     Console.WriteLine(d.Name) 
    Next 

我可以設置路徑WINNT://domain.name/username...and我得到的東西的清單,是他們的文件嗎?我不確定?

代碼的第二部分搜索計算機中的java.exe以顯示其版本,以及在該計算機上搜索任何有關java文件的指示。

'Searching individual computer for Java Information 
Dim sdkCommand As String 

sdkCommand = "C:\Windows\System32\Java.exe -version 2> C:\Users\Desktop\JavaSDKInfo.txt && C:\Windows\System32\tasklist.exe /FI ""IMAGENAME eq java.exe"" >> C:\Users\Desktop\JavaSDKInfo.txt" 
Shell("cmd.exe /c" & sdkCommand) 

我瘋了confizzled當談到有每個域用戶運行這個(或有我遠程執行它每一臺機器上?)。我已經提供了關於dll等的暗示。關於如何去做這件事或做什麼的任何建議都會很棒!

回答

0

我知道它已經有一段時間了,所以我會繼續並列出我做的答案。

在shell中使用替換我能夠拉出使用streamwriter編寫的用戶列表。然後對該列表中的每個條目執行該命令。

Sub WriteUserFile() 
Dim de As New DirectoryEntry()  
de.Path = "WinNT://domain.name"  
Using sw as New StreamWriter(File.Open(UserFile, FileMOde.OpenorCreate)) 
For Each d As DirectoryEntry In de.Children()   
sw.WriteLine(d.Name) 
Next 
End Sub 

爲了結合它,我然後使用這個下一個子和替換命令來分用戶名。按d允許我將目錄更改爲每個用戶(等待管理員狀態)

Sub DoWork() 
Dim sdkCommand as string = "pushd \\*\C$ && java.exe -version2>> $$$" 
For each strUserName as String in strLines 
Dim ReplaceCommand as String = sdkCommand.Replace("*", strUserName).Replace("$$$", "C:\InfoReadout.txt") 
Shell("cmd.exe /c" & ReplaceCommand, True, -1) 
End Sub