VB搜索文件的域用户

时间:2011-05-16 14:01:47

标签: vb.net visual-studio-2010

我正在这里写一篇旧帖子。我的主要目标是将这两个部分组合在一起,这样就不需要在每台计算机上运行搜索。

'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...我得到一些东西的列表,它们是文件吗?我不确定?

第二部分代码在计算机中搜索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)

当涉及让每个域用户运行它(或者让我在每台机器上远程执行它时),我很疯狂。我已经获得了有关dll等的提示。关于如何进行此操作或做什么的任何建议都会很棒!

1 个答案:

答案 0 :(得分: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

为了组合它我然后使用这个下一个sub和替换命令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