Было много сообщений, в которых кому-то нужно было знать, как изменить права доступа к папке или файлу при установке с помощью VBScript. Единственная проблема, которая у меня есть, заключается в том, что ни один из них не решил ее для неанглоязычных ситуаций.
Это в основном то, что у меня есть до сих пор. Я проверяю, является ли локаль конкретным языком, например fr для французского, а затем предполагаю, что существует группа под названием Utilisateurs для группы Users. Затем я вызываю cacls, чтобы установить разрешение на изменение в моей папке. Это хорошо работает для английского и французского языков, но я не знаю наверняка, какие группы есть для других языков. В настоящее время я ограничен только этими шестью, потому что я не знаю, как другие группы пользователей названы для других языков.
Я хотел бы иметь возможность обрабатывать все случаи, но если у вас есть список известных групп пользователей для других языков, этого будет достаточно для меня, чтобы решить мою текущую проблему.
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)
Это работает, когда я запускаю его, и когда он установлен в Custom Action с помощью мастера установки Visual Studio. Я нашел несколько псевдорешений, которые работают только в том случае, если вы выполняете их вне пользовательских действий. Он должен работать в настраиваемом действии для моей установки.