Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.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
Batch file 检查多个网络共享的文件权限?_Batch File_Cmd_Dos - Fatal编程技术网

Batch file 检查多个网络共享的文件权限?

Batch file 检查多个网络共享的文件权限?,batch-file,cmd,dos,Batch File,Cmd,Dos,我们有几个Windows网络共享,位于一个公共位置\\server name\share,它承载一组公共文件。这些共享被复制到大约300台服务器上。我们已经停止了实际的复制,但我们遇到了一个意想不到的问题:一半的服务器管理员更改了我们共享的文件权限,并以创造性的方式破坏了复制 为了尽早检测到这一点,我们想编写一个脚本来检查每台服务器的网络共享,并确保共享文件夹及其内容存在一些权限: 每个人都需要读取权限 用户X需要更改/修改 用户Y需要完全控制 现在,到目前为止,我已经有了一个很好的脚本,可以检

我们有几个Windows网络共享,位于一个公共位置\\server name\share,它承载一组公共文件。这些共享被复制到大约300台服务器上。我们已经停止了实际的复制,但我们遇到了一个意想不到的问题:一半的服务器管理员更改了我们共享的文件权限,并以创造性的方式破坏了复制

为了尽早检测到这一点,我们想编写一个脚本来检查每台服务器的网络共享,并确保共享文件夹及其内容存在一些权限:

每个人都需要读取权限 用户X需要更改/修改 用户Y需要完全控制 现在,到目前为止,我已经有了一个很好的脚本,可以检查每个共享是否存在。这种复杂性源于这样一个事实:由于有一个漂亮的Active Directory树,所有服务器上的用户名总是以DOMAIN/user的形式保持一致,但它们的guid号不同

到目前为止,我一直在研究和更新版本的Icacls.exe,但这些选项令人困惑,似乎是围绕着更改访问控制列表,而我不想这样做。任何内置Windows的工具都更可取,我只是不确定如何实现这一点

归结起来就是:在某些任意的服务器上,如果我只知道用户的姓名,是否有办法确定他们对给定文件夹拥有什么文件权限?

icacls允许使用友好的名称表单来指定用户。这意味着您应该能够使用人类风格的名称。所以“bob”应该指向你所有领域中的同一个人

您可以使用/grant:r授予用户权限,而无需更改任何其他内容,这意味着如果用户已经存在,则不执行任何操作,否则添加它。所以

每个人都需要读取权限 icacls\a\directory\某处/t/grant:r每个人:rd

我假设您希望他们能够列出目录的内容以及读取

用户X需要更改/修改 icacls\a\directory\某处/t/grant:r bobX:m

等等。我假设“m”足以表示“修改”许可


ACL只是权限的另一个名称。因此,如果要更改权限,则需要更改ACL。

您可能需要将此问题移至serverfault.com。