【发布时间】:2023-03-12 21:48:01
【问题描述】:
我正在使用 Powershell 来玩弄 Active Directory,虽然我可以取出一些东西,但我在进行更改时遇到了麻烦。
我认为这不是权限问题,因为我实际上并没有看到为我设置的测试条目出现错误,我做看看我是否尝试更改不同的进入。
我使用psexec(因为runas 没有命令行密码参数)以不同的域用户身份运行Powershell,因为我自己的帐户无权更改AD。在 Powershell 中执行 whoami 确认我以正确的用户身份运行。
我所做的基本上归结为:
PS C:\Temp> get-aduser -identity Xyzzy.Test -properties surname
DistinguishedName : CN=Xyzzy Test,OU=Users,DC=company,DC=com
Enabled : True
GivenName : Xyzzy
Name : Xyzzy Test
ObjectClass : user
ObjectGUID : b1d2a3ff-3ee4-56b7-bc89-12ad345678a9
SamAccountName : Xyzzy.Test
SID : S-1-5-21-9999999999-888888888-77777777-66666
Surname : Test
UserPrincipalName : Xyzzy.Test@company.com
PS C:\Temp> set-aduser -identity Xyzzy.Test -surname "xyzzy"
然后,当我再次运行相同的get-aduser 时,我发现姓氏根本没有改变。
由于set-aduser 产生了 no 错误,它似乎静默失败。
什么可能导致此功能无法正常工作但未报告错误?
【问题讨论】:
-
也许试试:get-aduser -identity Xyzzy.Test | set-aduser -surname "xyzzy"
-
无法重现它,因为它在我的系统中运行良好,如果您通过管道传输 Set-Aduser 是否会发生任何变化?像 Get-ADUser Xyzzy.Test | Set-ADUser -Surname "xyzzy"
-
你不需要 psexec,你可以做类似
$cred=get-credential; Start-Process powershell.exe -Credential $cred -ArgumentList "-file c:\temp\script.ps1" -
如果您使用 -verbose 参数,您会得到任何额外的信息吗?
-
也许尝试强制转换为字符串
-surname [string]"xyzzy"
标签: powershell active-directory