【问题标题】:changing directory access using ICACLS.exe at runtime在运行时使用 ICACLS.exe 更改目录访问
【发布时间】:2012-04-16 23:58:51
【问题描述】:

我有如下语法在web应用中改变LOGO文件夹的目录访问权限

ICACLS D:\Workspace\SampleProject\LOGO /grant "IIS_IUSRS":(OI)(CI)F.

如果应用程序部署在本地 IIS 上,这可以正常工作,如果 Web 应用程序托管在某个外部服务器上,我不确定 LOGO 文件夹的确切路径是什么,这意味着无法对路径进行硬编码。

所以我编写了一个控制台应用程序,它为我提供了服务器上徽标文件夹的完整路径,并将路径写入示例文本文件。

我的问题是他们用运行时从文本文件获得的路径替换路径“D:\Workspace\SampleProject\LOGO”的任何方法?。

【问题讨论】:

  • 您可以从文本文件中读取路径并将其传递给 icacls.exe,不是吗?
  • 我想我们可以,我没有找到正确的语法来使它工作。
  • 如果您发布不起作用的代码片段(或至少使用硬编码路径的代码片段)会有所帮助
  • 这是正确的语法 "ICACLS D:\Workspace\SampleProject\LOGO /grant "IIS_IUSRS":(OI)(CI)F。
  • 您真的要授予完全访问权限吗? (即,也可以为其他用户设置权限?)我很惊讶你需要这个 - 这只是一个安装步骤,而不是你需要在运行时做的事情?

标签: asp.net iis-7 file-io permissions


【解决方案1】:

据我从阅读您的问题和 cmets 了解到,您有一个带有 LOGO 文件夹路径的文本文件,并且您想从批处理文件运行 icacls.exe 以设置文件夹权限。

假设,您的文本文件名为path_to_logo.txt,并包含一个带有路径的 行。然后下面的批处理脚本将完成这项工作:

for /F %%l in (path_to_logo.txt) do ICACLS %%l /grant "IIS_IUSRS":(OI)(CI)F

for /f 将遍历文件中的所有行(您只有一个),将当前行分配给变量%l 并执行do 关键字后面的内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-19
    • 2016-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-07
    相关资源
    最近更新 更多