Я пытаюсь придумать сценарий, чтобы взять поле от пользователя (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
}
Вот общая идея:
Запустите get-aduser, чтобы перечислить нужные учетные записи. Возможно, используйте фильтр, чтобы получить только учетные записи с OfficeNumber. Сохраните этот результат в переменной. Например, $ users.
Используйте блок foreach ($ user in $ users), чтобы просмотреть список пользователей.
Внутри этого блока foreach возьмите Officenumber, добавьте свой номер 1-800 и сохраните его в новой переменной. Затем запишите эту переменную в атрибут HomeNumber.
Вероятно, лучше и быстрее всего это сделать с помощью PowerShell. Как уже упоминалось, используйте get-aduseer и зацикливайте список, который добавит 800 для каждого пользователя.
Если у вас возникли проблемы с PowerShell, существуют сторонние инструменты, которые могут вам в этом помочь. Вы можете, например, используйте решение под названием Adaxes. Все, что вам нужно сделать, это выбрать всех пользователей, которых вы хотите (выполнить поиск в консоли администратора, которая похожа на ADUC, но более функциональна, и просто выбрать пользователей, которые вам нужны), а затем вы можете массово изменить свойство HomeNumber, поместив ' 800% officeNumber% ', и он сделает свое дело.
Несмотря на то, что это платный инструмент, вы можете просто загрузить и использовать бесплатную пробную версию, так что это не будет вам ничего стоить, если это разовая работа.