Как я включаю или выключаю Защищенное паролем Совместное использование программно?

Windows Vista и 7 имеет этот переключатель в Сети и Совместном использовании Центра. Это идет по умолчанию, и это предотвращает неаутентифицируемый доступ к долям, даже если они совместно используются со Всеми (как папка Public). Я должен учить свое приложение включать и выключать его автоволшебно. Как? Я подозреваю, что существует значение где-нибудь в реестре, это ответственно за это, но я понятия не имею, как найти его.

5
задан CannibalSmith 13 January 2010 в 14:16
поделиться

2 ответа

Экспорт полного регистра как 1.reg, включение (или выключение, если он был включен), экспорт в 2.reg и проверка различий?

Чтобы иметь возможность использовать утилиту diff, экспортируйте файлы в регистрационные файлы Win9X/NT4 (*.reg) -формат

.
1
ответ дан 14 December 2019 в 13:40
поделиться

Это в реестре просто не обязательно в том месте, которое вы ожидаете (это на Сэм). Из того, что я могу рассказать, что все эти настройки включают или отключить гостевую учетную запись, так что хорошо, просто включить или отключить учетную запись.

Вы не сказали, что вы используете язык программирования, которые вы используете, поэтому вот какой-то простой C-код, чтобы включить учетную запись, если вам нужно что-то еще, что я уверен, что вокруг Google есть много.

#include <LM.h>
#pragma comment(lib, "Netapi32.lib")

BOOL EnableUser(LPCWSTR lpUserName, BOOL bEnable)
{
    BOOL bRet = FALSE;
    DWORD dwLevel = 1008;
    LPUSER_INFO_1 ui1;
    USER_INFO_1008 ui1008;
    NET_API_STATUS nStatus;

    nStatus = NetUserGetInfo(NULL, lpUserName, 1, (LPBYTE*)&ui1);
    if(nStatus == NERR_Success)
    {
        ui1008.usri1008_flags = ui1->usri1_flags;
        if(bEnable)
        {
            ui1008.usri1008_flags &= ~UF_ACCOUNTDISABLE;
        }
        else
        {
            ui1008.usri1008_flags |= UF_ACCOUNTDISABLE;
        }

        nStatus = NetUserSetInfo(NULL, lpUserName,  dwLevel, (LPBYTE)&ui1008, NULL);
        NetApiBufferFree(ui1);
        if(nStatus == NERR_Success)
        {
            bRet = TRUE;
        }   
    }

    return bRet;
}
0
ответ дан 14 December 2019 в 13:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: