Форум программистов, компьютерный форум, киберфорум
PowerShell
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
1 / 1 / 0
Регистрация: 30.09.2014
Сообщений: 53

отфильтровать только те серверы где установлена Windows Server OS

09.07.2017, 20:30. Показов 2281. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер,

Под Servers OU есть еще Linux OU и Servers01 OU, Linux OU нужно исключить из поиска, но пока не знаю как.

Использую команду которой получаю все имена серверов.
PowerShell
1
Get-Adcomputer -filter * -SearchBase 'OU=Servers,DC=domainnameDC=com' | select-object name
После этого мне нужно отфильтровать только те серверы где установлена Windows Server OS и проверить являются ли все они Member Of "имя АД группы", и если какой то сервер не член группы, то добавить его туда.

Подскажите где копать?

Заранее благодарю!

Добавлено через 3 часа 41 минуту
Попробовал таким способом, но ощущение, что не пропускает Linux OU....

PowerShell
1
get-adcomputer -filter {OperatingSystem -like '*Windows*'} -Property * -SearchBase 'OU=Servers,DC=domain,DC=com' | ? {$_.DistinguishedName -notlike "*,OU=Linux,*"} | Select-Object -Property name
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.07.2017, 20:30
Ответы с готовыми решениями:

Программа работает только на той машине, где установлена VS
Программа работает,только на той машине,где установлен vb.net. Как избежать проблемы? Ниже скрин и проект)

Установка Windows XP на диск, где уже установлена Windows 7
Windows 7 на активном разделе уже установлена, хочу поставить на неактивный раздел ХР. Загружаюсь с установочного диска, указываю раздел,...

Серверы LAMP + mail server + internet server + file server
Доброго времени дня, уважаемые форумчане. Необходима помощь в подборе железа для сервера. Более всего нужны рекомендации по частоте...

10
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
09.07.2017, 22:06
Цитата Сообщение от vorkpallur Посмотреть сообщение
После этого мне нужно отфильтровать только те серверы где установлена Windows Server OS и проверить являются ли все они Member Of "имя АД группы", и если какой то сервер не член группы, то добавить его туда.
PowerShell
1
2
3
4
5
$OU = 'OU=Servers01,OU=Servers,DC=domain,DC=com'
$Group = 'GROUP1'
$members = Get-ADGroupMember $Group | select -ExpandProperty name
 
Get-ADComputer -filter {OperatingSystem -like '*Windows Server*'} -Property * -SearchBase $OU | ?{$members -NotContains $_.Name} | %{Add-ADGroupMember $Group -Members $_}
0
1 / 1 / 0
Регистрация: 30.09.2014
Сообщений: 53
09.07.2017, 22:50  [ТС]
Спасибо, завтра буду пробовать.
Правильно ли я понимаю что здесь указано два отдельных OU и все будет работать даже если Servers OU является OU первого уровня, а Servers01 и Linux OU находятся в нем? Не будет ли происходить поиск по всем OU которые под SERVERS OU?

$OU = 'OU=Servers01,OU=Servers,DC=domain,DC=co m'
0
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
09.07.2017, 23:03
Цитата Сообщение от vorkpallur Посмотреть сообщение
Правильно ли я понимаю что здесь указано два отдельных OU
$OU = 'OU=Servers01,OU=Servers,DC=domain,DC=co m'

В переменной $OU задан путь к конкретному контейнеру "Servers01". Get-ADComputer выберет все сервера только из "Servers01" и всех контейнеров расположенных в нём (если они есть). Глубиной поиска можно управлять с помощью ключа -SearchScope
0
1 / 1 / 0
Регистрация: 30.09.2014
Сообщений: 53
09.07.2017, 23:18  [ТС]
У меня и есть вопрос в том, что в SERVERS OU находятся еще два OU, и мне нужно чтобы поиск происходил только по SERVERS и SERVERS01 OU (находиться тоже под SERVERS OU).
LINUX OU который тоже под SERVERS OU трогать вообще не хочу. -SearchScope наверно здесь не поможет?
0
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
10.07.2017, 00:32
Лучший ответ Сообщение было отмечено vorkpallur как решение

Решение

Цитата Сообщение от vorkpallur Посмотреть сообщение
У меня и есть вопрос в том, что в SERVERS OU находятся еще два OU
Поиск будет идти только в SERVERS01. Если в SERVERS01, помимо ПК есть ещё и контейнеры, поиск пройдётся и по ним. OU SERVERS и LINUX при указание пути "OU=Servers01,OU=Servers,DC=domain,DC=co m", затронуты не будут.

Если нужно искать только в 'OU=Servers,DC=domain,DC=com' и 'OU=Servers01,OU=Servers,DC=domain,DC=co m' можете сделать так:

