Note: Setting a folder permission with a InnoSetup setup package

承上篇 該 Service 實際上安裝是透過Local Service Account 執行, 但是安裝時該目錄並不會有 Local Service 的存取權限, 所以會造成Service 啟動失敗

此時需要設定 Folder 的 permssion 但是InnoSetup 提供的 permission 設定 不知道是我太笨 看不懂還是怎樣, 怎麼試就是做不到我想要的, 後來找了一下工具 發現有隻 SetACL 的程式 可以幫忙處理這些設定, 但是早期是Open Source/LGPL 的授權 後來的版本已經更改為需要另外要求授權, 對我來說太麻煩

又找了找 發現 Microsoft 可能有聽到用戶的心聲,  Win7 已經提供了 Icacls 來處理 permission 設定, 而經過測試 同前篇需要將指令寫在一個 batch 才行, 下面是我用到的寫法, %1 是 設定的 Folder/File 而"Local Service:(OI)(CI)(RX)" 是 SDDL 的寫法, 簡單講(RX) 是讀與執行, (OI)是 Object Inherit, (CI) 則是 Container Inherit,

icacls "%1" /grant "Local Service:(OI)(CI)(RX)" >> NULL
廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

%d 位部落客按了讚: