Назад | Перейти на главную страницу

icacls, сетевая служба и настройка списков контроля доступа в Windows Server 2008

Установка ACL в Windows Server 2008 через командную строку вызывает у меня некоторые проблемы. Согласно http://web2.minasi.com/forum/topic.asp?TOPIC_ID=26907 Я пробовал всевозможные варианты:

C: \ Windows \ system32> icacls "D: \ Websites \ site.com \ Web \ bin *" / grant 'NT A uthority \ NETWORK SERVICE: (OI) (CI) M'

C: \ Windows \ system32> icacls "D: \ Websites \ site.com \ Web \ bin *" / grant "NETWORK SERVICE": (OI) (CI) M

И все вариации между ними. Однако каждая попытка приводит, например, к «Недействительному параметру« NETWORK »» в зависимости от варианта выше.

Согласно http://technet.microsoft.com/en-us/library/cc753525%28WS.10%29.aspx (см. комментарии), похоже, что у других возникла такая же проблема, когда одна и та же команда работает в Windows 7 / Vista / и т. д., но не в Windows Server 2008.

Как лучше всего применить разрешения к учетной записи сетевой службы в каталоге и / или файлах через командную строку в Windows Server 2008? Тем более, что нет возможности сделать несколько прав доступа к файлам одновременно через графический интерфейс (см. Windows Server 2008 - изменение настроек безопасности сразу для нескольких файлов).

Эта строка сработала для меня:

icacls testdir /grant "NT AUTHORITY\NetworkService":(OI)(M)

и

icacls testdir /grant "NT AUTHORITY\NetworkService":(CI)(M)

Обновить: И это тоже:

icacls testdir /grant "NT AUTHORITY\NetworkService":(OI)(CI)(M)

Вам необходимо добавить OI и CI, чтобы изменить настройки разрешений для папки.

Пример настройки Изменить разрешение на тестовую папку для Сетевая служба учетная запись:

icacls C:\Test /grant "NT AUTHORITY\NetworkService":(OI)(CI)(M)

Вы можете использовать sid для сетевой службы следующим образом:

icacls testdir /grant *S-1-5-20:(OI)(M)

Мне пришлось установить частный сертификат и предоставить полный доступ пользователю сети. Вот сценарий, который у меня сработал.

$certPath = 'C:\Certs\pwd-aks-client_cert.pfx'
$plainPwd = 'MyPwrd1!'
$pwd = ConvertTo-SecureString -String $plainPwd -AsPlainText -Force 


#Install certificate to local machine
$cer = Import-PfxCertificate -FilePath $certPath -CertStoreLocation Cert:\LocalMachine\My\ -Password $pwd

#Get the private key of the uploaded certificate
$rsaCert = [System.Security.Cryptography.X509Certificates.RSACertificateExtensions]::GetRSAPrivateKey($cer)

$fileName = $rsaCert.key.UniqueName
$path = "$env:ALLUSERSPROFILE\Microsoft\Crypto\Keys\$fileName"

#Grant Full Access permission to Network service user
icacls $path /grant 'NT AUTHORITY\NETWORK SERVICE:F'