- WINSETUP: Make sure we don't try and do anything with the

SeDenyRemoteInteractiveLogonRight user right on Windows 
        2000 or older. Fixes #789
        
    win_build/installerv2/redist/Windows/src/boinccas/
        boinccas.rc
        CAGrantBOINCAdminsRights.cpp
        CAGrantBOINCMasterRights.cpp
        CAGrantBOINCProjectRights.cpp
        CAGrantBOINCProjectsRights.cpp
        CAGrantBOINCUsersRights.cpp

svn path=/trunk/boinc/; revision=16674
This commit is contained in:
Rom Walton 2008-12-12 21:47:38 +00:00
parent 8b18ab4a16
commit 378561d155
7 changed files with 93 additions and 29 deletions

View File

@ -10052,3 +10052,16 @@ David 12 Dec 2008
sched/
sched_config.cpp,h
sched_send.cpp
Rom 12 Dec 2008
- WINSETUP: Make sure we don't try and do anything with the
SeDenyRemoteInteractiveLogonRight user right on Windows
2000 or older. Fixes #789
win_build/installerv2/redist/Windows/src/boinccas/
boinccas.rc
CAGrantBOINCAdminsRights.cpp
CAGrantBOINCMasterRights.cpp
CAGrantBOINCProjectRights.cpp
CAGrantBOINCProjectsRights.cpp
CAGrantBOINCUsersRights.cpp

View File

@ -63,8 +63,14 @@ CAGrantBOINCAdminsRights::~CAGrantBOINCAdminsRights()
UINT CAGrantBOINCAdminsRights::OnExecution()
{
PSID pSid;
tstring strOSVersion;
UINT uiReturnValue = -1;
uiReturnValue = GetProperty( _T("VersionNT"), strOSVersion );
if ( uiReturnValue ) return uiReturnValue;
//
// Obtain the SID of the user/group.
// Note that we could target a specific machine, but we don't.
@ -124,9 +130,13 @@ UINT CAGrantBOINCAdminsRights::OnExecution()
GrantUserRight(pSid, L"SeDenyServiceLogonRight", FALSE);
LogMessage(INSTALLMESSAGE_INFO, NULL, NULL, NULL, NULL, _T("Check completed."));
LogMessage(INSTALLMESSAGE_INFO, NULL, NULL, NULL, NULL, _T("Checking the 'SeDenyRemoteInteractiveLogonRight' right."));
GrantUserRight(pSid, L"SeDenyRemoteInteractiveLogonRight", FALSE);
LogMessage(INSTALLMESSAGE_INFO, NULL, NULL, NULL, NULL, _T("Check completed."));
// Windows 2000 and older does not have the SeDenyRemoteInteractiveLogonRight user right
//
if (strOSVersion > _T("500")) {
LogMessage(INSTALLMESSAGE_INFO, NULL, NULL, NULL, NULL, _T("Checking the 'SeDenyRemoteInteractiveLogonRight' right."));
GrantUserRight(pSid, L"SeDenyRemoteInteractiveLogonRight", FALSE);
LogMessage(INSTALLMESSAGE_INFO, NULL, NULL, NULL, NULL, _T("Check completed."));
}
// Privileges
LogMessage(INSTALLMESSAGE_INFO, NULL, NULL, NULL, NULL, _T("Checking the 'SeTcbPrivilege' right."));

View File

@ -64,12 +64,16 @@ UINT CAGrantBOINCMasterRights::OnExecution()
{
PSID pSid;
tstring strBOINCMasterAccountUsername;
tstring strOSVersion;
UINT uiReturnValue = -1;
uiReturnValue = GetProperty( _T("BOINC_MASTER_USERNAME"), strBOINCMasterAccountUsername );
if ( uiReturnValue ) return uiReturnValue;
uiReturnValue = GetProperty( _T("VersionNT"), strOSVersion );
if ( uiReturnValue ) return uiReturnValue;
//
// Obtain the SID of the user/group.
@ -128,18 +132,23 @@ UINT CAGrantBOINCMasterRights::OnExecution()
GrantUserRight(pSid, L"SeDenyBatchLogonRight", FALSE);
GrantUserRight(pSid, L"SeDenyServiceLogonRight", FALSE);
if (!GrantUserRight(pSid, L"SeDenyRemoteInteractiveLogonRight", TRUE))
{
LogMessage(
INSTALLMESSAGE_ERROR,
NULL,
NULL,
NULL,
NULL,
_T("Failed call to GrantUserRight - SeDenyRemoteInteractiveLogonRight")
);
// Windows 2000 and older does not have the SeDenyRemoteInteractiveLogonRight user right
//
if (strOSVersion > _T("500")) {
if (!GrantUserRight(pSid, L"SeDenyRemoteInteractiveLogonRight", TRUE))
{
LogMessage(
INSTALLMESSAGE_ERROR,
NULL,
NULL,
NULL,
NULL,
_T("Failed call to GrantUserRight - SeDenyRemoteInteractiveLogonRight")
);
}
}
// Privileges
GrantUserRight(pSid, L"SeTcbPrivilege", FALSE);
GrantUserRight(pSid, L"SeMachineAccountPrivilege", FALSE);

View File

@ -64,12 +64,16 @@ UINT CAGrantBOINCProjectRights::OnExecution()
{
PSID pSid;
tstring strBOINCProjectAccountUsername;
tstring strOSVersion;
UINT uiReturnValue = -1;
uiReturnValue = GetProperty( _T("BOINC_PROJECT_USERNAME"), strBOINCProjectAccountUsername );
if ( uiReturnValue ) return uiReturnValue;
uiReturnValue = GetProperty( _T("VersionNT"), strOSVersion );
if ( uiReturnValue ) return uiReturnValue;
//
// Obtain the SID of the user/group.
@ -138,16 +142,20 @@ UINT CAGrantBOINCProjectRights::OnExecution()
GrantUserRight(pSid, L"SeDenyBatchLogonRight", FALSE);
GrantUserRight(pSid, L"SeDenyServiceLogonRight", FALSE);
if (!GrantUserRight(pSid, L"SeDenyRemoteInteractiveLogonRight", TRUE))
{
LogMessage(
INSTALLMESSAGE_ERROR,
NULL,
NULL,
NULL,
NULL,
_T("Failed call to GrantUserRight - SeDenyRemoteInteractiveLogonRight")
);
// Windows 2000 and older does not have the SeDenyRemoteInteractiveLogonRight user right
//
if (strOSVersion > _T("500")) {
if (!GrantUserRight(pSid, L"SeDenyRemoteInteractiveLogonRight", TRUE))
{
LogMessage(
INSTALLMESSAGE_ERROR,
NULL,
NULL,
NULL,
NULL,
_T("Failed call to GrantUserRight - SeDenyRemoteInteractiveLogonRight")
);
}
}
// Privileges

View File

@ -63,8 +63,14 @@ CAGrantBOINCProjectsRights::~CAGrantBOINCProjectsRights()
UINT CAGrantBOINCProjectsRights::OnExecution()
{
PSID pSid;
tstring strOSVersion;
UINT uiReturnValue = -1;
uiReturnValue = GetProperty( _T("VersionNT"), strOSVersion );
if ( uiReturnValue ) return uiReturnValue;
//
// Obtain the SID of the user/group.
// Note that we could target a specific machine, but we don't.
@ -97,7 +103,13 @@ UINT CAGrantBOINCProjectsRights::OnExecution()
GrantUserRight(pSid, L"SeDenyInteractiveLogonRight", FALSE);
GrantUserRight(pSid, L"SeDenyBatchLogonRight", FALSE);
GrantUserRight(pSid, L"SeDenyServiceLogonRight", FALSE);
GrantUserRight(pSid, L"SeDenyRemoteInteractiveLogonRight", FALSE);
// Windows 2000 and older does not have the SeDenyRemoteInteractiveLogonRight user right
//
if (strOSVersion > _T("500")) {
GrantUserRight(pSid, L"SeDenyRemoteInteractiveLogonRight", FALSE);
}
// Privileges
GrantUserRight(pSid, L"SeTcbPrivilege", FALSE);

View File

@ -63,8 +63,14 @@ CAGrantBOINCUsersRights::~CAGrantBOINCUsersRights()
UINT CAGrantBOINCUsersRights::OnExecution()
{
PSID pSid;
tstring strOSVersion;
UINT uiReturnValue = -1;
uiReturnValue = GetProperty( _T("VersionNT"), strOSVersion );
if ( uiReturnValue ) return uiReturnValue;
//
// Obtain the SID of the user/group.
// Note that we could target a specific machine, but we don't.
@ -97,7 +103,13 @@ UINT CAGrantBOINCUsersRights::OnExecution()
GrantUserRight(pSid, L"SeDenyInteractiveLogonRight", FALSE);
GrantUserRight(pSid, L"SeDenyBatchLogonRight", FALSE);
GrantUserRight(pSid, L"SeDenyServiceLogonRight", FALSE);
GrantUserRight(pSid, L"SeDenyRemoteInteractiveLogonRight", FALSE);
// Windows 2000 and older does not have the SeDenyRemoteInteractiveLogonRight user right
//
if (strOSVersion > _T("500")) {
GrantUserRight(pSid, L"SeDenyRemoteInteractiveLogonRight", FALSE);
}
// Privileges
GrantUserRight(pSid, L"SeTcbPrivilege", FALSE);

View File

@ -53,8 +53,8 @@ END
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,0,120
PRODUCTVERSION 1,0,0,120
FILEVERSION 1,0,0,125
PRODUCTVERSION 1,0,0,125
FILEFLAGSMASK 0x17L
#ifdef _DEBUG
FILEFLAGS 0x1L
@ -70,12 +70,12 @@ BEGIN
BLOCK "040904b0"
BEGIN
VALUE "FileDescription", "BOINC Dynamic Link Library"
VALUE "FileVersion", "1.0.0.120"
VALUE "FileVersion", "1.0.0.125"
VALUE "InternalName", "BOINC"
VALUE "LegalCopyright", "Copyright (C) 2005-2008"
VALUE "OriginalFilename", "BOINC.dll"
VALUE "ProductName", " BOINC Dynamic Link Library"
VALUE "ProductVersion", "1.0.0.120"
VALUE "ProductVersion", "1.0.0.125"
END
END
BLOCK "VarFileInfo"