Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   csv. Не происходит добавление/изменение атрибутов пользователя в AD. (http://forum.oszone.net/showthread.php?t=334550)

rango13 28-04-2018 06:18 2811115

csv. Не происходит добавление/изменение атрибутов пользователя в AD.
 
Добрый день!

Скрипт не добавляет из ранее сформированного CSV-файла(сохранённого из MS Excel 2013 и конвертированного в формат UTF-8-BOM средствами Notepad++) некоторые атрибуты в AD:

$csvfile = 'D:\User_Info.csv'
$ADServer = 'DC01'
Import-Module ActiveDirectory
Clear-Host
Function Update-ADUsers {

Import-Csv -path $csvfile -Delimiter ";" -Encoding UTF8 | `
ForEach-Object {

$sam = $_.SamAccountName
$Manager = $_.manager
$Department = $_.Department
$Description = $_.Description
$Title = $_.Title
$Company = $_.Company
$Town = $_.l
$StreetAddress = $_.StreetAddress
$telephoneNumber = $_.telephoneNumber
$mobile = $_.mobile
$info = $_.info
$postalCode = $_.postalCode
$Pager = $_.Pager
}

Try { $SAMinAD = Get-ADUser -server $ADServer -LDAPFilter "(sAMAccountName=$sam)"}
Catch { }
If($SAMinAD -ne $null -and $sam -ne '')
{

$manager1 = Get-ADUser $Manager | select DistinguishedName
IF ($Manager -ne '' ) { Set-AdUser $sam -manager $Manager1 }
IF ($Department -ne '' ) { Set-ADUser -server $ADServer -Identity $sam -Replace @{Department=$Department} }
IF ($Description -ne '' ) { Set-ADUser -server $ADServer -Identity $sam -Replace @{Description=$Description} }
IF ($Title -ne '' ) { Set-ADUser -server $ADServer -Identity $sam -Replace @{Title=$Title} }
IF ($Company -ne '' ) { Set-ADUser -server $ADServer -Identity $sam -Replace @{Company=$Company} }
IF ($Town -ne '' ) { Set-ADUser -server $ADServer -Identity $sam -Replace @{l=$Town} }
IF ($StreetAddress -ne '' ) { Set-ADUser -server $ADServer -Identity $sam -Replace @{StreetAddress=$StreetAddress} }
IF ($telephoneNumber -ne '' ) { Set-ADUser -server $ADServer -Identity $sam -Replace @{telephoneNumber=$telephoneNumber} }
IF ($mobile -ne '' ) { Set-ADUser -server $ADServer -Identity $sam -Replace @{mobile=$mobile} }
IF ($info -ne '' ) { Set-ADUser -server $ADServer -Identity $sam -Replace @{info=$info} }
IF ($postalCode -ne '' ) { Set-ADUser -server $ADServer -Identity $sam -Replace @{postalCode=$postalCode} }
IF ($Pager -ne '' ) { Set-ADUser -server $ADServer -Identity $sam -Replace @{Pager=$Pager} }
Set-ADUser $sam -clear wWWHomePage,facsimileTelephoneNumber,homePhone
}

}

Update-ADUsers


D:\User_Info.csv

SamAccountName;manager;Department;physicalDeliveryOfficeName;Description;Title;Company;l;StreetAddre ss;telephoneNumber;mobile;Pager;info;postalCode;;
IvanovII;Director;Администрация;Администрация;Иванов Иван Иванович;Заместитель №1;"ООО ""Система+""";Новосибирск;пр. Яковлева, 20у;1001 (80001);+7 999 888 7777;;Обед с 13-00 до 14-00 (+3 МСК);123456;;
IvanovID;Director;Администрация;Администрация;КИванов Иван Дмитриевич;Заместитель №2;"ООО ""Система+""";Новосибирск;пр. Яковлева, 20у;1002 (80002);+7 999 888 7778;;Обед с 13-00 до 14-00 (+3 МСК);123456;;
IVANOVDD;;Администрация;Администрация;Иванов Дмитрий Дмитриевич;Директор;"ООО ""Система+""";Новосибирск;пр. Яковлева, 20у;1003 (80003);+7 999 888 7779;;Обед с 13-00 до 14-00 (+3 МСК);123456;;


Логинюсь на сервер DC01, смотрю атрибуты пользователей(из csv-файла выше) в оснастке AD "Пользователи и компьютеры" - изменений нет. Вопрос: чего не так делаю?

Iska 28-04-2018 06:51 2811118

Цитата:

Цитата rango13
Вопрос: чего не так делаю? »

Как минимум, не предусматриваете в коде каких-либо действий для варианта Catch { }, для случая ЛОЖНО в условии If($SAMinAD -ne $null -and $sam -ne '').

Kazun 28-04-2018 11:25 2811144

Код:

Function Update-ADUsers {

        Import-Csv -path $csvfile -Delimiter ";" -Encoding UTF8 | ForEach-Object {
                $sam = $_.SamAccountName
                $Manager = $_.manager
                $Department = $_.Department
                $Description = $_.Description
                $Title = $_.Title
                $Company = $_.Company
                $Town = $_.l
                $StreetAddress = $_.StreetAddress
                $telephoneNumber = $_.telephoneNumber
                $mobile = $_.mobile
                $info = $_.info
                $postalCode = $_.postalCode
                $Pager = $_.Pager
               
                $SAMinAD = Get-ADUser -server $ADServer -LDAPFilter "(sAMAccountName=$sam)"
               
                if($SAMinAD) {

                        $manager1 = (Get-ADUser $Manager).DistinguishedName
                        IF ($Manager -ne '' ) { Set-AdUser $sam -manager $Manager1 }
                        IF ($Department -ne '' ) { Set-ADUser -server $ADServer -Identity $sam -Replace @{Department=$Department} }
                        IF ($Description -ne '' ) { Set-ADUser -server $ADServer -Identity $sam -Replace @{Description=$Description} }
                        IF ($Title -ne '' ) { Set-ADUser -server $ADServer -Identity $sam -Replace @{Title=$Title} }
                        IF ($Company -ne '' ) { Set-ADUser -server $ADServer -Identity $sam -Replace @{Company=$Company} }
                        IF ($Town -ne '' ) { Set-ADUser -server $ADServer -Identity $sam -Replace @{l=$Town} }
                        IF ($StreetAddress -ne '' ) { Set-ADUser -server $ADServer -Identity $sam -Replace @{StreetAddress=$StreetAddress} }
                        IF ($telephoneNumber -ne '' ) { Set-ADUser -server $ADServer -Identity $sam -Replace @{telephoneNumber=$telephoneNumber} }
                        IF ($mobile -ne '' ) { Set-ADUser -server $ADServer -Identity $sam -Replace @{mobile=$mobile} }
                        IF ($info -ne '' ) { Set-ADUser -server $ADServer -Identity $sam -Replace @{info=$info} }
                        IF ($postalCode -ne '' ) { Set-ADUser -server $ADServer -Identity $sam -Replace @{postalCode=$postalCode} }
                        IF ($Pager -ne '' ) { Set-ADUser -server $ADServer -Identity $sam -Replace @{Pager=$Pager} }
                        Set-ADUser $sam -clear wWWHomePage,facsimileTelephoneNumber,homePhone
                }
        }
}



Время: 06:44.

Время: 06:44.
© OSzone.net 2001-