Автор Тема: Перенос неактивных УЗ AD через PoSh  (Прочитано 5698 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Wizard

  • Начинающий
  • *
  • Сообщений: 35
  • Рейтинг: 0
  • Пол: Мужской
    • Просмотр профиля
  • Откуда: Санкт-Петербург
Перенос неактивных УЗ AD через PoSh
« Ответ #15 : 26 октября 2016, 16:53:36 »
О да, теперь все отработало корректно! Спасибо! :beer:

Но на самом деле у объекта User есть уже нужный вам атрибут (DistinguishedName), и не надо снова заниматься его вычислением.
Если честно, насчет этого не совсем понял.

И ещё вопросик - подскажите, для чего используется обратная кавычка (`) после конвеера, например здесь:
$users=Get-ADuser -searchbase "cn=users, DC=gpma, DC=local" -Filter {(enabled -eq "true") -and (whencreated -lt $CreatedPass)-and (name -like "*")} -Properties lastLogontimeStamp,whenCreated, enabled |`

Оффлайн shs

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 4401
  • Рейтинг: 89
    • Просмотр профиля
    • ShS's blog
  • Откуда: Default city
Перенос неактивных УЗ AD через PoSh
« Ответ #16 : 26 октября 2016, 17:02:39 »
Если честно, насчет этого не совсем понял.
посмотрите, что содержит $users[0].DistinguishedName

Оффлайн Wizard

  • Начинающий
  • *
  • Сообщений: 35
  • Рейтинг: 0
  • Пол: Мужской
    • Просмотр профиля
  • Откуда: Санкт-Петербург
Перенос неактивных УЗ AD через PoSh
« Ответ #17 : 27 октября 2016, 09:33:43 »
посмотрите, что содержит $users[0].DistinguishedName
Ничего там нет :pardon:

Оффлайн shs

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 4401
  • Рейтинг: 89
    • Просмотр профиля
    • ShS's blog
  • Откуда: Default city
Перенос неактивных УЗ AD через PoSh
« Ответ #18 : 27 октября 2016, 10:20:19 »
подскажите, для чего используется обратная кавычка (`) после конвеера, например здесь
используется для того, чтобы дать движку понять, что на следующей строке последует продолжение. Если строка команд у вас получается слишком длинной,  и вы хотите разбить ее на несколько строк, то этот символ вы обязаны ставить в конце каждой строки.


Updated: 27 October 2016, 10:24:34

посмотрите, что содержит $users[0].DistinguishedName
Ничего там нет :pardon:
странно  ???

У меня так:
PS> (Get-ADuser -Filter *| select -First 1).DistinguishedName
CN=Гость,CN=Users,DC=domain,DC=local
« Последнее редактирование: 27 октября 2016, 10:38:03 от shs »

Оффлайн Wizard

  • Начинающий
  • *
  • Сообщений: 35
  • Рейтинг: 0
  • Пол: Мужской
    • Просмотр профиля
  • Откуда: Санкт-Петербург
Перенос неактивных УЗ AD через PoSh
« Ответ #19 : 27 октября 2016, 11:10:02 »
используется для того, чтобы дать движку понять, что на следующей строке последует продолжение. Если строка команд у вас получается слишком длинной,  и вы хотите разбить ее на несколько строк, то этот символ вы обязаны ставить в конце каждой строки.
Что-то я не понимаю зачем это, ведь данные по конвееру могут передаться и командлету на следующей строке...
А, кажется понял, это наверное надо если писать в обычной консоли PoSh? Я использую PoSh ISE, и там это видимо не нужно.

странно  ???
Если выполнить команду (Get-ADuser -Filter *| select -First 1).DistinguishedName результат у меня точно такой же, как у Вас.
Но если выполнять по моему скрипту, получается так:
PS C:\Users\admin_svv> $users

Name          LastLogon           whenCreated         enabled
----          ---------           -----------         -------
SQLDebugger   01.01.1601 3:00:00  14.02.2013 15:57:20    True
IWAM_BDC      23.06.2009 16:49:56 23.06.2009 16:49:48    True
scada         29.01.2015 22:54:04 20.02.2013 15:51:25    True
IUSR_PDC_GPMA 25.09.2015 10:44:50 20.02.2008 13:48:40    True
ASPNET        01.01.1601 3:00:00  20.02.2008 13:48:40    True
admin_gpma    24.09.2015 21:15:14 20.02.2008 13:48:39    True
IWAM_PDC_GPMA 01.01.1601 3:00:00  20.02.2008 13:48:40    True



PS C:\Users\admin_svv> $users[0]

Name        LastLogon          whenCreated         enabled
----        ---------          -----------         -------
SQLDebugger 01.01.1601 3:00:00 14.02.2013 15:57:20    True



PS C:\Users\admin_svv> $users[0].DistinguishedName

PS C:\Users\admin_svv>

Оффлайн Fray

  • Администратор
  • Олдфаг
  • *****
  • Сообщений: 6668
  • Рейтинг: 58
  • Пол: Мужской
    • Просмотр профиля
    • IT-Бложек
  • Откуда: Петербург
Перенос неактивных УЗ AD через PoSh
« Ответ #20 : 27 октября 2016, 11:19:17 »
$users=Get-ADuser -searchbase "cn=users, DC=gpma, DC=local" -Filter {(enabled -eq "true") -and (whencreated -lt $CreatedPass)-and (name -like "*")} -Properties lastLogontimeStamp,whenCreated, enabled |`
Надо свойство такое добавить потому что...


Updated: 27 October 2016, 11:19:50

-Properties lastLogontimeStamp,whenCreated, enabled, DistinguishedName
MCSE: Messaging, MCSE: Communication, MCSE: Productivity, MCSA: Office 365, MCPS
my blog - http://it-blojek.ru

Оффлайн shs

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 4401
  • Рейтинг: 89
    • Просмотр профиля
    • ShS's blog
  • Откуда: Default city
Перенос неактивных УЗ AD через PoSh
« Ответ #21 : 27 октября 2016, 11:43:03 »
$users=Get-ADuser -searchbase "cn=users, DC=gpma, DC=local" -Filter {(enabled -eq "true") -and (whencreated -lt $CreatedPass)-and (name -like "*")} -Properties lastLogontimeStamp,whenCreated, enabled |`
Надо свойство такое добавить потому что...


Updated: 27 October 2016, 11:19:50

-Properties lastLogontimeStamp,whenCreated, enabled, DistinguishedName
По ходу дела так и есть, но это странно.
Я всю жизнь думал, что, если свойство отдается по дефолту, то оно будет отдаваться всегда, а в -Properties надо указывать только те свойства, которые необходимо добавить к отдаваемым по дефолту. 
« Последнее редактирование: 27 октября 2016, 12:51:02 от shs »

Оффлайн Wizard

  • Начинающий
  • *
  • Сообщений: 35
  • Рейтинг: 0
  • Пол: Мужской
    • Просмотр профиля
  • Откуда: Санкт-Петербург
Перенос неактивных УЗ AD через PoSh
« Ответ #22 : 27 октября 2016, 12:39:10 »
Надо свойство такое добавить потому что...
-Properties lastLogontimeStamp,whenCreated, enabled, DistinguishedName
Это не помогло, результат также не выводится.

Оффлайн shs

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 4401
  • Рейтинг: 89
    • Просмотр профиля
    • ShS's blog
  • Откуда: Default city
Перенос неактивных УЗ AD через PoSh
« Ответ #23 : 27 октября 2016, 12:50:18 »
Это не помогло, результат также не выводится.
а, ну, я правильно выше написал: дефолтные свойства всегда остаются у объекта (их не надо указывать в -Properties)
Но дальше по конвейеру у вас стоит следующая конструкция:

select Name, @{Name=”LastLogon”;Expression={[datetime]::FromFileTime($_.lastLogontimeStamp)}}, whenCreated, enabled

Эта конструкция вырезает только заданные в ней свойства. Если хотите, можете добавить DistinguishedName в этот select.

Оффлайн Wizard

  • Начинающий
  • *
  • Сообщений: 35
  • Рейтинг: 0
  • Пол: Мужской
    • Просмотр профиля
  • Откуда: Санкт-Петербург
Перенос неактивных УЗ AD через PoSh
« Ответ #24 : 27 октября 2016, 15:38:27 »
Если хотите, можете добавить DistinguishedName в этот select.
Точно, вот теперь выводит.
Только я не понял, как этим можно было облегчить данный скрипт? В Identity по-другому передавать имена? Но проще вроде от этого не станет...

Оффлайн shs

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 4401
  • Рейтинг: 89
    • Просмотр профиля
    • ShS's blog
  • Откуда: Default city
Перенос неактивных УЗ AD через PoSh
« Ответ #25 : 27 октября 2016, 16:05:14 »
В Identity по
в Identity передавать $_.DistinguishedName

Оффлайн Wizard

  • Начинающий
  • *
  • Сообщений: 35
  • Рейтинг: 0
  • Пол: Мужской
    • Просмотр профиля
  • Откуда: Санкт-Петербург
Перенос неактивных УЗ AD через PoSh
« Ответ #26 : 27 октября 2016, 17:01:32 »
shs, ну да, я так и понял, а чем от этого легче?

Оффлайн shs

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 4401
  • Рейтинг: 89
    • Просмотр профиля
    • ShS's blog
  • Откуда: Default city
Перенос неактивных УЗ AD через PoSh
« Ответ #27 : 27 октября 2016, 17:37:05 »
shs, ну да, я так и понял, а чем от этого легче?
Ну, хотя бы тем, что пользователи могут быть разбросаны по разным OU внутри AD и для каждого пользователя, чтобы вычислить его DN, вы должны знать в каком OU находится его учетка. Ну и, кроме того, зачем тратить время на вычисление того, что уже и так у вас есть в готовом для употребления виде?