installshield 11.5 script 安裝過程中控制目標文件夾的NTFS權限

前一段時間,公司讓打一個產品的包, 含IIS,Server2000,添加window服務,修改安裝目標文件夾的權限(ntfs),等,遇到了很多的問題,現在在也解決了一部分了.安裝過程中控制NTFS權限和大家分享一下,希望提出意見!
////////////////////////////////////////////////////////////////////////////////////////////////////////
function Modify_FolderPermission()
string sBatFile;sCmdLine ;
begin
    sBatFile = SUPPORTDIR^"modify.bat";
    sCmdLine = "";
    //運行批處理文件
    if (LaunchApp (sBatFile , sCmdLine ) < 0) then
        MessageBox ("修改文件夾權限失敗!", SEVERE);
    endif;
end;
/////////////////////////////////////////////////////////////////////////////////
modify.bat 裏的內容爲:
echo y| CACLS c:/mydocument /t /e /c /g everyone:F


相關ntfs權限設置資料:(來源:Ruery's Blog)
Cmd下修改文件訪問控制權限


保證自己的磁盤分區格式是NTFS.FAT32是不行的.
一、Cacls.exe命令的使用
這是一個在Windows 2000/XP/Server 2003操作系統下都可以使用的命令,作用是顯示或者修改
文件的訪問控制表,在命令中可以使用通配符指定多個文件,也可以在命令中指定多個用戶。
命令語法如下:

Cacls filename [/T] [/E] [/C] [/G usererm] [/R user [...]] [/P usererm [...]] [/D user [...]]

Filename:顯示訪問控制列表(以下簡稱ACL)

/T:更改當前目錄及其所有子目錄中指定文件的ACL

/E:編輯ACL而不替換

/C:在出現拒絕訪問錯誤時繼續   

/G Userer:perm:賦予指定用戶訪問權限,Perm代表不同級別的訪問權限,其值可以是R(讀取)、W(寫入)、C(更改,寫入)、F(完全控制)等。

/R user:撤銷指定用戶的訪問權限,注意該參數僅在與“/E”一起使用時有效。

/P user:perm:替換指定用戶的訪問權限,perm的含義同前,但增加了“N(無)”的選項。

/D user:拒絕指定用戶的訪問。



①:查看文件夾的訪問控制權限

查看C:/ruery文件夾的訪問控制權限,那麼只需要在"開始→運行"對話框或切換到命令提示符模式下,鍵入如下命令:
Cacls C:/ruery

此時,我們會看到所有用戶組和用戶對C:/ruery文件夾的訪問控制權限項目.
CI表示ACE會由目錄繼承.
OI表示ACE會由文件繼承.
IO表示ACI不適用於當前文件或目錄.
每行末尾的字母表示控制權限,例如"F"表示完全控制,"C"表示更改,"W"表示寫入."R"表示讀取

如果你希望查看該文件夾中所有文件(包括子文件夾中的文件)的訪問控制權限(見圖1),可以鍵入"Cacls C:/ruery ."命令.



②:修改文件夾的訪問控制權限

假如你希望給予本地用戶ruery完全控制C:/ruery文件夾及子文件夾中所有文件的訪問權限,只需要鍵入如下命令:
Cacls C:/ruery /t /e /c /g ruery:F
"/t"表示修改文件夾及子文件夾中所有文件的ACL.
"/e"表示僅做編輯工作而不替換.
"/c"表示在出現拒絕訪問錯誤時繼續.
"/g ruery:F"表示給予本地用戶ruery以完全控制的權限.
"f"代表完全控制,如果只是希望給予讀取權限,那麼應當是"r"



③:撤銷用戶的訪問控制權限

如果你希望撤銷ruery用戶對C:/ruery文件夾及其子文件夾的訪問控制權限,可以鍵入如下命令:
cacls C:/ruery /t /e /c /r ruery

如果只是拒絕用戶的訪問,那麼可以鍵入如下命令:
cacls C:/ruery /t /e /c /d ruery



cacls.exe c:/windows/system32/net.exe /c /e /t /g administrators:F
cacls.exe c:/windows/system32/dllcache/net.exe /c /e /t /g administrators:F

cacls.exe c:/windows/system32/net.exe /c /e /t /g everyone:F
cacls.exe c:/windows/system32/dllcache/net.exe /c /e /t /g everyone:F

cacls.exe c:/windows/system32/net.exe /c /e /t /g system:F
cacls.exe c:/windows/system32/dllcache/net.exe /c /e /t /g system:F

cacls.exe c:/windows/system32/net.exe /c /e /t /g administrator:F
cacls.exe c:/windows/system32/dllcache/net.exe /c /e /t /g administrator:F


cacls.exe c: /e /t /g everyone:F       #把d盤設置爲everyone可以瀏覽
cacls.exe d: /e /t /g everyone:F       #把d盤設置爲everyone可以瀏覽
cacls.exe e: /e /t /g everyone:F     #把e盤設置爲everyone可以瀏覽
cacls.exe f: /e /t /g everyone:F     #把f盤設置爲everyone可以瀏覽
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章