VBScriptを使用してインストールするときに、フォルダーまたはファイルのアクセス許可を変更する方法を誰かが知る必要がある投稿が多数あります。私が抱えている問題の1つは、英語以外の状況でそれを解決していないということです。
これは基本的に私がこれまでに持っているものです。ロケールがフランス語の「fr」のような特定の言語であるかどうかを確認し、UsersグループにUtilisateursというグループがあると想定します。次に、caclsを呼び出して、フォルダーに変更権限を設定します。これは英語とフランス語で非常にうまく機能しますが、他の言語のグループが何であるかはわかりません。他のユーザーグループが他の言語でどのように命名されているかわからないため、現在、これらの6つだけに制限されています。
すべてのケースに対応できるようにしたいと思いますが、他の言語の既知のユーザーグループのリストがある場合は、現在の問題を解決するのに十分です。
Dim nLocale
nLocale = objShell.RegRead("HKEY_USERS\.DEFAULT\Control Panel\International\LocaleName")
Dim nLocaleName, sUserGroup
nLocaleName = Left(nLocale, 2)
'MsgBox "[" & nLocaleName & "] = en" & InStr(1, nLocalName, "en", vbTextCompare)
if InStr(1, nLocaleName, "en", vbTextCompare) = 1 or nLocaleName="en" then
sUserGroup="Users"
elseif InStr(1, nLocaleName, "fr", vbTextCompare) = 1 then
sUserGroup="Utilisateurs"
elseif InStr(1, nLocaleName, "de", vbTextCompare) = 1 then
sUserGroup="Benutzer"
elseif InStr(1, nLocaleName, "es", vbTextCompare) = 1 then
sUserGroup="Usuarios"
elseif InStr(1, nLocaleName, "it", vbTextCompare) = 1 then
sUserGroup="Utenti"
elseif InStr(1, nLocaleName, "pt", vbTextCompare) = 1 then
sUserGroup="Usuários"
else
MsgBox "To allow other users access to the AUDit Database you will need to give user permissions to " & strHomeFolder, (vbOKOnly + vbExclamation), "Notice of Permissions"
return
end if
'Wscript.Echo "cacls """ & strHomeFolder & """ /e /c /g " & sUserGroup & ":C "
intRunError = objShell.Run("cacls """ & strHomeFolder & """ /e /c /G """ & sUserGroup & """:C ", 2, True)
これは、実行したとき、およびVisualStudioのセットアップウィザードを使用してカスタムアクションで設定したときに機能します。カスタムアクションの外部で実行した場合にのみ機能する疑似ソリューションをいくつか見つけました。インストールのカスタムアクションで機能する必要があります。