Форум программистов, компьютерный форум, киберфорум
Наши страницы

PowerShell

Войти
Регистрация
Восстановить пароль
 
Almesh
1 / 1 / 0
Регистрация: 18.03.2015
Сообщений: 21
#1

Скрипт, дополняющий выгрузку определёнными полями из AD - PowerShell

16.12.2017, 10:32. Просмотров 214. Ответов 1
Метки нет (Все метки)

Доброго времени суток, форумчане.

От пользователя поступила просьба дополнить выгрузку (файл в формате .xlsx). Этот файл выглядит следующим образом:

Таб. номер ФИО Подразделение Должность E-mail
00055245 Евсеев Анатолий Викторович Отдел кадров Специалист по подбору персонала ????


То есть нужно по табельному номеру (в AD это будет в данном случае атрибут PostalCode) сопоставить адрес электронной почты (атрибут mail) и выгрузить для каждого такого пользователя в крайний столбец "E-mail".

Может у кого-то есть уже такой готовый скрипт? Поделитесь, пож-та.

Заранее спасибо

P.S. И есть ещё похожая аналогичная задача, но там посложнее. Нужно дополнить выгрузку двумя столбцами аз AD:
1. Статус учётной записи (активна/заблокирована);
2. Время последнего успешного логона в систему (этот параметр не реплицируется между DC, поэтому тут нужно, чтобы скрипт проходил по всем DC в домене и выбирал именно последнюю дату, атрибут LastLogonTimeStamp)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.12.2017, 10:32
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Скрипт, дополняющий выгрузку определёнными полями из AD (PowerShell):

Скрипт для выгрузки в CSV членов группы AD с определёнными атрибутами - PowerShell
Всем привет. Может есть у кого такой готовый скрипт, который выгружает состав группы из AD по столбцам (ФИО, Логин, Отдел, Должность)?

Написать скрипт по добавлению некоторых товаров в базу с 5 полями для ввода - PHP БД
Задание такое: Написать скрипт-веб форму по добавлению некоторых товаров в базу с 5 полями для ввода, а так же отображение уже занесенных...

Дополняющий список - Delphi
На делфи(7) нужно реализовать выпадающий список. Например если я набираю <a снизу должно появиться <abbr> <acronym> <address> ...

Определите новый класс Student с двумя закрытыми полями полями: name и sumb - C#
Я очередной студент, которые вам, полагаю, очень надоели, но все же я очень надеюсь на вашу помощь. Задание 4. Массивы Объектов. ...

Определить класс Student с двумя закрытыми полями полями: name и sumb - C#
Всем доброго дня. Помогите пожалуйста довести код до ума. Я что то никак не разберусь. Вот задание: 1. Создайте новое консольное...

Метод, дополняющий List<T> объектом класса - C#
Здравствуйте, товарищи высокие программисты! :) Мне нужна помощь. Буду краток: делаю игру, хочу сделать в ней бафф/дебафф систему. Есть...

1
KDE777
677 / 500 / 212
Регистрация: 22.01.2016
Сообщений: 1,395
18.12.2017, 17:25 #2
Цитата Сообщение от Almesh Посмотреть сообщение
То есть нужно по табельному номеру (в AD это будет в данном случае атрибут PostalCode) сопоставить адрес электронной почты (атрибут mail) и выгрузить для каждого такого пользователя в крайний столбец "E-mail".
Цитата Сообщение от Almesh Посмотреть сообщение
P.S. И есть ещё похожая аналогичная задача, но там посложнее. Нужно дополнить выгрузку двумя столбцами аз AD:
1. Статус учётной записи (активна/заблокирована);
2. Время последнего успешного логона в систему (этот параметр не реплицируется между DC, поэтому тут нужно, чтобы скрипт проходил по всем DC в домене и выбирал именно последнюю дату, атрибут LastLogonTimeStamp)
Скрипт объединяющий сразу обе задачи (исходный xlsx-файл необходимо экспортировать в csv-формат - C:\Temp\users.csv):

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
$users = Import-Csv C:\Temp\users.csv -Delimiter ';' -Encoding Default
$DCs = (Get-ADDomainController -Filter *).Name
 
$properties = [ordered]@{
    "DC" = '';
    "Таб. Номер" = '';
    "ФИО" = '';
    "Подразделение" = '';
    "Должность" = '';
    "E-mail" = '';
    "lastLogon" = '';
    "Status" = ''
}
$item = New-Object –TypeName PSObject –Prop $properties
 
Workflow GetADUser ($ID)
{
    Get-ADUser -Filter{PostalCode -eq $id} -Properties POBox,mail,lastLogon
}
 
$UsersList = @()
 
foreach ($user in $users)
{
 
    $id = $user.'Таб. Номер'
 
    $item.'Таб. Номер' = $id
    $item.ФИО = $user.ФИО
    $item.Подразделение = $user.Подразделение
    $item.Должность = $user.Должность
        
    if ($AD_Data = GetADUser -PSComputerName $DCs -ID $id)
    {
        $ADUser = $AD_Data[0]
        
        if ($ADUser.mail) {$item.'E-mail' = $ADUser.mail}
        else {$item.'E-mail' = '-'}
        if ($ADUser.Enabled) {$item.Status = 'Enabled'}
        else {$item.Status = 'Disabled'}
 
        $lastLogon = $AD_Data | ? lastLogon -ne 0 | ? lastLogon | select PSComputerName,@{N = 'lastLogon'; E = {[datetime]::FromFileTime($_.lastLogon)}} | sort lastLogon | select -Last 1
 
        if ($lastLogon.lastLogon)
        {
            $item.DC = $lastLogon.PSComputerName
            $item.lastLogon = $lastLogon.lastLogon
        }
        else
        {
            $item.DC = '-'
            $item.lastLogon = '-'
        }
    }
    else
    {
        $item.DC = '-'
        $item.lastLogon = '-'
        $item.'E-mail' = '-'
        $item.Status = '-'
    }
   
    $UsersList += $item | select *
}
 
$UsersList | ft -a
$UsersList | Export-Csv 'C:\Temp\users_out.csv' -Encoding UTF8 -Delimiter ';' -NoTypeInformation
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.12.2017, 17:25
Привет! Вот еще темы с ответами:

Создать модуль, дополняющий функции «тангенс», «котангенс» и «перевод градусов в радианы» - Turbo Pascal
Составить программу, которая использует данный модуль.

Создать модуль, дополняющий математические возможности Паскаля функциями для нахождения площади треугольника - Turbo Pascal
Создать модуль, дополняющий математические возможности Паскаля функциями для нахождения площади треугольника: «sGeron» - по известным трем...

Как сделать выгрузку 1с 8.2 - 1С
Доброго времени суток, господа профессионалы! Помогите, сделать выгрузку данных в формате xml из 1С 8.2 Предприятие в 1С 8.2 ЗУП 2.5 ...

Осуществляю выгрузку справочников в текстовый файл. - 1С
Осуществляю выгрузку справочников в текстовый файл. Есть справочник он ссылается на другой справочник( а именно реквизит допустим Склад) ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru