Назад | Перейти на главную страницу

Сценарий Active Directory PowerShell выберите поле и добавьте его в другое поле

Я пытаюсь придумать сценарий, чтобы взять поле от пользователя (OfficeNumber) в AD и переместить его в другое пользовательское поле (HomeNumber), используя номер 800. По сути, мы настраиваем набор номера в одно касание в AD.

Пример пользователя John Doe - на вкладке «Общие» рядом с полем «Телефонный номер», который является полем OfficeNumber, у него есть добавочный номер 1234. На вкладке «Телефоны» у нас есть поле «Домашний», которое является полем HomeNumber в PowerShell, и его пустое поле на этой вкладке для Джона Доу.

Что я хочу сделать, так это заполнить поле HomeNUmber номером офиса, но продолжить с номером 800. Это будет выглядеть так: '8001239876 ,,, 1,1234'

Я знаю, как обновить эти поля вручную с помощью команды set-aduser, но я хочу выполнить массовый сценарий для всех пользователей в подразделении. Спасибо!

Изменить: вот код, который я придумал:

Import-Module ActiveDirectory
Clear-Host
# Getting telephone number value from all users into specific location to $users variable
$users = Get-ADUser -Filter * -SearchBase "dc=domain,dc=com" -Properties telephoneNumber,homephone
# Defining phone number
$phoneNumber = "8008251234,,,1,"
# Creating cycle and digging into users one by one
foreach ($user in $users)
{
  # Creating variable which will contain predefined phone number and adds value of Telephone Number field 
  $homePhone = $phoneNumber + $user.telephoneNumber
  # Setting Home Number field with new variable in cycle (for each user)
  Set-ADUser -Identity $user.SamAccountName -HomePhone $homePhone
}

Вот общая идея:

  1. Запустите get-aduser, чтобы перечислить нужные учетные записи. Возможно, используйте фильтр, чтобы получить только учетные записи с OfficeNumber. Сохраните этот результат в переменной. Например, $ users.

  2. Используйте блок foreach ($ user in $ users), чтобы просмотреть список пользователей.

  3. Внутри этого блока foreach возьмите Officenumber, добавьте свой номер 1-800 и сохраните его в новой переменной. Затем запишите эту переменную в атрибут HomeNumber.

Вероятно, лучше и быстрее всего это сделать с помощью PowerShell. Как уже упоминалось, используйте get-aduseer и зацикливайте список, который добавит 800 для каждого пользователя.

Если у вас возникли проблемы с PowerShell, существуют сторонние инструменты, которые могут вам в этом помочь. Вы можете, например, используйте решение под названием Adaxes. Все, что вам нужно сделать, это выбрать всех пользователей, которых вы хотите (выполнить поиск в консоли администратора, которая похожа на ADUC, но более функциональна, и просто выбрать пользователей, которые вам нужны), а затем вы можете массово изменить свойство HomeNumber, поместив ' 800% officeNumber% ', и он сделает свое дело.

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