Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Управление компьютерами в AD ч. 2

Ответить
Настройки темы
PowerShell - Управление компьютерами в AD ч. 2

Аватара для Неадекват

Старожил


Сообщения: 470
Благодарности: 36

Профиль | Отправить PM | Цитировать


Изменения
Автор: Неадекват
Дата: 28-11-2014
Приветствую экспертов!
В моем предыдущем топике (http://forum.oszone.net/thread-280959.html) я спрашивал о том как получить компы, которые удовлетворяют определенным условиям и получил варианты решения.
Теперь же встала другая задача. Требуется компы, которые нашлись по скрипту ниже, переместить в другой контейнер в домене и еще деактивировать (отключить учетную запись).
Код: Выделить весь код
$wcdate = "{0:yyyMMddHHmmss}.Z" -f (Get-Date).AddDays(-28)
$lldate = (Get-Date).AddDays(-28).ToFileTime()
Get-ADComputer -Filter "whenChanged -lt '$wcdate' -and lastlogondate -lt '$lldate' -and OperatingSystem -notlike '*Server*'" -Properties Name, IPv4Address, whenchanged, operatingsystem, lastlogondate, canonicalname, OperatingSystemServicePack | Out-GridView
Я порылся в инете и нашел примеры как перемещать (пример ниже)...
Код: Выделить весь код
get-adcomputer win7-c1 | Move-ADObject -TargetPath 'ou=charlotte,dc=iammred,dc=net'
...и как отключать (скрипт ниже)
Код: Выделить весь код
$then = (Get-Date).AddDays(-60) # The 60 is the number of days from today since the last logon.
Get-ADComputer -Property Name,lastLogonDate -Filter {lastLogonDate -lt $then} | Set-ADComputer -Enabled $false
Но у меня не хватает опыта и ума их объединить. Я так понимаю, что надо как-то синтаксически правильно связать. Кто поможет с этим?

Отправлено: 11:20, 28-11-2014

 

Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
$wcdate = "{0:yyyMMddHHmmss}.Z" -f (Get-Date).AddDays(-28)
$lldate = (Get-Date).AddDays(-28).ToFileTime()
Get-ADComputer -Filter "whenChanged -lt '$wcdate' -and lastlogondate -lt '$lldate' -and OperatingSystem -notlike '*Server*'" | 
	Set-ADComputer -Enabled $false -PassThru | Move-ADObject -TargetPath 'ou=charlotte,dc=iammred,dc=net'
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:46, 28-11-2014 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Неадекват

Старожил


Сообщения: 470
Благодарности: 36

Профиль | Отправить PM | Цитировать


Kazun, спасибо, буду пробовать.

Отправлено: 11:55, 28-11-2014 | #3


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Неадекват:
в другую группу в домене »
Цитата Неадекват:
-TargetPath 'ou=charlotte,dc=iammred,dc=net' »
«OU» — это никак не «группы».

Отправлено: 11:56, 28-11-2014 | #4


Аватара для Неадекват

Старожил


Сообщения: 470
Благодарности: 36

Профиль | Отправить PM | Цитировать


Неадекват, попутный вопрос - а можно как-то еще в конце получить вывод в gridview того, что он переместил и отключил? Или там просто надо добавить out-gridview?

Iska, да, я не то слово написал, пардон. Не группа, а контейнер, конечно же.

Отправлено: 11:57, 28-11-2014 | #5


Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


Заменить Move-ADObject -TargetPath 'ou=charlotte,dc=iammred,dc=net' на:
Код: Выделить весь код
Move-ADObject -TargetPath 'ou=charlotte,dc=iammred,dc=net' -PassThru | Out-GridView
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:23, 28-11-2014 | #6


Аватара для Неадекват

Старожил


Сообщения: 470
Благодарности: 36

Профиль | Отправить PM | Цитировать


Kazun, спасибо, теперь буду тестировать.

Отправлено: 12:29, 28-11-2014 | #7


Аватара для Неадекват

Старожил


Сообщения: 470
Благодарности: 36

Профиль | Отправить PM | Цитировать


Поменял скрипт немного и он перестал работать. Я где-то ошибся, но не пойму где именно.

$wcdate = "{0:yyyMMddHHmmss}.Z" -f (Get-Date).AddDays(-372)
$lldate = (Get-Date).AddDays(-372).ToFileTime()
Get-ADComputer -Filter "whenChanged -lt '$wcdate' -and lastlogondate -lt '$lldate' -and OperatingSystem -notlike '*Server*' -and CanonicalName -notlike '*srv*'" -Properties Name, IPv4Address, whenchanged, operatingsystem, lastlogondate, canonicalname, OperatingSystemServicePack | Out-GridView

Отправлено: 13:38, 28-11-2014 | #8


Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


CanonicalName -notlike '*srv*'" -Нельзя использовать, поэтому удалить.

Отправлено: 13:45, 28-11-2014 | #9


Аватара для Неадекват

Старожил


Сообщения: 470
Благодарности: 36

Профиль | Отправить PM | Цитировать


Kazun, я подозревал что-то подобное... А почему нельзя и как тогда мне сделать фильтр по имени контейнера? Использовать distinguished name можно?

Отправлено: 13:53, 28-11-2014 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Управление компьютерами в AD ч. 2

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
PowerShell - Управление компьютерами в AD Неадекват Скриптовые языки администрирования Windows 13 19-08-2022 19:37
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 Samsonov Microsoft Windows NT/2000/2003 4 07-08-2007 11:20




 
Переход