|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Управление компьютерами в AD |
|
|
PowerShell - Управление компьютерами в AD
|
Старожил Сообщения: 470 |
Профиль | Отправить PM | Цитировать Приветствую и прошу совета у местных гуру скриптовых языков.
Ситуация такова. Есть домен, в котором много компов разного "срока годности". Я задался целью отыскать такие компы и решил использовать для этого Powershell. Так как в нем я не силен вовсе, то путем гугления нашел и состряпал такую команду: Get-ADComputer -LDAPFilter "(operatingsystem=*windows*)" -SearchBase "dc=domain_name,dc=ru" -Properties Name, IPv4Address, whenchanged, operatingsystem, lastlogondate, canonicalname, OperatingSystemServicePack | Out-GridView Потом я сортирую в открывшемся окне от GridView компы по атрибутам whenchanged и lastlogondate, задавая нужное мне условие по срокам, ОС и пр. Команда в принципе рабочая, но ее результаты требуют еще доп усилий для приведения в нужный мне вид. Что хотелось бы получить: 1. Выгрузку из AD только тех ПК, которые удовлетворяют условиям по параметрам whenchanged и lastlogondate (или какой-нибудь универсальный вариант чтобы я сам мог менять); 2. Выгрузку из AD сразу в файл SCV/XLSX/пр. желательно с шапкой; 3. Возможность выгрузить только имена ПК в файл TXT; 4. Возможность отключать/включать учетные записи ПК, которые получены выгрузкой выше или внесенные в файл руками; 5. Возможность удалять ПК, которые удовлетворяют условиям по параметрам whenchanged и lastlogondate и enabled. Буду еще благодарен за ссылки на ресурсы, на которых можно найти какие-нибудь другие крутые и забойные скрипты Powershell для работы с AD. |
|
Отправлено: 12:28, 16-04-2014 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать 1.
$wcdate = "{0:yyyMMddHHmmss}.Z" -f (Get-Date).AddDays(-90) $lldate = (Get-Date).AddDays(-90).ToFileTime() $users = Get-ADUser -Filter "whenChanged -ge '$wcdate' -and lastlogon -ge '$lldate'" 2. $users | Export-Csv result.csv -NoTypeInformation -Encoding UTF8 3. Get-ADComputer -Filter * | Foreach {$_.Name} | Out-File result.txt 4. http://forum.oszone.net/thread-280936.html 5. Get-ADComputer -Filter "whenChanged -ge '$wcdate' -and lastlogon -ge '$lldate' -and Enabled -eq $false" | Remove-ADComputer -Confirm:$false |
Отправлено: 13:05, 16-04-2014 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 112
|
Профиль | Отправить PM | Цитировать Как вариант.
Поиск устаревших компьютеров по параметру Passwordlastset (когда последний раз менялся пароль) Get-ADComputer -filter "Passwordlastset -lt '1/11/2013'" -properties * | Select name, passwordlastset |
Отправлено: 14:30, 16-04-2014 | #3 |
Старожил Сообщения: 470
|
Профиль | Отправить PM | Цитировать Kazun, подскажите, пожалуйста, как этим пользоваться? Я открыл Windows PowerShell ISE, скопировал все строки из п. 1 и нажал F5. Что дальше?
|
Отправлено: 09:00, 17-04-2014 | #4 |
Старожил Сообщения: 470
|
Профиль | Отправить PM | Цитировать Kazun, приветствую!
Ваш скрипт, к сожалению, не делает того, что должен. Он а) выгружает пользователей, а не ПК и б) он выгружает что угодно, но не компы, которые по указанным параметрам старше заданного числа дней. |
|
Отправлено: 12:00, 13-08-2014 | #5 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать См. пункт 5,там ответ на а и на б. -ge - условие заменить на свое.
|
Отправлено: 12:19, 13-08-2014 | #6 |
Старожил Сообщения: 470
|
Профиль | Отправить PM | Цитировать Kazun, вот, что я запускаю у себя после изменений:
$wcdate = "{0:yyyMMddHHmmss}.Z" -f (Get-Date).AddDays(-28) $lldate = (Get-Date).AddDays(-28).ToFileTime() $users = Get-ADComputer -Filter "whenChanged -ge '$wcdate' -and lastlogon -ge '$lldate'" Get-ADComputer -Filter "whenChanged -ge '$wcdate' -and lastlogon -ge '$lldate'" | Out-GridView В итоге получаю неправильный список компов. Хочу получить список ПК с несерверными Windows и атрибутами whenChanged и lastlogondate более 28 дней. Где у меня ошибка? Я понимаю, что вопросы тупые, но я не силен в PS. |
Отправлено: 15:20, 13-08-2014 | #7 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать |
Отправлено: 15:57, 13-08-2014 | #8 |
Старожил Сообщения: 470
|
Профиль | Отправить PM | Цитировать Kazun, а вы не просвятите что такое -ge и что это выражение делает? Вы заменили его на -lt, а что делает оно? Я попробовал загуглить, но гугл не сознается, вероятно я неправильно спрашиваю.
|
Отправлено: 16:34, 13-08-2014 | #9 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Неадекват:
|
|
Отправлено: 16:42, 13-08-2014 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
2008 R2 - Управление печатью и AD | KATOCHIMOTO | Windows Server 2008/2008 R2 | 5 | 30-10-2012 16:56 | |
2008 - управление компьютером через AD невозможно | nik_petrov | Windows Server 2008/2008 R2 | 3 | 23-10-2012 13:37 | |
2008 R2 - Управление учетными записями пользователей в AD | Temafet | Windows Server 2008/2008 R2 | 3 | 23-01-2012 16:14 | |
Управление темами рабочего стола через политики AD | mihadro | Microsoft Windows NT/2000/2003 | 7 | 09-08-2009 15:12 | |
Юзерское управление своей учётной записью в AD | Samsonov | Microsoft Windows NT/2000/2003 | 4 | 07-08-2007 11:20 |
|