2016-04-28 67 views
0

我在Windows操作系統上編寫NSIS腳本以在安裝時創建共享目錄。這裏是我的代碼,在英語Windows效果很好,但對法國的Windows不能正常工作7.「網絡共享」在法語Windows操作系統上不起作用

CreateDirectory C:\tmpShare 
nsExec::Exec 'icacls C:\tmpShare /grant *S-1-1-0:(OI)(CI)F' 
nsExec::Exec 'net share "tmpShare"="C:\tmpShare" /grant:Everyone,full /remark:"Temp shared folder"' 

原因:法國OS不理解net share命令的用戶名字符串「大家」,將其轉換爲'tout le monde'用法語。

我嘗試使用'Everyone'的安全ID,即* S-1-1-0而不是字符串'Everyone',但它不能與網絡共享 (BAD DESIGN OF WINDOWS,icacls雖然可以使用它)

我試過用「Tout de monde」而不是'Everyone'來解決問題,現在的問題是如何編寫我的NSIS腳本,哪個平臺獨立?

+0

你需要在每次調用nsExec :: Exec的 – Anders

+0

後彈出它不是一個「糟糕的設計」,你只是用它錯誤。 「net share」命令旨在用於最終用戶或系統管理員的交互式使用,不能用於安裝人員。 *你應該使用API​​。 –

回答

1

AccessControl plug-in可以轉換的SID你:

AccessControl::SidToName "(S-1-1-0)" 
Pop $2 
Pop $1 
MessageBox MB_OK "Name=$1 Domain=$2" 
+0

感謝您的回答,並且可能您回答了我的問題,但我沒有使用此解決方案,因爲我找到了另一種方式來共享文件夾而無需使用「網絡共享」命令。它在這裏:http://nsis.sourceforge.net/Sharing_Folders – Nitin

相關問題