我正在尝试查询Windows索引以在PowerShell脚本中使用Windows Search SQL检索电子邮件。
对于基本查询(“选择”,“从”,“位置”),可以,我没有问题,但是我想将结果与GROUP ON分组,这在处理结果时会遇到更多问题。
我有以下PowerShell脚本:
$dbConnection = New-Object -ComObject ADODB.Connection
$dbConnection.Open("Provider=Search.CollatorDSO;Extended Properties='Application=Windows';")
$localMailsRS = New-Object -ComObject ADODB.Recordset
$localMailsRS.Open("
GROUP ON System.ItemFolderPathDisplay
OVER (GROUP ON System.Message.FromAddress
OVER (SELECT System.ItemName FROM SYSTEMINDEX))"
, $dbConnection)
While(-Not $localMailsRS.EOF) {
echo "=================================================="
$localMailsRS.Fields.Item('System.ItemFolderPathDisplay').value
echo "=================================================="
$localMailsRS.MoveNext()
}
$localMailsRS.Close();
(这是示例的简化脚本)
对于基本的SQL查询,$localMailsRS.Fields.Item('System.MYELEMENT').value
足以显示结果,但是在GROUP ON的情况下,只有$localMailsRS.Fields.Item('System.ItemFolderPathDisplay').value
可用,我找不到如何访问剩余结果的方法。
感谢您的帮助!