發佈日期:
如何利用PowerShell指令‧取得網絡磁碟(network drive)資料夾權限
01. 以前處理網絡磁碟(network drive)資料夾權限時,經常遇到一個問題,就是一些資料夾/檔案,連系統管理員也沒有權限,去更改/觀看其權限。
02. 一直知道是『存取控制串列(ACL)』的問題,但明明資料夾/檔案就是存放在伺服器的本機(local)位置,但怎樣也在『安全(Security)』欄位看不到有關資料。
03. 今天因為要尋找網絡磁碟資料夾權限,用上PowerShell就會方便很多。使用以下PowerShell命令,便看到資料夾的權限誰屬。
(Get-Acl -Path '<folder_location>').Access.IdentityReference
04. 當然,除了要知道資料夾的權限誰屬,還要知道權限詳細,如READ、MODIFY等資訊,所以用上以下PowerShell命令,便能看到資料夾的權限誰屬,以及其權限詳細資料。
foreach($access in (Get-Acl '<folder_location>').Access) { $filerights = $access.FileSystemRights.ToString(); $inheritanceFlg = $access.InheritanceFlags.ToString(); if($inheritanceFlg -eq 'ContainerInherit') { $filerights = $filerights.replace('ReadAndExecute','ListDirectory'); } $output = $access.IdentityReference.ToString() + ';' + $filerights; $output }
05. 奇怪的就是發生在上面2個PowerShell命令。之前明明有些資料夾,在Windows GUI的『安全(Security)』欄位是沒有權限看到有關資料夾詳細資料,但用PowerShell時,居然可以看到有關內容。只要用CMD命令『takeown』及『icals』,先取得有關資料夾/檔案權限,再按上面的Get-Acl命令得到的結果,重新設定資料夾/檔案權限。那以後既可以保留原有資料夾/檔案權限的權限設定,又可以用現時系統管理員的身份設定資料夾/檔案權限。今天經歷,又解決了之前遇上的IT問題了。
發佈留言