Powershell上查询访问权限的监视工具

Powershell上查询访问权限的监视工具,powershell,ms-access-2007,Powershell,Ms Access 2007,理论上我觉得这应该很简单。基本上,我需要在access中每隔一小时左右通过powershell运行一次查询,然后如果查询中的某个条件得到满足,我需要发送一封电子邮件 电子邮件和查询都很简单,但我不知道如何让powershell查询访问权限,我不确定是否可以让它每小时运行一次。但如果我能让powershell在access上运行查询,我会很高兴的。每小时运行一次scriptblock: $command = { $trigger = New-JobTrigger -Repetition

理论上我觉得这应该很简单。基本上,我需要在access中每隔一小时左右通过powershell运行一次查询,然后如果查询中的某个条件得到满足,我需要发送一封电子邮件


电子邮件和查询都很简单,但我不知道如何让powershell查询访问权限,我不确定是否可以让它每小时运行一次。但如果我能让powershell在access上运行查询,我会很高兴的。

每小时运行一次scriptblock:

$command =  {

    $trigger = New-JobTrigger -RepetitionInterval (New-TimeSpan -Minutes 60) -RepeatIndefinitely `
    -At (get-date) -Once

    $job = Register-ScheduledJob -Name 'Test' -Trigger $trigger -ScriptBlock {
        (Get-Date).DateTime | Out-File D:\test.txt -Append
    } 
}
Start-Process -FilePath powershell.exe -ArgumentList "-noprofile -command $Command" -Verb runas
在此处查看ACE模块:

如果我能让powershell在access上运行查询,我会很高兴的

在另一个答案中引用的“ACE.psm1”模块看起来很有用,但是如果您更喜欢“滚动您自己的”代码来访问数据库,您可以使用如下内容:

$connStr=@”
Provider=Microsoft.ACE.OLEDB.12.0;
数据源=C:\Users\Public\Database1.accdb
"@
$con=新对象System.Data.OleDb.OleDbConnection$connStr
$con.Open()
$cmd=New Object System.Data.OleDb.OleDbCommand“SELECT*FROM Clients”,$con
$rdr=$cmd.ExecuteReader()
而($rdr.Read())
{
写入(“{0},{1}”-f$rdr[“LastName”],$rdr[“FirstName”])
}
$rdr.Close()
$con.Close()

ScheduledJob适用于每小时一次的部分。您可以利用任何OLE或ODBC连接与Access进行连接并进行查询。这可能会有所帮助。