Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正在尝试使sql查询在PowerShell中工作_Sql_Powershell - Fatal编程技术网

正在尝试使sql查询在PowerShell中工作

正在尝试使sql查询在PowerShell中工作,sql,powershell,Sql,Powershell,我正在尝试从数据库中提取信息,并与AD用户进行比较,但似乎无法获得正确的语法 我正在提取A.D.中EmployeeID不为null的所有用户(仅限于EmployeeID本身),然后转换为字符串: $aUsers = (Get-ADUser -LDAPFilter "(employeeID=*)" -Properties EmployeeID).EmployeeID $b = ($aUsers -join ",") 然后,我尝试在表中查询数据库中没有对应a

我正在尝试从数据库中提取信息,并与AD用户进行比较,但似乎无法获得正确的语法

我正在提取A.D.中EmployeeID不为null的所有用户(仅限于EmployeeID本身),然后转换为字符串:

$aUsers = (Get-ADUser -LDAPFilter "(employeeID=*)" -Properties EmployeeID).EmployeeID
$b = ($aUsers -join ",")
然后,我尝试在表中查询数据库中没有对应a.D.中EmployeeID的任何用户:

"Select * from PS_WR_EE_CWR_CACHE Where EMPLID NOT IN (" + $b + ")"
但这会导致错误“靠近','的语法不正确”。但是,如果我手动执行某些操作,例如:

Select * from PS_WR_EE_CWR_CACHE Where EMPLID NOT IN (110, 111, 118)

它工作得很好。我不确定语法中有什么地方出错了,它不会接受列表。

“从PS_WR_EE_CWR_缓存中选择*,其中EMPLID不在({0}')”-f($aUsers-join“,”)
我认为@SantiagoSquarzon的意思是,数据库中的EMPLID可能是CHAR类型,而不是INT,因此需要在每个值周围加上单引号。例如,
('110','111','118'))
因此,顺便说一句,如果您试图查找所有没有
employeeID的用户,为什么不直接询问AD,即使比SQL慢,也可以节省一步。
Get ADUser-LDAPFilter”(!employeeID=*)“
谢谢你们,这很有帮助。对于你的问题,@SantiagoSquarzon,数据库中约有6000个用户不在公元前,这就是我试图返回的。因此,我从a.D.做了一个拉取操作,就像你做的一样,只拉取EmployeeID,然后运行查询来拉取数据库中不在EmployeeID列表中的任何用户。这一点很好,很高兴它起了作用:)@JLogan3o13