我有一个所有文件夹和文件的arraylist,我想要关闭ACL。 我的Foreach循环中一切运行良好。
但是出于一个奇怪的原因它会抛出:
Get-Acl:非法字符 + CategoryInfo:NotSpecified:(:) [Get-Acl],ArgumentException + FullyQualifiedErrorId:System.ArgumentException,Microsoft.PowerShell.Commands.GetAclCommand
当我使用'faulty'路径运行get-acl手册时,我获得了ACL。 我的代码是:
$ACL = get-acl -LiteralPath "$Path" | select -ExpandProperty access | select IdentityReference
$Result = Compare-Object -ReferenceObject $ACLListAccess -DifferenceObject $ACL -Property Access -PassThru
if ($Result.count -ne 0)
{
$ExplicitTest = get-acl -LiteralPath "$Path" | select -ExpandProperty access
if ($ExplicitTest.IsInherited.count -ne $ACLListAccessFull.count -and $ExplicitTest.IsInherited -Like "*False*")
{
$WrongFolders.Add($Path) | Out-Null
}
}
具有'非法字符'的路径是 \ mycompany.com \ folders \ Algemeen \Reme§ysen
答案 0 :(得分:0)
抱歉,无法重现您的问题并且评论不允许我粘贴此
D:\temp\a> get-acl .\aaa§bbb
Directory: D:\temp\a
Path Owner Access
---- ----- ------
aaa§bbb adil BUILTIN\Administrators Allow FullControl...
如果你复制粘贴那个角色,你也会得到167吗?
C:\> [int][char]'§'
167