Войти

Показать полную графическую версию : Создание скрипта - фильтр содержимого .svc


apelsinchik
17-07-2017, 10:33
Доброго дня.
Помогите пожалуйста написать скрипт для работы с Powershell
Cитуация такая:
Eсть файл, который периодически редактируется отделом кадров (AD.csv)
B этом файле информация по пользователям из Activ Directory приблизительно в таком порядке :

sAMAccountName,AccountStatus,mail,displayName
testv,Enabled,testv@domain.com,Test Vika
vladt,Disabled,vladt@domain.com,Vlad Tovbis
yanp,Disabled,yanp@domain.com,Yan Petrov
ninai,Enabled,ninai@domain.com,Nina Ivanova

и т.д.
Hужно сделать так, чтоб из этого файла брались пользователи из столбика AccountStatus, которые помечены как Disabled и :
или записывались в отдельный файл
или чтоб пользователь под этим статусом деактивировался в Active Directory.

Уже 3 дня копаю интернет, но ничего не могу найти. Со скриптами не дружу, сорри .
Надеюсь на вашу помощь
Спасибо

Kazun
17-07-2017, 10:37
Import-CSV AD.csv | Where {$_.AccountStatus -eq "Disabled"} | Foreach {Disable-ADAccount -Identity $_.sAMAccountName}

apelsinchik
18-07-2017, 10:38
Спасибо большое за быстрый ответ.

А можно деактивировать пользователя в Active Directory если нам не известен параметр sAMAccountName ?
Известен только параметр mail и Pager. Можно как то сделать запрос в AD , получить юзера подходящего по емайлу и деактивировать его, если параметр AccountStatus = Disabled в .svc?
Буду благодарен за скрипчик.

Pager,AccountStatus,mail,Name
2209,Enabled,testv@domain.com,Test Vika
9901,Disabled,vladt@domain.com,Vlad Tovbis
0111,Disabled,yanp@domain.com,Yan Petrov
5641,Enabled,ninai@domain.com,Nina Ivanova

И еще один вопрос. Можно в конце еще запилить, чтоб посылал уведомление на мыло, что скрипт отработал и сохранить отчет, кого деактивировал ?

Спасибо

Kazun
18-07-2017, 11:17
Import-CSV AD.csv | Where {$_.AccountStatus -eq "Disabled"} | Foreach { Get-ADUser -Filter "pager -eq '$($_.pager)' -and mail -eq '$($_.mail)'" | Disable-ADAccount}

apelsinchik
18-07-2017, 11:37
Запилил вот такой скрипт...
Не могу найти как сделать, чтоб он еще маил отправлял через eXchange.
А так, он еще сохраняет список изменений внесенных в основной документ.

Import-Csv d:\AD.csv | Where-Object {$_.AccountStatus -eq “Disabled”} | export-csv d:\ADD.csv
$data = import-csv d:\ADD.csv
Import-Module activedirectory

foreach ($line in $data)
{

$mail = $line.mail
$pager = $line.pager

$user = Get-ADUser -filter {mail -eq $mail}

if ($user -ne $null)
{
$user | Disable-ADAccount
Write-Host "Attempting to disable user $mail : Success" -ForegroundColor green
}
else
{
Write-Host "Can't find user $mail in the catalog" -ForegroundColor red
}
}

Kazun
18-07-2017, 11:41
Get-Help Send-MailMessage -Full (https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powershell.utility/send-mailmessage)




© OSzone.net 2001-2012