icacls、网络服务和在 Windows Server 2008 上设置 ACL

icacls、网络服务和在 Windows Server 2008 上设置 ACL

通过命令行在 Windows Server 2008 上设置 ACL 给我带来了一些问题。根据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“网络服务”:(OI)(CI)M

以及介于两者之间的所有变体。但是,每次尝试都会导致“无效参数“'NETWORK'””,具体取决于上述变体。

按照http://technet.microsoft.com/en-us/library/cc753525%28WS.10%29.aspx(参见评论),看来其他人也遇到了同样的问题,即同样的命令在 Windows 7/Vista/etc 上运行,但在 Windows Server 2008 上却不行。

在 Windows Server 2008 中,通过命令行将权限应用于目录和/或文件的网络服务帐户的最佳方法是什么?尤其是因为无法通过 GUI 一次执行多个文件权限(请参阅Windows Server 2008 - 一次更改多个文件的安全设置)。

答案1

这句话对我有用:

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)

答案2

您需要添加 OI 和 CI 以使文件夹权限设置的更改生效。

示例设置调整测试文件夹的权限网络服务帐户:

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

答案3

你可以像这样使用 sid 进行网络服务:

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

答案4

我必须安装私人证书并授予网络用户完全访问权限。以下是对我有用的脚本。

$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'

相关内容