2014-06-21 25 views
0
$ServerList = Get-Content "C:\Users\munjanga\Desktop\Execute\Testing\servers.txt" 
$ServerList 

$Header="FolderPath,IdentityReference,AccessControlType,IsInherited,InheritedFlags,PropagationFlags" 

Add-Content -Value $Header -Path $Output 

Foreach ($Server in $ServerList) { 
    $output = "\\C:\Users\munjanga\Desktop\Repositroy "$server.output.csv" 
    Del $Output -ErrorAction SilentlyContinue 

    $RootPath ="\\$Server\C:\system.sav" 

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

    Add-Content -Value "$Header" -Path $Output 

    Foreach ($Folder in $Folders){ 

     $ACLs = get-acl $Folder.fullname | ForEach-Object { $_.Access } 

     Foreach ($ACL in $ACLs){ 

      $OutInfo = $Folder.Fullname + "," + $ACL.IdentityReference + "," + $ACL.AccessControlType + "," + $ACL.IsInherited + "," + $ACL.InheritanceFlags + "," + $ACL.PropagationFlags 

      Add-Content -Value $OutInfo -Path $output -ErrorAction SilentlyContinue 
     } 
    } 
} 

回答

2

「服務器」你必須在這條線上畸形字符串文字:

$output = "\\C:\Users\munjanga\Desktop\Repositroy "$server.output.csv" 
               --^ 

"指出上述不應該存在。我覺得你的意思寫:

$output = "\\C:\Users\munjanga\Desktop\Repositroy\$server.output.csv" 

在字符串的開頭的雙forwardslash也可能是不正確的。或許它應該被刪除:

$output = "C:\Users\munjanga\Desktop\Repositroy\$server.output.csv" 
+0

謝謝你,幫我拿過去說,但現在我得到:「cmdlet的地方對象在以下參數的命令管道位置1.供應值:Filterscript:」這不是表現爲一個錯誤更像是一個請求,所以我想知道它是否要求輸入實際的服務器?我在我的虛擬機中運行測試,所以我不知道這是否會導致這種情況,因爲我只技術上有1「服務器」可以有人建議? – user3738022