PowerShell
1
2
3
4
5
6
7
8
9
$Group = 'GROUP1'
$members = Get-ADGroupMember $Group | select -ExpandProperty name
 
foreach ($OU in 'OU=Servers,DC=domain,DC=com','OU=Servers01,OU=Servers,DC=domain,DC=com')
{
 
Get-ADComputer -SearchScope OneLevel -filter {OperatingSystem -like '*Windows Server*'} -Property * -SearchBase $OU | ?{$members -NotContains $_.Name} | %{Add-ADGroupMember $Group -Members $_}
 
}
1
1 / 1 / 0
Регистрация: 30.09.2014
Сообщений: 53
10.07.2017, 10:15  [ТС]
Я остановился на этом варианте и он добавляет все серверы в группу, но если я из группы удалю штук 20 серверов и запущу скрипт снова, то он не добавляет почему то ранее удаленные серверы в группу, ошибки не выдает никакой.

PowerShell
1
2
3
4
$OU = 'OU=Servers,DC=domain,DC=com'
$Group = 'TESTgroup'
$members = Get-ADGroupMember $Group | select -ExpandProperty name
Get-ADComputer -filter{(Enabled -eq $true) -and (OperatingSystem -like '*Windows Server*')} -Property * -SearchBase $OU | ?{$members -NotContains $_.Name} | %{Add-ADGroupMember $Group -Members $_}
Перед или после добавления всех серверов в группу можно ли удалить из группы некоторые сервера которые содержат определенные символы в имени?
0
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
10.07.2017, 11:45
Цитата Сообщение от vorkpallur Посмотреть сообщение
но если я из группы удалю штук 20 серверов и запущу скрипт снова, то он не добавляет почему то ранее удаленные серверы в группу, ошибки не выдает никакой.
Скрипт должен добавлять в группу найденные серверы сколько угодно раз. Возможно у вас несколько DC, из группы вы удалили на одном, а скрипт выполнился на другом, где ещё не прошла репликация. Добавьте в Get-ADGroupMember, Get-ADComputer, Add-ADGroupMember ключ -Server и укажите имя того же DC, на котором вы удаляете сервера из группы.

Цитата Сообщение от vorkpallur Посмотреть сообщение
Перед или после добавления всех серверов в группу можно ли удалить из группы некоторые сервера которые содержат определенные символы в имени?
Не понял смысла вопроса. Группа ваша, что хотите то и добавляйте/удаляйте из неё...
0
1 / 1 / 0
Регистрация: 30.09.2014
Сообщений: 53
10.07.2017, 21:55  [ТС]
Вы правы, подождал когда изменения реплицируются и все работает. Спасибо Вам огромное, все доступно и понятно. Попробую доработать скрипт самостоятельно чтобы в конце удалять серверы с определенным именем.
0
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
10.07.2017, 22:15
Цитата Сообщение от vorkpallur Посмотреть сообщение
чтобы в конце удалять серверы с определенным именем.
Если имена этих серверов попадают под какой-либо шаблон, то лучше сразу их не добавлять в группу, чтобы не делать лишней работы, например:

PowerShell
1
Get-ADComputer -filter{(Enabled -eq $true) -and (OperatingSystem -like '*Windows Server*') -and (Name -notlike '*-SQL-*')} -SearchBase $OU | ?{$members -NotContains $_.Name} | %{Add-ADGroupMember $Group -Members $_}
1
1 / 1 / 0
Регистрация: 30.09.2014
Сообщений: 53
10.07.2017, 22:39  [ТС]
Да так будет быстрей! Спасибо за подсказку, вы очень мне помогли!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.07.2017, 22:39
Помогаю со студенческими работами здесь

Отфильтровать только строчки, где есть подстрока "RIM1"
Есть массив данных, выкладываю несколько строчек: BRM1,F,20110531190000010,327626557,116.52000,2,173494,B ...

Загрузке цп 100% винда только что установлена установлены только драйвера на видеокарту
такая проблемка при загрузке виндовс комп очень долго думает загрузка цп 100% вроде грузить сильно драйвера которые установлены на...

Установка Windows 8 вместо Windows 7, которая установлена рядом с Windows xp
Есть windows 7. Она установлена рядом с windows xp ( раздел 1 (C:\) windows xp, раздел 2 (D:\) мои файлы, раздел 3 (G:\). Хочу установить...

Где серверы в GNS3 ?
В Cisco Packet Tracer можно собирать сеть, вытаскивая на рабочее пространство и свичи, и роутеры, и пк, и серверы. В GNS3 вижу...

где скачать Windows Server 2008
Где можно скачать Windows Server 2008 подскажите хорошую ссылку ..заранее спасибо


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru