我正在这里写一篇旧帖子。我的主要目标是将这两个部分组合在一起,这样就不需要在每台计算机上运行搜索。
'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等的提示。关于如何进行此操作或做什么的任何建议都会很棒!
答案 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