我有一个SQL查询,该查询返回员工的主管电子邮件地址并将其存储在变量中。当我在Get-ADUser查询中使用该变量时,它什么也不返回。
我尝试在Get-ADUser查询中提供实际数据,并且可以正常工作 我试过将SQL查询返回的变量转换为字符串,也不会返回任何结果。
$SupvisorID="CFGFBT0000K0"
$QueryFmt3 = @"
Select eepAddressEmail
from empcomp
join emppers on eeceeid = eepeeid
join Location on EecMailstop = LocCode
join company on eeccoid = cmpcoid
join jobcode on jbcjobcode = eecjobcode
join OrgLevel on EecOrgLvl2 = OrgCode
Where eepEEID = '$SupvisorID'
"@
$SVEmail=Invoke-Sqlcmd -ServerInstance $server -Database $dbname -Query $QueryFmt3
$SVEmail
## This will not return any results
get-aduser -Filter "EmailAddress -like '$SVEmail'" | Select Name
#However, if I insert the actual value of the $SVEmail variable I get results
get-aduser -Filter "EmailAddress -eq 'RPolley@cc-md.org'" | Select Name
我很抱歉,如果我的帖子格式不正确。我以前从未在线寻求帮助。我的难题是如何获取Get-ADUser字符串以识别SQL查询返回的变量中包含的数据。
答案 0 :(得分:2)
Invoke-Sqlcmd
返回DataRow
对象(如果查询返回多行,则返回DataRows数组)。
因此,您必须指定要使用返回行的哪个字段。尝试$SVEmail.eepAddressEmail
答案 1 :(得分:1)
从对象获取属性。由于您没有使用通配符,因此不妨使用“ -eq”。
$email = $SVEmail.eepAddressEmail
get-aduser -Filter "EmailAddress -eq '$email'"