powershell变量不按预期打印值

时间:2014-03-28 14:28:55

标签: powershell

$FShares = "\\server\share"

ForEach ($f in $FShares)

{

    $Access = Get-Acl $f | select-object -ExpandProperty Access | Select-Object IdentityReference,FileSystemRights | Where-Object {$_.IdentityReference -like "XXXXXXXXX*"} 
    Write-Output "------- Share ------------------------------"
    Write-Output ""
    Write-Output $f
    Write-Output ""
    ForEach ($a in $Access)
    {
        Write-Output "------- Groups, Permission and Users -------"
        Write-Output ""
        Write-Output $a
        Write-Output ""
        $strGroup = $a.IdentityReference.ToString()
        $Members = $strGroup.split('\')[1] | foreach {Get-ADGroupMember -Recursive $_} | select-object Name
        Write-Output $Members
        Write-Output ""
        Write-Output ""
    }
}

当我运行此脚本时,行(Write-Output $ Members)不会打印到屏幕。运行脚本后,我可以手动运行它(执行写入输出或只是变量名称)并打印正常,所以我知道变量有一个值。不确定这里有什么问题

1 个答案:

答案 0 :(得分:0)

更改

 Write-Output $a

 Write-Output "$a"

编辑,更好:

 Write-Output $a | ft

希望扩展为什么会破坏它,但我不知道。