Установка 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'