PDA

Показать полную графическую версию : как конвертировать стринг в параметр?


snailp4el
05-06-2015, 10:13
Помогите решить проблему.
$fild = City
Set-ADUser $slave -$fild $valueFild.City
Set-ADUser : Не удается найти позиционный параметр, принимающий аргумент "-City".

Понятно что сложность в том что переменная передается как стринг в пораметр, не понятно что с этим делать:)
Заранее спасибо!

Kazun
05-06-2015, 10:19
$param = @{
"Identity" = $slave
"City" = $valueFild.City
}

Set-ADUser @param

Очень плохая практика использовать Invoke-Expression:
Invoke-Expression "Set-ADUser $slave -$fild $valueFild.City"

snailp4el
05-06-2015, 11:21
Спасибо, через параметры можно задать несколько значений пользователя?

------если выполнять без функции, то все работает, а вот в функции не работает.
function FillLikeMaster($master, $slave, $fild)
{
$master
$slave
$fild

$valueFild = Get-ADUser $master | Get-ADUser -Properties *

$param=@{
"Identity"= $slave
$fild= $valueFild.$fild
}

Set-ADUser @param

}

------собственно ошибка
FillLikeMaster nizamovadg, stepanovanb, City


Get-ADUser : Не удается преобразовать "System.Object[]" в тип "Microsoft.ActiveDirectory.Management.ADUser", необходимый для параметра "Identity". Указанный метод не поддерживается.
строка:6 знак:24
+ $valueFild = Get-ADUser <<<< $master | Get-ADUser -Properties *| Select-Object Title
+ CategoryInfo : InvalidArgument: (:) [Get-ADUser], ParameterBindingException
+ FullyQualifiedErrorId : CannotConvertArgument,Microsoft.ActiveDirectory.Management.Commands.GetADUser

Ошибка при выполнении операции индексирования, индекс массива вычислен в значение NULL.
строка:9 знак:1
+ <<<< $fild= $valueFild.$fild
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : NullArrayIndex

------Задача перенести часть реквизитов от одного юрера другому, может есть лучшие решение?
------Заранее спасибо!

Kazun
05-06-2015, 12:03
FillLikeMaster nizamovadg stepanovanb City

snailp4el
05-06-2015, 12:35
Дело было не бабине))) Спасибо! Все работает.




© OSzone.net 2001-2012