我正在尝试创建一个 PowerShell 脚本,该脚本在不同的文化中授予 NETWORK SERVICE 的文件夹权限。主要问题是网络服务虽然存在于所有 Windows 安装中,但在不同文化中具有不同的名称,我不知道如何处理。
这是我正在使用的脚本:
$appPath = "C:\SomeFolder"
$Acl = (Get-Item $appPath).GetAccessControl('Access')
$Ar = New-Object System.Security.AccessControl.FileSystemAccessRule("NETWORK SERVICE", "FullControl", "ContainerInherit,ObjectInherit", "None", "Allow")
$Acl.SetAccessRule($Ar)
Set-Acl $appPath $Acl
现在这个脚本在英文版的 Windows 上运行得很好。但是,当尝试在德语版本的 Windows 上运行它时,我收到以下错误消息(翻译自德语):
使用“1”参数调用“SetAccessRule”的异常:“部分或全部身份 无法翻译参考文献。” 在 C:\Experimental Files\GrantFolderPermissions.ps1:7 char:1 + $Acl.SetAccessRule($Ar) + ~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : IdentityNotMappedException
我怎样才能最好地处理这个问题,以便这个脚本能够独立地工作?