Прежде всего, английского нет!мой первый / родной язык.
Для моей стажировки в этой компании я пытаюсь собрать некоторые данные.В сети около 200 компьютеров.Все ПК HP SFF.Все компоненты будут перезаписаны образом диска компании, содержащим программное обеспечение и политики.Они также получают обновление BIOS.Но с течением месяцев эти версии устаревают.Не то чтобы это требовалось для обновления биоса, мы хотим узнать, какая версия, на каком компьютере и какой модели.
Существует несколько моделей ПК.Например, HP DC7600, HP 7700.
Существует несколько версий BIOS.Например, 786G1 v01.10, 786G1 v01.16
Я собираю эти данные следующим способом.Каждый из них имеет сетевой ресурс на определенном диске. (Документы компании).
Для стороны клиента я использую WMI (инструментарий управления Windows) для сбора необходимой информации.
Sub RetrieveInfo()
Dim _PCName As String = My.Computer.Name
Dim _Info As String = vbNullString
Dim _FileName As String = "G:\BiosVersion\" & _PCName & ".txt"
Dim _ManagmentC As New ManagementClass("Win32_ComputerSystem")
Dim _Moc As ManagementObjectCollection = _ManagmentC.GetInstances
For Each _Mo As ManagementObject In _Moc
Dim Model() As String = Split(_Mo.Properties("Model").Value.ToString, " ")
For i = 0 To Model.Length - 1
If Model(i).ToLower.Contains("dc") Then _Info &= Model(i)
Next
Next
_ManagmentC = New ManagementClass("win32_bios")
_Moc = _ManagmentC.GetInstances
For Each _Mo As ManagementObject In _Moc
_Info &= "|" & _Mo.Properties("SMBIOSBIOSVersion").Value.ToString
Next
Try
If IO.File.Exists(_FileName) Then
IO.File.Delete(_FileName)
End If
Catch ex As IO.IOException
_FileName = _FileName.Replace(_PCName, _PCName & "-" & New Random().Next(10, 10000))
End Try
IO.File.WriteAllText(_FileName, _Info)
End Sub
Как видите, он создается в виде текстового файла в общей папке с именем String PCName (например, PC1001).Он записывает номер модели ПК и версию BIOS в текстовый файл.(например, dc7900 | 786G1 v01.16)
Для стороны server , части построения диаграммы, я делаю следующее.
Dim Path As String = "G:\BiosVersion\"
Sub UpdateChart()
Dim PCModels As New List(Of String)
Dim BiosVersions As New List(Of String)
Dim Files As IO.FileInfo() = New IO.DirectoryInfo(Path).GetFiles
For Each File As IO.FileInfo In Files
If File.Extension = ".txt" Then
PCModels.Add(IO.File.ReadAllText(File.FullName).Split("|")(0))
BiosVersions.Add(IO.File.ReadAllText(File.FullName).Split("|")(1))
End If
Next
PCModels = RemoveDuplicates(PCModels)
BiosVersions = RemoveDuplicates(BiosVersions)
For i = 0 To chartBios.Series.Count - 1
chartBios.Series.Remove(chartBios.Series.Item(i))
Next
Dim Dictionary As New Dictionary(Of String, Integer)
For Each Version As String In BiosVersions
chartBios.Series.Add(Version)
Dim Count As Integer = 0
For Each File As IO.FileInfo In Files
If IO.File.ReadAllText(File.FullName).Split("|")(1).ToLower.Trim = Version.ToLower.Trim Then
Count += 1
End If
Next
Dictionary.Add(Version, Count)
Next
For Each Entry As KeyValuePair(Of String, Integer) In Dictionary
chartBios.Series(Entry.Key).Points.AddY(Entry.Value)
Next
End Sub
Function RemoveDuplicates(ByVal inputList As List(Of String)) As List(Of String)
Dim uniqueStore As New Dictionary(Of String, Integer)()
Dim finalList As New List(Of String)()
For Each currValue As String In inputList
If Not uniqueStore.ContainsKey(currValue) Then
uniqueStore.Add(currValue, 0)
finalList.Add(currValue)
End If
Next
Return finalList
End Function
chartBios = элемент управления диаграммой.
Что приводит к следующему: Я пока не могу публиковать изображения (Защита от спама) http://i.imgur.com/bGpyH.jpg
Я пытаюсь сделать следующее.У меня есть 3 варианта, версия Bios, сколько раз установлена каждая версия и название модели.
Это пример макета диаграммы, который я хочу.У кого-нибудь есть идеи о том, как создать этот макет?Во время выполнения или в режиме статики мне все равно, сколько времени можно заполнить во время выполнения.
Для каждого номера версии Bios должна быть полоса для каждой модели ПК с меткой, которая представляетколичество раз, когда установлена версия BIOS.
Пример: я пока не могу публиковать изображения (Защита от спама) http://i.imgur.com/tP0Sf.jpg