Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - csv. Не происходит добавление/изменение атрибутов пользователя в AD.

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

Новый участник


Сообщения: 35
Благодарности: 1

Профиль | Отправить PM | Цитировать


Добрый день!

Скрипт не добавляет из ранее сформированного 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 "Пользователи и компьютеры" - изменений нет. Вопрос: чего не так делаю?

Отправлено: 06:18, 28-04-2018

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


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

Отправлено: 06:51, 28-04-2018 | #2



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

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
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
		}
	}
}
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:25, 28-04-2018 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - csv. Не происходит добавление/изменение атрибутов пользователя в AD.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
PowerShell - [решено] AD - Добавление в группу на основе атрибутов rudimko Скриптовые языки администрирования Windows 24 26-08-2015 13:20
2008 R2 - Добавление фотографии пользователя AD Champ10n Windows Server 2008/2008 R2 7 19-08-2015 11:15
PowerShell - [решено] Добавление информации из csv-файла в AD с обработкой IvanXXL Скриптовые языки администрирования Windows 12 23-07-2014 10:49
PowerShell - Изменение атрибутов всех пользователей AD из exel admt Скриптовые языки администрирования Windows 3 07-03-2014 18:07
PowerShell - Добавление пользователя в группу AD rastadmb Скриптовые языки администрирования Windows 13 29-10-2013 07:28




 
Переход