我有一个必须以系统帐户身份运行的计划任务,但我想允许非特权用户查看它。
具体来说,我希望用户能够查看/获取特定任务的上次运行时间和状态。显然,他们需要知道名称/位置。他们不应该对此有任何控制权,也没有理由需要查看所有计划任务或甚至此任务的其他属性(尽管这样做也可以)。
这可能吗?如果可以,怎么做?
如果不是,原因可能是什么?这似乎不是一个安全风险。
谢谢。
答案1
解决方案是授予文件夹中任务文件的读取权限%SystemRoot%\System32\Tasks
。这可以通过 GUI 以管理员身份完成,但我使用以 SYSTEM(或管理员)身份运行的 PowerShell 脚本来完成:
$TaskFile = Join-Path $env:SystemRoot "System32\Tasks\$TaskName"
if (Test-Path $TaskFile) {
$Acl = get-acl -Path $TaskFile
$rule = New-Object -TypeName system.security.accesscontrol.filesystemaccessrule -ArgumentList ('Authenticated Users','Read','Allow')
$Acl.setaccessrule($rule)
set-acl -Path $TaskFile -AclObject $Acl
}
希望这对某人有帮助。