home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 4_2005-2006.ISO / data / Zips / FINAL_V6__199844632006.psc / clsNMC.cls < prev   
Text File  |  2006-06-03  |  10KB  |  175 lines

  1. VERSION 1.0 CLASS
  2. BEGIN
  3.   MultiUse = -1  'True
  4.   Persistable = 0  'NotPersistable
  5.   DataBindingBehavior = 0  'vbNone
  6.   DataSourceBehavior  = 0  'vbNone
  7.   MTSTransactionMode  = 0  'NotAnMTSObject
  8. END
  9. Attribute VB_Name = "clsNMC"
  10. Attribute VB_GlobalNameSpace = False
  11. Attribute VB_Creatable = True
  12. Attribute VB_PredeclaredId = False
  13. Attribute VB_Exposed = False
  14. Option Explicit
  15.  
  16. '***************************************************************************************
  17. '*  NMC! V1.6    NT Master Class v1.6.1                                                *
  18. '*                                                                                     *
  19. '*  Created:     April 14, 2006                                                        *
  20. '*  Updated:     June 02, 2006                                                         *
  21. '*  Purpose:     NT System Security Master Class                                       *
  22. '*  Functions:   (listed)                                                              *
  23. '*  Revision:    1.6.1                                                                 *
  24. '*  Compile:     Native                                                                *
  25. '*  Referenced:  Throughout Project                                                    *
  26. '*  Author:      John Underhill (Steppenwolfe)                                         *
  27. '*                                                                                     *
  28. '***************************************************************************************
  29.  
  30.  
  31. ' ~*** Notes ***~
  32.  
  33. '/~ Some things to know..
  34. '/~ First off, some errors are not actually errors, but are caused by invalid input. For example,
  35. '/~ you can not delete a user that does not exist, or create a group that already exists, these
  36. '/~ sorts of things are user input errors, and have to be handled or ignored by your application
  37. '/~ handlers. Some services can not be paused/restarted, that is an attribute of the service design.
  38. '/~ You must have at least one NTFS partition in order to test the NTFS security routines, if NTFS
  39. '/~ is not detected, these controls are disabled. Some things will work in 98/ME, some, [of course],
  40. '/~ will not. Most of the api for service and process management is backwards compatable.
  41. '/~ You may use this code in any way you like, as long as you agree that no warranty or
  42. '/~ liability of any kind is expressed or implied. If you wish you can add a mention to the
  43. '/~ about page of your project/app, ex. Credit to: John Underhill of NSPowertools.com.
  44.  
  45. '/~ April 17, 2006 - V2
  46. '/~ Gave the code a once over and fixed a couple of things, added some options to NTFS recurse
  47. '/~ and group routines.
  48.  
  49. '/~ April 22, 2006 - V3
  50. '/~ Added functions Service_Remove and Service_Add. Updated User and group functions, global groups
  51. '/~ can now be added, and extended user properties like default permissions set were added.
  52.  
  53. '/~ April 27, 2006 - V4
  54. '/~ Fixed a bug in User_Create, that caused the example to work improperly. Added three new routines,
  55. '/~ User_SetData (sets account properties), User_Password (change account password), and Get_Domain
  56. '/~ (retrieve the primary dc name).
  57.  
  58. '/~ April 29, 2006 - V5  ~Final~ (!60 Functions!)
  59. '/~ Excepting if bugs are found, this is the final rev.
  60. '/~ Added 10 routines to Process management. Process functions are all mirrored to psapi equivilents
  61. '/~ for NT Server compatability. Example was expanded to demonstrate split methods.
  62. '/~ Module_EnumG2 (module enum using psapi for 2k server), Process_EnumG2 (process enum using psapi),
  63. '/~ Return_ProcessID and  Return_ProcessIDG2 (return process id from process name - psapi and kernal32 versions)
  64. '/~ Process_ExistsG2 (test for the existence of a process using psapi)
  65. '/~ Process_GetClass (get current process class), Process_SetClass (set process priority),
  66. '/~ Thread_Terminate (kill a thread), Thread_GetPriority (get thread priority),
  67. '/~ Thread_SetPriority (set new thread priority).
  68.  
  69. '/~ Added 4 new routines to user management:
  70. '/~ User_LoadProfile (generate a new user profile), User_UnloadProfile (unload user profile)
  71. '/~ User_LoadHive (load users profile hive into the registry), User_UnloadHive (unload the hive).
  72.  
  73. '/~ Updated the sample program with the "Extended Example" demo, to demonstrate usage of some of
  74. '/~ the new features.
  75.  
  76. '/~ April 30, 2006
  77. '/~ One small fix to NetLocalGroupDel and NetGroupDel declarations, and updated documentation.
  78.  
  79. '/ June 02, 2006 - V6
  80. '/~ Added Service_Desc function to change a services description in the mmc. Proofed the Service_Add and
  81. '/~ Service_Remove functions and updated them. Some small formatting changes.
  82.  
  83. '/ June 03, 2006
  84. '/~ As per Lite's suggestion, added remote capabilities to all the service routines, (simply specify
  85. '/~ UNC path to machine in optional 'sMachine' param).
  86.  
  87. '/~ Cheers
  88. '/~ John - steppenwolfe_2000@yahoo.com
  89.  
  90.  
  91. ' ~*** Exposed Functions ***~
  92.  
  93. '/~ User and Group Management ~/
  94. '/~ User_Create             - create a new user         [in -string (6) | out -bool]
  95. '/~ User_Delete             - delete a user account     [in -string (2) | out -bool]
  96. '/~ User_Exist              - test a user account       [in -string (2) | out -bool]
  97. '/~ User_Data               - get user profile data     [in -string (2) | out -bool]
  98. '/~ User_LoadProfile        - create user profile       [in string (4) | out -bool]
  99. '/~ User_UnloadProfile      - unload profile            [in string | out -bool]
  100. '/~ User_LoadHive           - load user key             [in string | out -bool]
  101. '/~ User_UnloadHive         - unload user key           [in string | out -bool]
  102. '/~ Users_List              - list local|global users   [in -string (3) | out -col]
  103. '/~ User_Impersonate        - impersonate a user        [in -string (3) | out -bool]
  104. '/~ User_Revert             - revert to native token    [out -bool]
  105. '/~ User_RunAs              - launch process as user    [in -string (4) | out -bool]
  106. '/~ User_Name               - logged in user            [out -string]
  107. '/~ User_SetData            - apply account changes     [in -string (2) + enum | out -bool]
  108. '/~ User_Password           - change user password      [in -string (4) | out -bool]
  109. '/~ Group_Create            - create a user group       [in -string (3) | out -bool]
  110. '/~ Group_Add               - add user to group         [in -string (3) | out -bool]
  111. '/~ Group_Remove            - remove user from group    [in -string (3) | out -bool]
  112. '/~ Group_Delete            - delete a group            [in -string (3) | out -bool]
  113. '/~ Groups_List             - list built-in groups      [in -none | out -col]
  114. '/~ Computer_Name           - local computer name       [in -none | out -string]
  115. '/~ Get_Domain              - get primary dc name       [in -string | out -string]
  116.  
  117. '/~ Service Management ~/
  118. '/~ Service_Start           - start a service           [in -string | out -bool]
  119. '/~ Service_Stop            - stop a service            [in -string | out -bool]
  120. '/~ Service_Pause           - pause a service           [in -string | out -bool]
  121. '/~ Service_Resume          - resume a service          [in -string | out -bool]
  122. '/~ Service_Query           - query service state       [in -string | out -long]
  123. '/~ Service_Change          - change startup attr       [in -string + enum | out -bool]
  124. '/~ Service_Enumerate       - list running services     [out -col]
  125. '/~ Service_Add             - add a new service         [in -string (6) | out -bool]
  126. '/~ Service_Remove          - delete a service          [in -string | out -bool]
  127. '/~ Service_Desc            - change svc description    [in -string (2) | out -bool]
  128.  
  129. '/~ Process Management ~/
  130. '/~ Process_Enumerate       - list processes (kernal32) [out -col]
  131. '/~ Process_EnumG2          - list processes (psapi)    [out -col]
  132. '/~ Process_Exists          - test existence (kernal32) [in -string | out -bool]
  133. '/~ Process_ExistsG2        - test existence (psapi)    [in -string | out -bool]
  134. '/~ Process_Terminate       - terminate a process       [in -string | out -bool]
  135. '/~ Process_GetClass        - get process class         [in -long | out -long]
  136. '/~ Process_SetClass        - change process priority   [in - string + enum | out -bool]
  137. '/~ Return_ProcessID        - return prc id (kernal32)  [in -string | out -long]
  138. '/~ Return_ProcessIDG2      - return prc id (psapi)     [in -string | out -long]
  139. '/~ Thread_Enumerate        - list a process threads    [in -string | out -bool]
  140. '/~ Thread_Suspend          - suspend a thread          [in -long + string | out -bool]
  141. '/~ Thread_Resume           - resume a thread           [in -long + string | out -bool]
  142. '/~ Thread_GetPriority      - get thread priority       [in -long | out -long]
  143. '/~ Thread_SetPriority      - set thread priority       [in -long + enum | -out bool]
  144. '/~ Thread_Terminate        - kill a thread             [in -long | out -bool]
  145. '/~ Module_Enumerate        - list a process modules    [in -string | out -col]
  146. '/~ Module_EnumG2           - server enum (psapi)       [in -string | out -col]
  147.  
  148. '/~ Encrypted File System ~/
  149. '/~ EFS_Status              - file/folder state         [in -string | out -long]
  150. '/~ EFS_Encrypt             - encrypt file/folder       [in -string | out -bool]
  151. '/~ EFS_Decrypt             - decrypt file/folder       [in -string | out -bool]
  152. '/~ EFS_Enable              - enable EFS                [in -string | out -bool]
  153. '/~ EFS_Disable             - disable EFS               [in -string | out -bool]
  154. '/~ Create_Directory        - create a directory        [in -string | out -bool]
  155. '/~ File_Exists             - test for path/file        [in -string | out -bool]
  156.  
  157. '/~ NTFS File System ~/
  158. '/~ NTFS_Drive              - test drive for ntfs       [in -string(1) | out -bool]
  159. '/~ NTFS_Check              - test all drives for ntfs  [out -col]
  160. '/~ NTFS_Folder             - modify object security    [in -string/enum | out -bool]
  161. '/~ NTFS_Recursive          - recurse permissions set   [in -string | out -bool]
  162.  
  163. '/~ NTFS Registry ~/
  164. '/~ NTFS_Key                - modify key security       [in -string/enum | out -bool]
  165.  
  166.  
  167. ' ~*** Events ***~
  168.  
  169. '/~ eNComplete              - task completed successfully
  170. '/~ eNErrorCond             - error condition
  171.  
  172.  
  173.  
  174. '>  Start User/Group Depend   lhot User/Group
  175. '/t/~ Thread_Enumerate        - list a process threads    CF~ NTFS_Checong | os    CF~