![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - скрипт отключения пользователей из Exel в AD через PS |
|
PowerShell - скрипт отключения пользователей из Exel в AD через PS
|
Новый участник Сообщения: 12 |
Добрый день, коллеги!
облазил весь интернет, и везде приводятся разные примеры отключения пользователей списком и все то не работают, то со своими параметрами не очень понятными мне. собственно суть проста, что нужно. 1. есть список пользователей в эксель, где есть первая колонка табельный номер, он же EmployeeID и вторая колонка ФИО оно же DisplayName 2. уже смирился, что из самого экселя никто не даёт примера, чтоб отключить список пользователей именно из эксель файла, без перевода в CSV. перевожу в CSV. удалось собрать скрипт, работает без ошибок, определяет и таб.номер и ФИО, но не отключает...есть подозрения что, чего-то не хватает.. вот собственно скрипт ниже.. Скрытый текст
cls
Import-Module ActiveDirectory $Users = Import-Csv "D:\scripts\ps\users.csv" -Delimiter ";" #$Global:count = 0 function disableUser ($EmployeeID, $DisplayName) { Write-Host ('EmployeeID: ' + $EmployeeID) Write-Host ('DisplayName: ' + $DisplayName) $login = (Get-ADuser -Filter {DisplayName -eq $EmployeeID -and Title -eq $DisplayName}).SamAccountName #$Global:count = $Global:count + 1 } function main { foreach($User in $Users) { disableUser $User.EmployeeID $User.DisplayName } } main #Write-Host ('count: ' + $Global:count) Буду благодарен за помощь. |
|
Отправлено: 17:27, 02-02-2015 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать
Для Exchange:
Configure message delivery restrictions for a mailbox |
Последний раз редактировалось Kazun, 16-02-2015 в 23:39. Отправлено: 13:18, 16-02-2015 | #21 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 12
|
Профиль | Сайт | Отправить PM | Цитировать Kazun, спасибо за ссылку, но если Вы поняли что я имел в виду, через консоль я могу установить ограничения на доставку и приём руками, а как это реализовать скриптовой командой?
я хочу отключить пользователя потом граничить ему сообщения в размере один килобайт. в указанной ссылке общие понятия как это сделать на консоли. и да exchange 2010 ![]() |
Отправлено: 09:31, 17-02-2015 | #22 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать Что вызывает сложность щелкнуть раз, на ссылку ниже - Configure storage quotas for a mailbox
Configure message size limits for a mailbox |
Отправлено: 09:38, 17-02-2015 | #23 |
Новый участник Сообщения: 12
|
Профиль | Сайт | Отправить PM | Цитировать Kazun, спасибо! просто не увидел, я прочту и думаю у меня буду вопросы, я ещё не спец в PS , обычно в таких примерах указываются общие положения, но как их сцепить со своим скриптом врятли напишут) если Вы не против я ещё обращусь к Вам)
|
Отправлено: 10:14, 17-02-2015 | #24 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать |
Отправлено: 10:42, 17-02-2015 | #25 |
Новый участник Сообщения: 12
|
Профиль | Сайт | Отправить PM | Цитировать Kazun,
вот что получилось) Скрытый текст
#Загружаем командлеты Exchange
.'C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1' Connect-ExchangeServer -auto Import-Module ActiveDirectory $file = "F:\test2\list.xlsx" $ex = New-Object -ComObject Excel.Application $wb = $ex.Workbooks.Open($file) $wb.Worksheets.Item("Лист1").UsedRange.Rows | Foreach { $DisplayName = $_.value2[1,1] $EmployeeID = $_.value2[1,2] Write-Host ('EmployeeID: ' + $EmployeeID) -ForegroundColor Green Write-Host ('DisplayName: ' + $DisplayName) -ForegroundColor Green Get-ADuser -Filter "EmployeeID -eq '$EmployeeID' -and DisplayName -eq '$DisplayName'" | Disable-ADAccount - Confirm:$false -PassThru } $wb.Close() $ex.Quit() Get-Process EXCEL | Stop-Process -Force [System.Runtime.Interopservices.Marshal]::ReleaseComObject($ex) [System.Runtime.Interopservices.Marshal]::ReleaseComObject($wb) Remove-Variable ex Remove-Variable wb Get-ADuser -Filter "EmployeeID -eq '$EmployeeID' -or DisplayName -like '*$DisplayName*'" | Disable-ADAccount -Confirm:$false - PassThru | Foreach { Set-Mailbox -Identity $_.UserPrincipalName -MaxSendSize 1kb -MaxReceiveSize 1kb } #логирование 'пока не придумано' вывод PS F:\test2> F:\test2\exel.ps1 Командная консоль Exchange! ПОДРОБНО: Подключение к ххх-хххх.хх.хх.ххх ПОДРОБНО: Подключен к ххх-хххх.хх.хх.ххх EmployeeID: 111111 DisplayName: Иванова Елена Игоревна DistinguishedName : CN=Иванова Елена Игоревна,OU=хх,OU=хх,DC=ххх,DC=ххх,DC=хх Enabled : False Name : Иванова Елена Игоревна ObjectClass : user ObjectGUID : 4eaf706c-01126-4826-93fa-23b49c001323e SamAccountName : ххххх SID : S-1-5-21-2856554560-2831245470-2975245544-169075 UserPrincipalName : ххх@хх.хх.ххх EmployeeID: 111112 DisplayName: Петрова Наталия Андреевна DistinguishedName : CN=Петрова Наталия Андреевна,OU=хх,OU=хх,DC=ххх,DC=ххх,DC=хх Enabled : False Name : Петрова Наталия Андреевна ObjectClass : user ObjectGUID : 9b8a571b-4190-48a9-8de3-4e4680b76e2e SamAccountName : ххххх SID : S-1-5-21-285347560-2810845470-29456544-168656 UserPrincipalName : ххх@хх.хх.ххх 0 0 ПРЕДУПРЕЖДЕНИЕ: Команда выполнена успешно, но параметры 'ххх.ххх.хх/хх/хх/Петрова Наталия Андреевна' не были изменены. отключает их нормально. но меняет размер сообщений только у Петрова Наталия Андреевна , а в файле она последняя в списке из этих двух человек и плюс ещё "Команда выполнена успешно, но параметры 'ххх.ххх.хх/хх/хх/Петрова Наталия Андреевна' не были изменены." что не так ![]() |
Отправлено: 17:27, 17-02-2015 | #26 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать Вместо этого кода:
Get-ADuser -Filter "EmployeeID -eq '$EmployeeID' -and DisplayName -eq '$DisplayName'" | Disable-ADAccount -Confirm:$false -PassThru |
Отправлено: 12:43, 18-02-2015 | #27 |
Новый участник Сообщения: 2
|
Профиль | Отправить PM | Цитировать Kazun, Хотел Вас поблагодарить, но извините что поздно) полученные от Вас указания в работе скрипта работают! Спасибо!
но если не трудно, помогите пожалуйста ещё с двумя моментами, необходимо ставить галочку в карточке exсhange пользователя для сокрытия его из адресной книги и ещё необходимо внести в поле дискрипшн в АД комментарий, саму команду я знаю - Descripton 'комментарий' , но куда её вставить не очень понимаю в команде Get-ADuser -Filter "EmployeeID -eq '$EmployeeID' -or DisplayName -like '*$DisplayName*'" | Disable-ADAccount -Confirm:$false -PassThru | Foreach { Set-Mailbox -Identity $_.UserPrincipalName -MaxSendSize 1kb -MaxReceiveSize 1kb } |
Отправлено: 11:30, 13-05-2015 | #28 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать Get-ADuser -Filter "EmployeeID -eq '$EmployeeID' -or DisplayName -like '*$DisplayName*'" | Disable-ADAccount -Confirm:$false -PassThru | Foreach { Set-ADuser $_ -Description "Комментарий" Set-Mailbox -Identity $_.UserPrincipalName -MaxSendSize 1kb -MaxReceiveSize 1kb -HiddenFromAddressListsEnabled $True } |
Отправлено: 11:33, 13-05-2015 | #29 |
Новый участник Сообщения: 2
|
Профиль | Отправить PM | Цитировать объясните доходчиво, что значит "$_" и вообще не очень понимаю значение знака $, если есть время
|
Отправлено: 11:45, 13-05-2015 | #30 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
PowerShell - Скрипт для добавления пользователей в AD | Nord18 | Скриптовые языки администрирования Windows | 4 | 10-03-2016 15:52 | |
PowerShell - Изменение атрибутов всех пользователей AD из exel | admt | Скриптовые языки администрирования Windows | 3 | 07-03-2014 18:07 | |
VBS/WSH/JS - HELP!. Не работает скрипт заведения пользователей в AD | userovich2 | Скриптовые языки администрирования Windows | 3 | 24-10-2010 23:17 | |
Любой язык - [решено] Нужен скрипт cmd,vbs,PowerShell для проверки списка пользователей и их удаление из AD | alex_frog | Скриптовые языки администрирования Windows | 6 | 22-07-2009 18:41 | |
Скрипт для проверки списка пользователей и их удаление из AD | alex_frog | Microsoft Windows NT/2000/2003 | 0 | 22-07-2009 13:16 |
|