Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.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
C# 正在检查谁编辑了我的文件_C#_Io_Filesystems_Filesystemwatcher_User Management - Fatal编程技术网

C# 正在检查谁编辑了我的文件

C# 正在检查谁编辑了我的文件,c#,io,filesystems,filesystemwatcher,user-management,C#,Io,Filesystems,Filesystemwatcher,User Management,有一个名为status.html的文件,用作SharePoint服务器上WFE之间的负载平衡器。我的问题是,我想提出一个脚本或机制,一旦有人编辑了这个文件,它就会触发邮件。 可能吗 在我的研究中,我发现了以下脚本: $ACL = new-object System.Security.AccessControl.DirectorySecurity $AccessRule = new-object System.Security.AccessControl.FileSystemAuditRule("

有一个名为status.html的文件,用作SharePoint服务器上WFE之间的负载平衡器。我的问题是,我想提出一个脚本或机制,一旦有人编辑了这个文件,它就会触发邮件。 可能吗

在我的研究中,我发现了以下脚本:

$ACL = new-object System.Security.AccessControl.DirectorySecurity
$AccessRule = new-object System.Security.AccessControl.FileSystemAuditRule("domain\seitconsult","Modify","success")
$ACL.SetAuditRule($AccessRule)
$ACL | Set-Acl "C:\windows\system32\cmd.exe"

但我不确定这是否有效。另外,如何使用此脚本触发电子邮件?

我认为有两种方法可以实现您的目标:

将发送电子邮件任务附加到相关事件:

打开事件查看器eventvwr.msc并选择要通知的事件。 点击操作→ 将任务附加到此事件… 逐步完成向导并在“操作”部分中选择“发送电子邮件”。 填写详细信息并完成向导。 有关更多信息,请参阅

设立一个:

但是,由于NotifyFilters不包括用户名,因此需要按照所述从事件日志中的相应审核事件中提取用户名

可以通过其源标识符删除监视程序:

Unregister-Event -SourceIdentifier FileChanged

非常感谢您的评论。你提到的C代码,你能告诉我怎么运行吗?我的意思是在我将要实现的服务器上,它没有C编译器。此外,上面的powershell代码是否会在事件查看器中生成事件?请提供您的评论。@Lilly123您需要将C代码转换为PowerShell,并使用Get-EventLog。不,上面的代码不会生成事件日志条目。如果启用审核,则需要执行该审核以获取修改文件的信息,该文件将已创建事件日志记录。
Unregister-Event -SourceIdentifier FileChanged