Лучший отвечающий
Вопрос по утилите dsmod

Вопрос
-
Здравствуйте,
Дело было так. Написал скрипт создающий контакты в AD, использовал утилиту dsmod contact для заполнения необходимых полей. В итоге оказалось что одно из заполненых полей, а именно -dept (Departament) не надо было заполнять. Необходимо очистить это поле, но утилита dsmod contact категорически отказывается принимать пустое значение ключа -dept, пробовал и "" и $null и даже <not set>. Скажите, как можно очистить данное поле?
12 августа 2010 г. 11:45
Ответы
-
$FullName = "Иванов Александр Михайлович"
$Comp = "НГДУ"
dsmod contact "CN=$FullName,OU=$Comp,OU=Контакты,DC=mechservice,DC=ru" -company $Comp -dept ""dsmod failed:No value specified for 'dept'.
Эээээ... постойте, вы из PoSh'ика dsmode вызываете? (я свою команду выполнял в обычном cmd)Если вы, таки, зовете dsmode из PoSh, то, подозреваю, что указания "", в качестве параметров вызова будет недостаточно. Попробуйте так '""' или так `"`"
PS Кроме того, не забывайте установить правильное значение для переменной $OutputEncoding, иначе у вас возниктнут проблемы с работой конвейера с внешними утилитами, например dsquery ...| dsmode...
http://shss.wordpress.com/2009/12/28/powershell-profile/
blog: http://shss.wordpress.com/- Помечено в качестве ответа Rinat Moustafin 13 августа 2010 г. 9:02
13 августа 2010 г. 5:28
Все ответы
-
У меня нормально отработало с "":
dsquery user -samid 33|dsmod user -dept ""
dsmod succeeded:CN=11 22,OU=test1,DC=dest,DC=localВидимо, причина в чем-то другом. Покажите вашу команду и ответ системы на нее.
blog: http://shss.wordpress.com/12 августа 2010 г. 14:08 -
$FullName = "Иванов Александр Михайлович"
$Comp = "НГДУ"
dsmod contact "CN=$FullName,OU=$Comp,OU=Контакты,DC=mechservice,DC=ru" -company $Comp -dept ""dsmod failed:No value specified for 'dept'.
13 августа 2010 г. 5:04 -
$FullName = "Иванов Александр Михайлович"
$Comp = "НГДУ"
dsmod contact "CN=$FullName,OU=$Comp,OU=Контакты,DC=mechservice,DC=ru" -company $Comp -dept ""dsmod failed:No value specified for 'dept'.
Эээээ... постойте, вы из PoSh'ика dsmode вызываете? (я свою команду выполнял в обычном cmd)Если вы, таки, зовете dsmode из PoSh, то, подозреваю, что указания "", в качестве параметров вызова будет недостаточно. Попробуйте так '""' или так `"`"
PS Кроме того, не забывайте установить правильное значение для переменной $OutputEncoding, иначе у вас возниктнут проблемы с работой конвейера с внешними утилитами, например dsquery ...| dsmode...
http://shss.wordpress.com/2009/12/28/powershell-profile/
blog: http://shss.wordpress.com/- Помечено в качестве ответа Rinat Moustafin 13 августа 2010 г. 9:02
13 августа 2010 г. 5:28 -
Спасибо, оба способа работают корректно. За $OutputEncoding отдельное спасибо.
13 августа 2010 г. 9:04 -
Да, не за что.
На всякий случай, вдруг вы еще не знаете ;). Вместо dsquery|dsget|dsmod|... можно пользовать бесплатный набор комадлетов от Quest Software: ActiveRoles Management Shell for Active Directory. Это гораздо гибче и мощнее.
blog: http://shss.wordpress.com/13 августа 2010 г. 10:42