![icacls、网络服务和在 Windows Server 2008 上设置 ACL](https://linux22.com/image/494430/icacls%E3%80%81%E7%BD%91%E7%BB%9C%E6%9C%8D%E5%8A%A1%E5%92%8C%E5%9C%A8%20Windows%20Server%202008%20%E4%B8%8A%E8%AE%BE%E7%BD%AE%20ACL.png)
通过命令行在 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'