2017-11-10 96 views
0

我在這裏有點困惑。我可能只是在這個深夜錯過了一些東西。我的代碼有點問題。請參閱下面的代碼。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

回答

0

當我坐下來做這件事時,好像我累了。 如果我剛剛使用它,代碼與變量一起工作得很好。

請參閱以下工作更正的版本:

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