Войти

Показать полную графическую версию : [решено] Импорт из CSV в AD с помощью PowerShell


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

Kazun
20-07-2012, 12:47
Приведите результат скрипта с тестовым пользователем.

rox33
20-07-2012, 13:00
Исключеие при вызове "SetInfo" с "0" аргументами: "Для службы каталогов указан недопустимый синтаксис атрибута."
C:\modlog.ps1:28 знак:29
+ $objuser.SetInfo <<<< ()
+CategoryInfo : NotSpecified: (:) [],MethodInvocationException
+FullyQualifiedErrorId:CatchFromBaseAdapterMethodInvokeTI

Скрипт:

$users = Import-Csv c:\list10.csv -Delimiter ";"
$props = $users | Get-Member -MemberType NoteProperty | Select -Expand name

foreach ($user in $users)
{
Try{
$objuser = ([adsisearcher]"(mail=$($user.mail))").FindOne().GetDirectoryEntry()
}
Catch {
continue
}
$props | Foreach {
$prop = $_.ToLower()
$log = New-Object Text.StringBuilder
$oldprop = $objuser.InvokeGet($prop)
if ($user.$prop -ne $oldprop)
{
$objuser.Put("$prop",$user.$prop)
$text = "{0} : old {1} new {2} - {3}" -f $objuser.displayname[0],$oldprop,$user.$prop,(Get-Date)
$log.AppendLine($text) | Out-Null
}
}
try {
$objuser.SetInfo()
$log.ToString() | Out-File c:\result.txt -Append
}
catch {
$_
}
}


csv:

mail;company;title;physicalDeliveryOfficeName;homephone;Telephonenumber;ipphone;mobile
test@test.ru;test;tester;;133;89999999;;112399

Kazun
20-07-2012, 13:29
$users = Import-Csv c:\list10.csv -Delimiter ";"
$props = $users | Get-Member -MemberType NoteProperty | Select -Expand name

foreach ($user in $users)
{
Try{
$objuser = ([adsisearcher]"(mail=$($user.mail))").FindOne().GetDirectoryEntry()
}

Catch {
continue
}

$log = New-Object Text.StringBuilder

$props | Foreach {
$prop = $_.ToLower()
$oldprop = $objuser.InvokeGet($prop)
if ($user.$prop -ne $oldprop -and $user.$prop)
{
$objuser.Put("$prop",$user.$prop)
$text = "{0} : old {1} new {2} prop {3} - {4}" -f $objuser.name[0],$oldprop,$user.$prop,$prop,(Get-Date)
$log.AppendLine($text) | Out-Null
}
}

Try {
$objuser.SetInfo()
if($log.ToString())
{
$log.ToString() | Out-File C:\result.txt -Append
}
}
Catch {
$_
}
}

rox33
20-07-2012, 15:45
Всё, теперь код, под мои условия, - ИДЕАЛЕН!!!
ОГРОМНОЕ СПАСИБО!




© OSzone.net 2001-2012