exception - PowerShell不断抛出异常

标签 exception powershell error-handling active-directory

$RootPath = "W:\"
$OutFile = "I:\Permissions.csv"
$Header = "Folder Path,IdentityReference,AccessControlType,IsInherited,InheritanceFlags,PropagationFlags"
#Del $OutFile
Add-Content -Value $Header -Path $OutFile 

$Folders = dir $RootPath -recurse | where {$_.psiscontainer -eq $true}

foreach ($Folder in $Folders)
{
    $ACLs = get-acl $Folder.fullname | ForEach-Object { $_.Access  }
    Foreach ($ACL in $ACLs)
    {

        $objSID = New-Object System.Security.Principal.SecurityIdentifier($ACL.IdentityReference.Value) 
        #$objUser = $objSID.Translate([System.Security.Principal.NTAccount]) 
        $objUser = $objSID.Translate([System.Security.Principal.SecurityIdentifier])
        $objUser.Value

        $DName = ([adsi]"LDAP://<SID=$($ACL.IdentityReference.value)>").distinguishedName

        $s = $DName
        $s -replace "(CN=)(.*?),.*",'$2'

        $dname.split("=")[1].split(",")[0]

        #Show User
        Write-Host “`r`nThe user mapped to SID $($objSID) is $($objUser.value)`r`n” -f “Red”

        $OutInfo = $Folder.Fullname + "," + $dname.split("=")[1].split(",")[0]  + "," + $ACL.AccessControlType + "," + $ACL.IsInherited + "," + $ACL.InheritanceFlags + "," + $ACL.PropagationFlags
        Add-Content -Value $OutInfo -Path $OutFile
    }
}

我收到以下错误消息。
You cannot call a method on a null-valued expression.
At I:\PermissionExporter.ps1:31 char:57
+         $OutInfo = $Folder.Fullname + "," + $dname.split <<<< ("=")[1].split(",")[0]  + "," 
+ $ACL.AccessControlType + "," + $ACL.IsInherited + "," + $ACL.InheritanceFlags + "," + $ACL.P
ropagationFlags
    + CategoryInfo          : InvalidOperation: (split:String) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull

有人知道这里发生了什么吗?

最佳答案

$ DNName并没有达到您的期望。添加一个断点并验证以下内容:

$ dname.split(“=”)[1] .split(“,”)[0]

工作正常。

关于exception - PowerShell不断抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22921003/

相关文章:

powershell - 将变量的值作为键添加到HashTable

PHP 访问未声明的静态属性

java - 在 RuntimeExceptions 上使用列表的最佳方法是什么?

powershell - 在 PowerShell 的 Active Directory 中测试计算机对象是否存在

Powershell - "Toggle"的官方祝福动词

c# - 第一次发送消息到错误队列

Codeigniter:为反馈和错误创建帮助器和全局消息数组

java - Java可序列化(加载对象并打印)

java - 将字符串分成组

PHPUnit 断言抛出异常?