что-то вроде:zg wrote:backup/restore поднимаются элементарным макросом.fps wrote:это не поможетzg wrote:убираете все галочки и запускаете фар от имени администратора.
> снятие галки в системных настройках отключает диалог, но привилегии в этом случае не предоставляются, а значит это не решение вопроса <
Получение привилегий backup/restore
Получение привилегий backup/restore
Примечание модератора: начало обсуждения см. в теме Запрос дополнительных привилегий при поиске.
Last edited by 2useven10 on Fri 08 Sep, 2017 20:21, edited 2 times in total.
- John Doe
- Бюрократ
- Posts: 13861
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: Запрос дополнительных привилегий при поиске
Можно назвать как угодно, не обязательно _macroinit.lua
Re: Запрос дополнительных привилегий при поиске
zg,
вы под "элементарным макросом" имели ввиду что-то типа примера 2useven10?
По мне, так его ну никак элементарным не назовешь. Высший пилотаж какой-то. Если для остальных тут это элементарщина, то я пойду пока в песочнике поиграю..
2useven10,
у меня в Win7 32bit макрос тоже не работает
вы под "элементарным макросом" имели ввиду что-то типа примера 2useven10?
По мне, так его ну никак элементарным не назовешь. Высший пилотаж какой-то. Если для остальных тут это элементарщина, то я пойду пока в песочнике поиграю..
2useven10,
у меня в Win7 32bit макрос тоже не работает
- zg
- zero-gravity
- Posts: 6035
- Joined: Tue 15 Mar, 2005 17:36
- Location: riga
- Been thanked: 185 times
- Contact:
Re: Запрос дополнительных привилегий при поиске
нет, у него как-то чересчур усложнено всё.fps wrote:вы под "элементарным макросом" имели ввиду что-то типа примера 2useven10?
Re: Запрос дополнительных привилегий при поиске
У меня проще не получается. ffi не знаю - только по примерам на форуме.zg wrote:нет, у него как-то чересчур усложнено всё.fps wrote:вы под "элементарным макросом" имели ввиду что-то типа примера 2useven10?
Но проблема в том, что не работает.
Может я накосячил, может этого не достаточно...
- John Doe
- Бюрократ
- Posts: 13861
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: Запрос дополнительных привилегий при поиске
Ага2useven10 wrote:Может я накосячил, [...]
hcurrp
hcurrсp
- John Doe
- Бюрократ
- Posts: 13861
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: Запрос дополнительных привилегий при поиске
На 8.1 работает.
А на XP проверю завтра (надо зайти в System Volume Information) Update: на XP тоже работает.
По коду.
Я так понимаю все привилегии можно передать массивом за 1 вызов.
И ненулевое значение, возвращённое функцией AdjustTokenPrivileges, ещё не значит что операция удалась, поэтому тут надо дополнительно использовать GetLastError.
P.S.
Ну и как уже сказано, SE_CREATE_SYMBOLIC_LINK_NAME устанавливать нет смысла.
А на XP проверю завтра (надо зайти в System Volume Information) Update: на XP тоже работает.
По коду.
Я так понимаю все привилегии можно передать массивом за 1 вызов.
И ненулевое значение, возвращённое функцией AdjustTokenPrivileges, ещё не значит что операция удалась, поэтому тут надо дополнительно использовать GetLastError.
P.S.
Ну и как уже сказано, SE_CREATE_SYMBOLIC_LINK_NAME устанавливать нет смысла.
- zg
- zero-gravity
- Posts: 6035
- Joined: Tue 15 Mar, 2005 17:36
- Location: riga
- Been thanked: 185 times
- Contact:
Re: Запрос дополнительных привилегий при поиске
альтернативный вариант попроще.
moonscript:
moonscript:
Code: Select all
ffi=require"ffi"
C=ffi.C
advapi32=ffi.load"advapi32"
safe_cdef=(name,def)->
if not pcall(ffi.sizeof,name) then ffi.cdef(def)
safe_cdef "LUID",[[
typedef struct _LUID {
unsigned long LowPart;
long HighPart;
} LUID;
]]
safe_cdef "LUID_AND_ATTRIBUTES",[[
typedef struct _LUID_AND_ATTRIBUTES {
LUID Luid;
unsigned long Attributes;
} LUID_AND_ATTRIBUTES;
]]
safe_cdef "TOKEN_PRIVILEGES",[[
typedef struct _TOKEN_PRIVILEGES {
unsigned long PrivilegeCount;
LUID_AND_ATTRIBUTES Privileges[1];
} TOKEN_PRIVILEGES;
]]
ffi.cdef[[
int32_t LookupPrivilegeValueA(const char* lpSystemName,const char* lpName,LUID* lpLuid);
int32_t OpenProcessToken(void* ProcessHandle,unsigned long DesiredAccess,void** TokenHandle);
int32_t AdjustTokenPrivileges(void* TokenHandle,int32_t DisableAllPrivileges, TOKEN_PRIVILEGES* NewState,unsigned long BufferLength,TOKEN_PRIVILEGES* PreviousState,unsigned long* ReturnLength);
int32_t CloseHandle(void* hObject);
void* GetCurrentProcess(void);
]]
TOKEN_ADJUST_PRIVILEGES=0x0020
SE_PRIVILEGE_ENABLED=0x00000002
EnablePrivilege=(name)->
priv=ffi.new"TOKEN_PRIVILEGES"
priv.PrivilegeCount=1
priv.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED
if 0~=advapi32.LookupPrivilegeValueA ffi.NULL,name,priv.Privileges[0].Luid
token=ffi.new("void*[1]")
if 0~=advapi32.OpenProcessToken C.GetCurrentProcess!,TOKEN_ADJUST_PRIVILEGES,token
advapi32.AdjustTokenPrivileges token[0],0,priv,ffi.sizeof(priv),ffi.NULL,ffi.NULL
C.CloseHandle token[0]
EnablePrivilege"SeBackupPrivilege"
EnablePrivilege"SeRestorePrivilege"
Re: Запрос дополнительных привилегий при поиске
А следующий баг куда писать - если с макросом http://forum.farmanager.com/viewtopic.p ... 66#p119866 зайти в "System Volume Information", сохранить настройки и перезапустить Far, то при следующем запуске на панели пустая "System Volume Information".
- John Doe
- Бюрократ
- Posts: 13861
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: Запрос дополнительных привилегий при поиске
Denis
Не воспроизводится.
При следующем запуске макрос тоже присутствует?
Фар запускается с повышенными правами?
Что если всё то же самое проделать без макроса?
Не воспроизводится.
При следующем запуске макрос тоже присутствует?
Фар запускается с повышенными правами?
Что если всё то же самое проделать без макроса?
Re: Запрос дополнительных привилегий при поиске
Far x64. win7 sp1. В обоих случаях запускается под админом. Без макроса повторый запуск даёт те же результаты.
Last edited by Denis on Wed 18 Jun, 2014 07:35, edited 1 time in total.