IT Knowledge Base

~ Without sacrifice, there can be no victory ~

發佈日期:

如何利用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問題了。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *