提问人:Norbert Yuhas 提问时间:8/7/2023 更新时间:8/7/2023 访问量:159
通过 Set-ADAccountPassword 获取未设置为对象实例的对象引用
Getting a Object reference not set to an instance of an object via Set-ADAccountPassword
问:
尝试通过 Set-ADAccountPassword 重置用户密码时,我收到 NullReference。
我提出以下要求:
Get-ADUser -Filter * -SearchBase "DC=domain,DC=hu" -Properties OfficePhone, Mobile, SID | Where-Object { $_.OfficePhone -eq "888888" -or $_.Mobile -eq "888888" } | Select-Object SID | Set-ADAccountPassword -Reset -NewPassword (ConvertTo-SecureString -AsPlainText "HvUpJP13" -Force) -PAssThru | Unlock-ADAccount
我收到一个错误:
+ ... bject SID | Set-ADAccountPassword -Reset -NewPassword (ConvertTo-Secu ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (Microsoft.Activ...ement.ADAccount:ADAccount) [Set-ADAccountPassword], NullReference
Exception
+ FullyQualifiedErrorId : ActiveDirectoryCmdlet:System.NullReferenceException,Microsoft.ActiveDirectory.Management.Commands.
SetADAccountPassword
同时,如果我删除 Set-ADAccountPassword,则该用户将位于此请求的位置。
Get-ADUser -Filter * -SearchBase "DC=domain,DC=hu" -Properties OfficePhone, Mobile, SID | Where-Object { $_.OfficePhone -eq "888888" -or $_.Mobile -eq "888888" } | Select-Object SID
SID
---
S-1-5-21-1684329652-2275368447-683485574-8603
为什么请求没有完成?
答:
2赞
Santiago Squarzon
8/7/2023
#1
Set-ADAccountPassword
需要来自管道的 ADAccount
,它可以是以下值之一:
- Microsoft.ActiveDirectory.Management.ADUser
- Microsoft.ActiveDirectory.Management.ADComputer
- Microsoft.ActiveDirectory.Management.ADServiceAccount
请参阅输入部分。也可以由以下之一构造:ADAccount
- 可分辨名称
- GUID (objectGUID)
- 安全标识符 (objectSid)
- SAM 帐户名称 (sAMAccountName)
请参见 -Identity
参数详细信息。
在管道中使用时,对原始 ADUser
实例的引用会丢失,从而导致您看到的错误。只需从管道中删除此语句,问题就会得到解决。除此之外,您还可以删除:Select-Object SID
Where-Object { $_.OfficePhone -eq '888888' -or $_.Mobile -eq '888888' }
并使用使查询更高效:AD Filter
# Note:
# `telephoneNumber` is the LDAP DisplayName of `officePhone`
# `mobile` is the LDAP DisplayName` of `MobilePhone`
Get-ADUser -LDAPFilter '(|(telephoneNumber=888888)(mobile=888888))' -SearchBase 'DC=domain,DC=hu' |
Set-ADAccountPassword -Reset -NewPassword (ConvertTo-SecureString -AsPlainText 'HvUpJP13' -Force) -PassThru |
Unlock-ADAccount
评论
Select-Object SID
Select-Object -ExpandProperty SID
SID
ADAccount
SID