PDA

Показать полную графическую версию : скрипт отключения пользователей из Exel в AD через PS


Страниц : 1 [2]

Kazun
16-02-2015, 13:18
Get-ADuser -Filter "EmployeeID -eq '$EmployeeID' -or DisplayName -like '*$DisplayName*'"

Для Exchange:
Configure message delivery restrictions for a mailbox
(https://technet.microsoft.com/en-us/library/bb397214(v=exchg.150).aspx)

yuriy.nepomnyashchiy.3@fb
17-02-2015, 09:31
Kazun, спасибо за ссылку, но если Вы поняли что я имел в виду, через консоль я могу установить ограничения на доставку и приём руками, а как это реализовать скриптовой командой?

я хочу отключить пользователя потом граничить ему сообщения в размере один килобайт.

в указанной ссылке общие понятия как это сделать на консоли.

и да exchange 2010 :)

Kazun
17-02-2015, 09:38
Что вызывает сложность щелкнуть раз, на ссылку ниже - Configure storage quotas for a mailbox (https://technet.microsoft.com/en-us/library/aa998353(v=exchg.150).aspx)
Configure message size limits for a mailbox (https://technet.microsoft.com/en-us/library/bb124708(v=exchg.150).aspx)

yuriy.nepomnyashchiy.3@fb
17-02-2015, 10:14
Kazun, спасибо! просто не увидел, я прочту и думаю у меня буду вопросы, я ещё не спец в PS , обычно в таких примерах указываются общие положения, но как их сцепить со своим скриптом врятли напишут) если Вы не против я ещё обращусь к Вам)

Kazun
17-02-2015, 10:42
Запускать скрипт в шелле EMS,немного изменив:

Get-ADuser -Filter "EmployeeID -eq '$EmployeeID' -or DisplayName -like '*$DisplayName*'" | Disable-ADAccount -Confirm:$false -PassThru | Foreach {
Set-Mailbox -Identity $_.UserPrincipalName -MaxSendSize 1kb -MaxReceiveSize 1kb
}

yuriy.nepomnyashchiy.3@fb
17-02-2015, 17:27
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
ПРЕДУПРЕЖДЕНИЕ: Команда выполнена успешно, но параметры 'ххх.ххх.хх/хх/хх/Петрова Наталия Андреевна' не были изменены.




отключает их нормально.
но меняет размер сообщений только у Петрова Наталия Андреевна , а в файле она последняя в списке из этих двух человек и плюс ещё

"Команда выполнена успешно, но параметры 'ххх.ххх.хх/хх/хх/Петрова Наталия Андреевна' не были изменены."

что не так :(

Kazun
18-02-2015, 12:43
Вместо этого кода:
Get-ADuser -Filter "EmployeeID -eq '$EmployeeID' -and DisplayName -eq '$DisplayName'" | Disable-ADAccount -Confirm:$false -PassThru

Заменить, а не добавить или вставить:
Get-ADuser -Filter "EmployeeID -eq '$EmployeeID' -or DisplayName -like '*$DisplayName*'" | Disable-ADAccount -Confirm:$false -PassThru | Foreach {
Set-Mailbox -Identity $_.UserPrincipalName -MaxSendSize 1kb -MaxReceiveSize 1kb
}

Yuriy_nepo
13-05-2015, 11:30
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
}

Kazun
13-05-2015, 11:33
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
}

Yuriy_nepo
13-05-2015, 11:45
объясните доходчиво, что значит "$_" и вообще не очень понимаю значение знака $, если есть время

Kazun
13-05-2015, 12:00
$_ (доллар и нижнее подчеркивание) — применяется для передачи значения при использовании конвейера. Специальная переменная $_ принимает текущее значение каждого объекта, переданного по конвейеру. Например следующая команда просто выводит по очереди все значения:

′one′, ′two′, ′three′ | foreach {Write-Host $_}

http://windowsnotes.ru/wp-content/uploads/2015/03/dollar7.png

apelsinchik
12-07-2017, 17:25
Привет друзья.
Нужен такой же скрипт, только имеется дополнительная колонка со статусом пользователя. (Account Status)
Нужно так... Когда пользователь находится в статусе Disabled - то отключить его в АД
Если пользователь Enabled - то не трогать его.
Нужно как бы фильтровать
Спасибо




© OSzone.net 2001-2012