Я создаю инструмент для удаления профилей пользователей по возрасту на всех устройствах Windows 7 и Windows 10 в наших доменах.Он работает с использованием этого фильтра ((objectClass=computer)
), но я хочу уточнить, чтобы получить только устройства с Windows 7 и Windows 10, потому что мой отдел управляет настольными компьютерами / ноутбуками, а не серверами.Чтобы сделать инструмент более эффективным и не пытаться подключиться к устройствам, у меня нет доступа администратора.
Итак, я попробовал этот фильтр:
mySearcher.Filter = "(&(objectClass=computer)(operatingSystemVersion=*server*))
Я думал сделать что-то подобное, если ОС не Windows Server 2012 или Windows Server 2008, а затем сделать что-то.
Я загрузил свойство operatingSystem
, но не могу отобразить его.Я попробовал это в datagridview, и когда это не сработало, я просто попытался сделать Console.WriteLine
, и это тоже не сработало.Я хочу проверить свою концепцию, прежде чем добавлять код для использования WMI для удаления профилей, просто отображая имя хоста и версию ОС, чтобы убедиться, что она извлекает информацию из AD, а не предоставляет мне серверы.Может кто-нибудь помочь?Вот код (я только сейчас работаю с доменом v06):
Dim mySearcher As DirectorySearcher = New DirectorySearcher(enTry)
mySearcher.PropertiesToLoad.Add("dNSHostName")
mySearcher.PropertiesToLoad.Add("operatingSystem")
mySearcher.PropertiesToLoad.Add("operatingSystemVersion")
mySearcher.Filter = "(&(objectClass=computer)(operatingSystem=*server*))" '("(objectClass=computer)")
Dim resEnt As SearchResult
For Each resEnt In mySearcher.FindAll()
Select Case dMain
Case "v06"
Try
hostName = GetProperty(resEnt, "dNSHostName")
OSystem = GetProperty(resEnt, "operatingSystem")
Dim result1 As Net.NetworkInformation.PingReply = ping.Send(hostName, 1000)
If result1.Status = Net.NetworkInformation.IPStatus.Success Then
Dim row2 As String() = New String() {hostName, "N/A", OSystem}
dgvLocal.Rows.Add(row2)
Else
My.Computer.FileSystem.WriteAllText("C:\ExodusErrorLog.txt", hostName & " - Device is not pingable!" & vbCrLf & vbCrLf, True)
End If
Catch ex As Exception
My.Computer.FileSystem.WriteAllText("C:\ExodusErrorLog.txt", hostName & " - " & ex.Message & vbCrLf & vbCrLf, True)
End Try
Case "v07.med.va.gov"
End Select
Next