PowerShell - 无法通过UPN搜索AD帐户

PowerShell - 无法通过UPN搜索AD帐户

问题描述:

我在这里有点困惑。我可能只是在这个深夜错过了一些东西。我的代码有点问题。请参阅下面的代码。PowerShell - 无法通过UPN搜索AD帐户

$MsolUser = Get-MsolUser -UserPrincipalName [email protected] 
Get-ADUser -filter {emailaddress -Like "$($MsolUser.UserPrincipalName)"} -Properties EmailAddress, LastLogonDate, SamAccountName | select EmailAddress, LastLogonDate, SamAccountName 

什么上面的部分应该做的,是收集MsolUser从变量$ MsolUser的的UserPrincipalName,在公元搜索相应EMAILADDRESS并返回EmailAddress的,LastLogonDate和SAM帐户。

如果我试图通过上面的变量获取值,它不会返回它应该的值。它不会给我任何错误。我知道我之前做过这样的事情,但目前我无法围绕它。

感谢帮助!

在此先感谢!

+0

的可能的复制[获取-ADUser便有-Filter不会接受一个变量(https://stackoverflow.com/questions/20075502/get-aduser- filter-will-not-accept-a-variable) – BenH

+0

使用'Get-ADUser -filter'emailaddress -Like'$($ MsolUser.UserPrincipalName)'“'代替。作为AD cmdlet过滤器的一般规则,双引号外部,单引号内部。 mklement0的链接副本中的答案给出了原因的详细信息。 – BenH

+0

这就是我一开始所做的,但它仍然不会返回$ MsolUser中的取值,这就是让我困惑的原因。如果直接从变量中提取值:$ MsolUser.UserPrincipalName就像它应该那样获取值,但是无论如何尝试在我的Get-ADUser字符串中收集这些数据,它都不起作用。 – CraCra

当我坐下来做这件事时,好像我累了。 如果我刚刚使用它,代码与变量一起工作得很好。

请参阅以下工作更正的版本:

$msoluser = get-msoluser -userprincipalname [email protected] 
$aduser = Get-ADUser -filter { emailaddress -Like $msoluser.UserPrincipalName} -Properties EmailAddress, LastLogonDate, SamAccountName | select EmailAddress, LastLogonDate, SamAccountName