【问题标题】:Powershell set-aduser isn't updating AD?Powershell set-aduser 没有更新 AD?
【发布时间】: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


【解决方案1】:

这可能不是您的具体问题的原因,但过去对我来说一直是个问题,所以它至少可以帮助其他人。

AD cmdlet 自动确定要使用的域控制器。从一个命令到另一个命令,它们不一定使用相同的 DC。这意味着您可以更新一个 DC,然后查询另一个尚未将更改复制到它的 DC。

出于这个原因,我建议在处理某个操作时,您希望具有一定的原子性,通常是在单个函数或脚本中与 AD 进行的所有交互,您确保明确使用相同的 DC。

执行此操作的方法是使用-Server 参数。

由于每次调用都指定-Server 很烦人,因此您可以为此使用$PSDefaultParameterValues

$PSDefaultParameterValues = @{
    "*-AD*:Server" = "MyDC"
}

可能更好,在运行时找到一个 DC:

$PSDefaultParameterValues = @{
    "*-AD*:Server" = Get-ADDomainController -Writable -Discover -Service ADWS -ForceDiscover | Select-Object -ExpandProperty Name
}

不要使用脚本块(就像我在编辑之前使用的那样),因为它会在每次调用时重新运行该块,这每次都会为您提供不同的 DC(这正是您要避免的)。

【讨论】:

    猜你喜欢
    • 2016-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-03
    • 2020-10-09
    • 2018-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多