代码之家  ›  专栏  ›  技术社区  ›  Joel Etherton

如何阻止使用Windows服务创建文件夹?

  •  2
  • Joel Etherton  · 技术社区  · 15 年前

    我在Web服务器上有用户和进程。我想写一个Windows服务,它能够拦截调用,在特定的子目录中创建文件夹。我在那里发现了几个源,它们会被动地捕捉到创建了一个文件夹,但我想创建一个Windows服务,它会主动拦截并抢占任何不可接受的调用,以创建该文件夹。

    让我预先清空“为什么”。别费心问为什么。我只想说我被要求这样做,我正试图找到最简单的自动完成任务的方法。我已经决定了如何完成它,如果我让文件夹被创建,然后跟着我的Windows服务一起删除它(及其内容)。我真的很想有一个活动,我可以让服务听取和先发制人。

    4 回复  |  直到 15 年前
        1
  •  4
  •   Rob    15 年前

    不幸的是,我对 怎样 为了帮助你,但我很确定你需要写或获得 File System Filter Driver 它可以与您的Windows服务通信,告诉它有人 未遂 创建一个目录/文件,以便您的服务可以为其做出决定。这样,当某人/某物试图创建不允许的文件或文件夹时,可能会返回“拒绝访问”或您选择的另一个Win32错误。

    如果你真的走上了使用司机的道路,我想还是最好的做法 起重 决定服务中的创建/修改是否在内核模式之外。

        2
  •  0
  •   No Refunds No Returns    15 年前

    不确定你是否会找到一个“预创建文件”的截取点。如果我是你,我会推回并锁定你文件夹上的安全设置。如果它实际上只是一个文件夹,并且您在Windows上运行,则可以设置安全性以防止每个人在该目录中创建文件夹。只要确定这就是你想要做的。

    然后操作系统就可以在不编写任何代码的情况下完成它。

    也许在安全路径中有一个调用,如果出于某种原因您真的需要自己编写代码,可以将此代码注入其中。

        3
  •  0
  •   Rune    15 年前
        4
  •  0
  •   Chase Florell    15 年前

    您的用户如何创建新文件夹?是否有一种设置方式(即:右键单击,新建文件夹)或他们是否按照资源管理器UI允许的方式执行?我这样问是因为一个想法是为右键单击功能(类似于winrar)构建一个外接程序,该功能旨在用您指定的参数创建一个新文件夹。

    只有当他们都使用完全相同的方法创建一个新文件夹时,这才有效。不需要Windows服务。