You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
256 lines
7.7 KiB
256 lines
7.7 KiB
//***************************************************************************
|
|
// Copyright (c) Microsoft Corporation
|
|
//
|
|
// Module Name:
|
|
// TAKEOWN.H
|
|
//
|
|
// Abstract:
|
|
// Contains function prototypes and macros.
|
|
//
|
|
// Author:
|
|
// Wipro Technologies
|
|
//
|
|
// Revision History:
|
|
// Wipro Technologies 22-jun-01 : Created It.
|
|
//***************************************************************************
|
|
|
|
#ifndef __TAKEOWN_H
|
|
#define __TAKEOWN_H
|
|
|
|
|
|
LPWSTR lpwszTempDummyPtr ;
|
|
|
|
// constants / defines / enumerations
|
|
#define MAX_OPTIONS 8
|
|
#define FILESYSNAMEBUFSIZE 1024
|
|
//Command line parser index
|
|
|
|
#define CMD_PARSE_SERVER 0
|
|
#define CMD_PARSE_USER 1
|
|
#define CMD_PARSE_PWD 2
|
|
#define CMD_PARSE_USG 3
|
|
#define CMD_PARSE_FN 4
|
|
#define CMD_PARSE_RECURSE 5
|
|
#define CMD_PARSE_ADMIN 6
|
|
#define CMD_PARSE_CONFIRM 7
|
|
|
|
//warning message
|
|
#define IGNORE_LOCALCREDENTIALS GetResString( IDS_IGNORE_LOCALCREDENTIALS )
|
|
|
|
// Error constants
|
|
|
|
|
|
#define ERROR_PATH_NAME GetResString( IDS_ERROR_PATH_NAME )
|
|
|
|
// Error constants
|
|
#define ERROR_USER_WITH_NOSERVER GetResString( IDS_USER_NMACHINE )
|
|
#define ERROR_PASSWORD_WITH_NUSER GetResString( IDS_PASSWORD_NUSER )
|
|
#define ERROR_NULL_SERVER GetResString( IDS_NULL_SERVER )
|
|
#define ERROR_NULL_USER GetResString( IDS_NULL_USER )
|
|
#define ERROR_INVALID_WILDCARD GetResString( IDS_INVALID_WILDCARD )
|
|
#define ERROR_SYNTAX_ERROR GetResString( IDS_SYNTAX_ERROR )
|
|
#define ERROR_STRING GetResString( IDS_ERROR_STRING )
|
|
#define GIVE_FULL_PERMISSIONS GetResString(IDS_GIVE_FULL_PERMISSIONS)
|
|
#define GIVE_FULL_PERMISSIONS2 GetResString(IDS_GIVE_FULL_PERMISSIONS2)
|
|
|
|
//success string
|
|
#define TAKEOWN_SUCCESSFUL GetResString( IDS_FILE_PROTECTION_SUCCESSFUL )
|
|
#define TAKEOWN_SUCCESSFUL_USER GetResString( IDS_FILE_PROTECTION_SUCCESSFUL_USER )
|
|
#define LOWER_YES GetResString( IDS_LOWER_YES )
|
|
|
|
#define LOWER_NO GetResString( IDS_LOWER_NO )
|
|
|
|
#define LOWER_CANCEL GetResString( IDS_LOWER_CANCEL )
|
|
|
|
|
|
|
|
#define SPACE_CHAR L" "
|
|
|
|
//command line options
|
|
#define CMDOPTION_USAGE L"?"
|
|
#define CMDOPTION_SERVER L"S"
|
|
#define CMDOPTION_USER L"U"
|
|
#define CMDOPTION_PASSWORD L"P"
|
|
#define CMDOPTION_FILENAME L"F"
|
|
#define CMDOPTION_RECURSE L"R"
|
|
#define CMDOPTION_ADMIN L"A"
|
|
|
|
|
|
|
|
#define TRIM_SPACES TEXT(" \0")
|
|
#define WILDCARD L"*"
|
|
#define DOUBLE_QUOTE L"\\\\"
|
|
#define SINGLE_QUOTE L'\\'
|
|
#define BACK_SLASH L"/"
|
|
#define TRIPLE_SLASH L"\\\\\\"
|
|
#define DOLLOR L'$'
|
|
#define COLON L':'
|
|
#define ALL_FILES L"\\*.*"
|
|
#define DOT L"."
|
|
#define DOTS L".."
|
|
#define CHAR_SET L"\"/?<>|"
|
|
#define CHAR_SET2 L"\\\"/:?<>|*.+,$#@![](){}~&?^|="
|
|
#define CHAR_SET3 L":"
|
|
#define ADMINISTRATOR L"Administrator"
|
|
#define ADMINISTRATORS L"Administrators"
|
|
#define SUCCESS 0
|
|
#define FAILURE 1
|
|
#define RETVALZERO 0
|
|
#define MAX_PATHNAME 512
|
|
#define MAX_SYSTEMNAME 64
|
|
#define C_COLON L"C:\\"
|
|
#define D_COLON L"D:\\"
|
|
#define E_COLON L"E:\\"
|
|
#define F_COLON L"F:\\"
|
|
#define G_COLON L"G:\\"
|
|
#define H_COLON L"H:\\"
|
|
|
|
#define EXTRA_MEM 10
|
|
#define NULL_U_STRING L"\0"
|
|
#define NULL_U_CHAR L'\0'
|
|
#define EXIT_FAIL 255
|
|
#define EXIT_SUCC 0
|
|
#define EXIT_CANCELED 1000
|
|
#define BOUNDARYVALUE 128
|
|
#define MAX_CONFIRM_VALUE 10
|
|
|
|
|
|
#define DASH L"-"
|
|
#define BASE_TEN 10
|
|
|
|
|
|
#define FREE_MEMORY( VARIABLE ) \
|
|
FreeMemory(&VARIABLE); \
|
|
1
|
|
|
|
|
|
#define CLOSE_FILE_HANDLE( FILE_HANDLE ) \
|
|
if( FILE_HANDLE != 0 ) \
|
|
{ \
|
|
FindClose( FILE_HANDLE ) ; \
|
|
FILE_HANDLE = 0 ; \
|
|
} \
|
|
1
|
|
|
|
|
|
// function prototypes
|
|
BOOL
|
|
ParseCmdLine(
|
|
IN DWORD argc,
|
|
IN LPCWSTR argv[],
|
|
OUT LPWSTR* szMachineName,
|
|
OUT LPWSTR* szUserName,
|
|
OUT LPWSTR* szPassword,
|
|
OUT LPWSTR* szFileName,
|
|
OUT BOOL *pbUsage,
|
|
OUT BOOL *pbNeedPassword,
|
|
OUT BOOL *pbRecursive,
|
|
OUT BOOL *pbAdminsOwner,
|
|
OUT LPWSTR szConfirm
|
|
);
|
|
|
|
VOID
|
|
DisplayUsage(
|
|
);
|
|
|
|
BOOL
|
|
TakeOwnerShip(
|
|
IN LPCWSTR lpszFileName
|
|
);
|
|
|
|
BOOL
|
|
GetTokenHandle(
|
|
OUT PHANDLE hTokenHandle
|
|
);
|
|
|
|
BOOL
|
|
AssertTakeOwnership(
|
|
IN HANDLE hTokenHandle
|
|
);
|
|
|
|
BOOL
|
|
TakeOwnerShipAll(IN LPWSTR lpszFileName,
|
|
IN BOOL bCurrDirTakeOwnAllFiles,
|
|
IN PDWORD dwFileCount,
|
|
IN BOOL bDriveCurrDirTakeOwnAllFiles,
|
|
IN BOOL bAdminsOwner,
|
|
IN LPWSTR szOwnerString,
|
|
BOOL bMatchPattern,
|
|
LPWSTR wszPatternString);
|
|
|
|
|
|
BOOL
|
|
TakeOwnerShipRecursive(IN LPWSTR lpszFileName,
|
|
IN BOOL bCurrDirTakeOwnAllFiles,
|
|
IN BOOL bAdminsOwner,
|
|
IN LPWSTR szOwnerString,
|
|
IN BOOL bTakeOwnAllFiles,
|
|
IN BOOL bDriveCurrDirTakeOwnAllFiles,
|
|
IN BOOL bMatchPattern,
|
|
IN LPWSTR wszPatternString,
|
|
IN LPWSTR szConfirm);
|
|
|
|
|
|
|
|
DWORD IsLogonDomainAdmin(IN LPWSTR szOwnerString, OUT PBOOL pbLogonDomainAdmin);
|
|
|
|
typedef struct __STORE_PATH_NAME
|
|
{
|
|
LPTSTR pszDirName ;
|
|
struct __STORE_PATH_NAME *NextNode ;
|
|
} Store_Path_Name , *PStore_Path_Name ;
|
|
|
|
|
|
DWORD
|
|
StoreSubDirectory(IN LPTSTR lpszPathName,
|
|
IN PBOOL pbACLChgPermGranted,
|
|
IN LPWSTR szOwnerString,
|
|
IN BOOL bMatchPattern,
|
|
IN LPWSTR wszPatternString,
|
|
IN LPWSTR szConfirm,
|
|
IN BOOL bAdminsOwner);
|
|
|
|
BOOL GetOwnershipForFiles(IN LPWSTR lpszPathName,
|
|
IN BOOL bAdminsOwner,
|
|
IN LPWSTR szOwnerString,
|
|
IN BOOL bMatchPattern,
|
|
IN LPWSTR wszPatternString,
|
|
IN OUT PBOOL pbFilesNone);
|
|
|
|
BOOL Pop( void );
|
|
|
|
BOOL Push( IN LPTSTR szPathName );
|
|
|
|
DWORD GetMatchedFiles(
|
|
IN BOOL bAdminsOwner,
|
|
IN LPWSTR szOwnerString,
|
|
IN BOOL bMatchPattern,
|
|
IN LPWSTR wszPatternString,
|
|
IN OUT PBOOL pbFilesNone,
|
|
IN LPWSTR szConfirms);
|
|
|
|
BOOL
|
|
TakeOwnerShipIndividual( IN LPCTSTR lpszFileName );
|
|
|
|
|
|
DWORD
|
|
IsNTFSFileSystem(IN LPWSTR lpszPath,
|
|
BOOL bLocalSystem,
|
|
//BOOL bFileInUNCFormat,
|
|
BOOL bCurrDirTakeOwnAllFiles,
|
|
LPWSTR szUserName,
|
|
OUT PBOOL pbNTFSFileSystem);
|
|
DWORD
|
|
IsNTFSFileSystem2(IN LPWSTR lpszTempDrive,
|
|
OUT PBOOL pbNTFSFileSystem);
|
|
|
|
BOOL
|
|
AddAccessRights(IN WCHAR *lpszFileName,
|
|
IN DWORD dwAccessMask,
|
|
IN LPWSTR dwUserName,
|
|
IN BOOL bAdminsOwner);
|
|
|
|
|
|
DWORD RemoveStarFromPattern( IN OUT LPWSTR szPattern );
|
|
|
|
#endif // __TAKEOWN_H
|