从理论上讲,我觉得这应该很简单。基本上我需要通过powershell每小时左右运行一次访问查询,然后如果查询中遇到某个条件,我需要发送一封电子邮件。
电子邮件,查询很简单,但我不知道怎样才能获得PowerShell来查询访问权限,而且我不确定是否可以让查询每小时运行一次。但是,如果我可以让PowerShell运行查询访问,我会很高兴。
答案 0 :(得分:2)
如果我可以让powershell运行查询访问权限,我会很高兴
" ACE.psm1"在另一个答案中引用的模块看起来很有用,但是如果你喜欢“自己动手”的话。数据库访问的代码,你可以使用这样的东西:
$connStr = @"
Provider=Microsoft.ACE.OLEDB.12.0;
Data Source=C:\Users\Public\Database1.accdb
"@
$con = New-Object System.Data.OleDb.OleDbConnection $connStr
$con.Open()
$cmd = New-Object System.Data.OleDb.OleDbCommand "SELECT * FROM Clients", $con
$rdr = $cmd.ExecuteReader()
while ($rdr.Read())
{
Write ("{0}, {1}" -f $rdr["LastName"], $rdr["FirstName"])
}
$rdr.Close()
$con.Close()
答案 1 :(得分:1)
每小时运行一些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模块: