void HandleDLOption ( int argc, TCHAR **argv ) { DWORD returnValue; if (argc < 3) ShowUsage (TEXT("Invalid number of arguments.")); if (_tcscmp (_tcsupr (argv [2]), TEXT("LIST")) == 0) { _tprintf (TEXT("Default launch permission list:\n\n")); ListDefaultLaunchACL(); return; } if (argc < 4) ShowUsage (TEXT("Invalid number of arguments.")); if (_tcscmp (_tcsupr (argv [2]), TEXT("SET")) == 0) { if (argc < 5) ShowUsage (TEXT("Invalid number of arguments.")); if (_tcscmp (_tcsupr (argv [4]), TEXT("PERMIT")) == 0) returnValue = ChangeDefaultLaunchACL (argv [3], TRUE, TRUE); else if (_tcscmp (_tcsupr (argv [4]), TEXT("DENY")) == 0) returnValue = ChangeDefaultLaunchACL (argv [3], TRUE, FALSE); else { ShowUsage (TEXT("You can only set a user's permissions to \"permit\" or \"deny\".\n\n")); } if (returnValue != ERROR_SUCCESS) Error (TEXT("ERROR: Cannot add user to default launch ACL."), returnValue); } else if (_tcscmp (_tcsupr (argv [3]), TEXT("REMOVE")) == 0) { returnValue = ChangeDefaultLaunchACL (argv[3], FALSE, FALSE); if (returnValue != ERROR_SUCCESS) Error (TEXT("ERROR: Cannot remove user from default launch ACL."), returnValue); } else ShowUsage (TEXT("You can only \"set\" or \"remove\" a user.")); }
/*---------------------------------------------------------------------------*\ * NAME: HandleDefaultLaunchOption * * --------------------------------------------------------------------------* * DESCRIPTION: \*---------------------------------------------------------------------------*/ void HandleDefaultLaunchOption ( int cArgs, TCHAR **pptszArgv ) { DWORD dwReturnValue = ERROR_SUCCESS; DWORD dwAccessMask = COM_RIGHTS_EXECUTE; if (cArgs < 3) ShowUsage (_T("Invalid number of arguments.")); if (_tcsicmp (pptszArgv [2], _T("LIST")) == 0) { _tprintf (_T("Default launch permission list:\n\n")); dwReturnValue = ListDefaultLaunchACL(); if (dwReturnValue != ERROR_SUCCESS) { Error (_T("ERROR: Cannot list default launch ACL."), dwReturnValue); } return; } if (cArgs < 4) ShowUsage (_T("Invalid number of arguments.")); if (_tcsicmp (pptszArgv [2], _T("SET")) == 0) { if (cArgs < 5) ShowUsage (_T("Invalid number of arguments.")); if(cArgs == 6) { SetAccessMaskFromCommandLine(pptszArgv[5], &dwAccessMask, SDTYPE_DEFAULT_LAUNCH); } else if(!IsLegacySecurityModel()) { _tprintf (_T("WARNING: Default access flags designated on a system with an enhanced security model.\n")); } if (_tcsicmp (pptszArgv [4], _T("PERMIT")) == 0) { dwReturnValue = ChangeDefaultLaunchAndActivateACL (pptszArgv [3], TRUE, TRUE, dwAccessMask); } else if (_tcsicmp (pptszArgv [4], _T("DENY")) == 0) { dwReturnValue = ChangeDefaultLaunchAndActivateACL (pptszArgv [3], TRUE, FALSE, dwAccessMask); } else { ShowUsage (_T("You can only set a user's permissions to \"permit\" or \"deny\".\n\n")); } if (dwReturnValue != ERROR_SUCCESS) { Error (_T("ERROR: Cannot add user to default launch ACL."), dwReturnValue); } } else if (_tcsicmp (pptszArgv [2], _T("REMOVE")) == 0) { dwReturnValue = ChangeDefaultLaunchAndActivateACL (pptszArgv[3], FALSE, FALSE, dwAccessMask); if (dwReturnValue != ERROR_SUCCESS) { Error (_T("ERROR: Cannot remove user from default launch ACL."), dwReturnValue); } } else { ShowUsage (_T("You can only \"set\" or \"remove\" a user.")); } _tprintf (_T("Successfully set the Default Launch ACL.\n")); ListDefaultLaunchACL(); }