Sitecore文件夹& IIS权限

时间:2011-03-01 15:13:48

标签: iis sitecore directory-permissions

设置或移动Sitecore解决方案时,您必须记住设置正确的文件夹权限和IIS权限。

类似于3.3.3.2 - 3.3.3.9节: http://sdn.sitecore.net/Products/Sitecore%20V5/Sitecore%20CMS%205,-d-,3/Installation/EXE%20Installation.aspx

文件夹权限通常在使用安装程序时设置,但在使用Zip或仅移动现有解决方案时不会设置。

您可以在此处使用指南(适用于Sitecore 6):http://sdn.sitecore.net/Products/Sitecore%20V5/Sitecore%20CMS%206/Installation.aspx

但是通过步骤3.5到3.6.5很麻烦。

有人制作了任何可以自动执行此操作的脚本或程序吗?

非常感谢。

2 个答案:

答案 0 :(得分:1)

假设您正在使用非生产实例:

  

在非生产环境中,通常最容易授予ASP.NET帐户和匿名Internet用户帐户完全控制网站和数据文件夹及其所有后代,并授予NETWORK SERVICE用户完全控制权D:\ Sitecore \ Databases文件夹。

所以(权限是递归设置的):

ASP.NET帐户(IIS 7中的IUSR)&匿名用户:完全控制:

  • /Website
  • /Data

NETWORK SERVICE(默认SQL Server帐户):完全控制:

  • /Databases

或者您可以Cacls从命令行设置文件/文件夹的权限。

例如,您可以使用以下语句在Administrator

上授予Write用户Deletec:\file权限
icacls c:\file /grant Administrator:(D,WDAC)

答案 1 :(得分:-1)

我正在使用此脚本

Option Explicit

Dim fso, path

' get current directory
set fso = createobject("Scripting.FileSystemObject")
path = fso.GetFolder(".").Path

WScript.StdErr.WriteLine "Setting up rights"
WScript.StdOut.WriteLine "Path:" &  path

Dim appname

appname = InputBox("Name of the App Pool", , "AppPool")

If appname = "" Then
    Wscript.Quit
End If

Dim wsShell

Set wsShell = WScript.CreateObject ("WSCript.Shell")

'wsShell.run "icacls """+ path + """ /inheritance:r"
wsShell.run "icacls """+ path + """ /inheritance:e /grant ""IIS AppPool\" + appname + """:(RX)"
wsShell.run "icacls """+ path + "\App_Data"" /inheritance:e /grant ""IIS AppPool\" + appname + """:(F)"
wsShell.run "icacls """+ path + "\sitecore\shell"" /inheritance:e /grant ""IIS AppPool\" + appname + """:(F)"
wsShell.run "icacls """+ path + "\temp"" /inheritance:e /grant ""IIS AppPool\" + appname + """:(F)"
wsShell.run "icacls """+ path + "\upload"" /inheritance:e /grant ""IIS AppPool\" + appname + """:(F)"

set wsShell = Nothing