set-aduser -UserPrincipalName [email protected] it works fine. but if i use invoke ...

问题描述 投票:0回答:1
I think you should add a param block to your scriptblok and use that

Something like

$user | set-aduser -UserPrincipalName [email protected]

or better readable:

Invoke-Command -Session $S -ScriptBlock  {$using:ADUSER | set-aduser -userprincipalname [email protected]}

我有一个变量$user,其中存储了一个AD用户,我想改变它的UPN。

但如果我使用 invoke 命令,比如说

$uname =  $script:textbox1.text+"@"+$script:textbox2.text

$ADUSER = Invoke-Command  -Session $S -ScriptBlock {Get-aduser -property 'emailaddress' -filter "UserPrincipalName -eq '$using:UNAME'"}

我得到一个错误(假设$s是一个好的会话,我在其他行中使用它)我的错误是。

输入对象不能被绑定到命令的任何参数上,要么是因为命令不接受管道输入,要么是因为输入和它的属性不匹配任何接受管道输入的参数。 + CategoryInfo : InvalidArgument: (CN=uzi,OU=IT,OU...shahar,DC=local:PSObject) [Set-ADUser],ParameterBindingException + FullyQualifiedErrorId : InputObjectNotBound,Microsoft.ActiveDirectory.Management.Commands.SetADUser + PSComputerName : dc01
powershell command invoke
1个回答
1
投票

Invoke-Command -Session $S -ScriptBlock {param ($ADUser, $UPN = '[email protected]'); $ADUser | Set-ADUser -UserPrincipalName $UPN } -ArgumentList $ADUser, '[email protected]'

我有一个变量$user,其中存储了一个AD用户,我想改变它的UPN。如果我在dc上写下以下内容:$user

© www.soinside.com 2019 - 2024. All rights reserved.