Monday, October 5, 2015

Application Management, Security, & Distribution

While at Attachmate, during a product version development period in which the features on which I worked had no new feature requests or bugs reported, I was assigned a three month special project whose goal was to explore the various management and distribution mechanisms available in the market so I could report on any were suited to improve our product.

Among the products currently performing those services was Microsoft's Management Console, which offered an interface by which we could install our product across a network, control to whom it was available, and control what features were available to specific users and groups. Two components were required, which I had implemented in our flagship product, Extra! Personal Client, before the product version from which I was supposed to be on sabbatical had firmed up its test plans. The first was a text file that specifies the product features that are to be controlled by the network administrator via the group policy user profiles. That was the administrator file (ADM), portions of which I've included below.  The second component that I implemented was the awareness code in the product UI that the group policy was in effect, and how to know whether or not a feature should be disabled or hidden.

With this feature our product cold be installed, configured, and made available feature-by-feature to users or groups as allowed by the network administrator. That reduced the cost of management and distribution of our product and provided security that was controlled in a place accessible only to those a customer would choose gave pause to those rushing to web-based solutions.

The Extra! Personal Client ADM File:


; EE2000 policy settings
#if version <= 2

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
CLASS USER   ;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;************************************************
;************************************************
;************************************************
;************************************************
; BEGIN EXTRA! Enterprise 2000 Policy Template for use with Windows 95/98 or Windows NT 4.0
;
CATEGORY !!EE2000

KEYNAME Software\Policies\Attachmate\EE2000
   

        POLICY !!EE2K_File

                PART !!EE2K_NewSession_Disable CHECKBOX
                VALUENAME DisableFileNewSession
                END PART

                PART !!EE2K_OpenSession_Disable CHECKBOX
                VALUENAME DisableFileOpenSession
                END PART

                PART !!EE2K_SaveSession_Disable CHECKBOX
                VALUENAME DisableFileSaveSession
                END PART

                PART !!EE2K_SaveSessionAs_Disable CHECKBOX
                VALUENAME DisableFileSaveSessionAs
                END PART

                PART !!EE2K_HostCapture_Disable CHECKBOX
                VALUENAME DisableFileHostCapture
                END PART

                PART !!EE2K_OpenLayout_Disable CHECKBOX
                VALUENAME DisableFileOpenLayout
                END PART

                PART !!EE2K_SaveLayout_Disable CHECKBOX
                VALUENAME DisableFileSaveLayout
                END PART

                PART !!EE2K_Properties_Disable CHECKBOX
                VALUENAME DisableFileProperties
                END PART

                PART !!EE2K_PageSetup_Disable CHECKBOX
                VALUENAME DisableFilePageSetup
                END PART

                PART !!EE2K_PrintSetup_Disable CHECKBOX
                VALUENAME DisableFilePrintSetup
                END PART

                PART !!EE2K_PrintScreen_Disable CHECKBOX
                VALUENAME DisableFilePrintScreen
                END PART

                PART !!EE2K_PrintMultipleScreens_Disable CHECKBOX
                VALUENAME DisableFilePrintMultipleScreens
                END PART

                PART !!EE2K_Capture_Disable CHECKBOX
                VALUENAME DisableFileCapture
                END PART

                PART !!EE2K_StopCapture_Disable CHECKBOX
                VALUENAME DisableFileStopCapture
                END PART

                PART !!EE2K_FinishPrinting_Disable CHECKBOX
                VALUENAME DisableFileFinishPrinting
                END PART

                PART !!EE2K_ExitSession_Disable CHECKBOX
                VALUENAME DisableFileExitSession
                END PART

                PART !!EE2K_ExitExtra_Disable CHECKBOX
                VALUENAME DisableFileExitExtra
                END PART

        END POLICY    ;file
;************************************************

        POLICY !!EE2K_Edit

                PART !!EE2K_Cut_Disable CHECKBOX
                VALUENAME DisableEditCut
                END PART

                PART !!EE2K_Copy_Disable CHECKBOX
                VALUENAME DisableEditCopy
                END PART

                PART !!EE2K_CopyAsTable CHECKBOX
                VALUENAME DisableEditCopyAsTable
                END PART

                PART !!EE2K_CutAndAppend CHECKBOX
                VALUENAME DisableEditCutAndAppend
                END PART

                PART !!EE2K_CopyAndAppend CHECKBOX
                VALUENAME DisableEditCopyAndAppend
                END PART

                PART !!EE2K_Paste_Disable CHECKBOX
                VALUENAME DisableEditPaste
                END PART

                PART !!EE2K_Paste_Continue CHECKBOX
                VALUENAME DisableEditPasteContinue
                END PART

                PART !!EE2K_Clear_Disable CHECKBOX
                VALUENAME DisableEditClearDisable
                END PART

                PART !!EE2K_Clear_Display CHECKBOX
                VALUENAME DisableEditClearDisplay
                END PART

                PART !!EE2K_Clear_History CHECKBOX
                VALUENAME DisableEditClearHistory
                END PART

                PART !!EE2K_SelectAll_Disable CHECKBOX
                VALUENAME DisableEditSelectAll
                END PART

                PART !!EE2K_SelectDisplay CHECKBOX
                VALUENAME DisableEditSelectDisplay
                END PART

                PART !!EE2K_Settings_Disable CHECKBOX
                VALUENAME DisableEditSettings
                END PART
               

        END POLICY    ;edit
;************************************************


        POLICY !!EE2K_View

                PART !!EE2K_Toolbars_Disable CHECKBOX
                VALUENAME DisableViewToolbars
                END PART

                PART !!EE2K_StatusBar_Disable CHECKBOX
                VALUENAME DisableViewStatusBar
                END PART

                PART !!EE2K_QuickPads_Disable CHECKBOX
                VALUENAME DisableViewQuickPads
                END PART

                PART !!EE2K_HotSpots_Disable CHECKBOX
                VALUENAME DisableViewHotSpots
                END PART

                PART !!EE2K_KeyboardMap_Disable CHECKBOX
                VALUENAME DisableViewKeyboardMap
                END PART

                PART !!EE2K_RuleLines CHECKBOX
                VALUENAME DisableViewRuleLines
                END PART

                PART !!EE2K_PrintStatus_Disable CHECKBOX
                VALUENAME DisableEditPrintStatus
                END PART
               
                PART !!EE2K_SessionStatus_Disable CHECKBOX
                VALUENAME DisableViewSessionStatus
                END PART

        END POLICY    ;view
;************************************************


        POLICY !!EE2K_Tools

                PART !!EE2K_FileTransfer_Disable CHECKBOX
                VALUENAME DisableToolsFileTransfer
                END PART

                PART !!EE2K_TransferMultiple_Disable CHECKBOX
                VALUENAME DisableToolsMultipleFileTransfer
                END PART

                PART !!EE2K_5250Transfer_Disable CHECKBOX
                VALUENAME DisableTools5250FileTransfer
                END PART

                PART !!EE2K_SendFile_Disable CHECKBOX
                VALUENAME DisableToolsSendFile
                END PART

                PART !!EE2K_ReceiveFile_Disable CHECKBOX
                VALUENAME DisableToolsReceiveFile
                END PART

                PART !!EE2K_Macro_Disable CHECKBOX
                VALUENAME DisableToolsMacro
                END PART

                PART !!EE2K_RecentMacro_Disable CHECKBOX
                VALUENAME DisableToolsRecentMacro
                END PART

                PART !!EE2K_CaptureIncomingData_Disable CHECKBOX
                VALUENAME DisableToolsCaptureIncomingData
                END PART
               
                PART !!EE2K_EndCapture_Disable CHECKBOX
                VALUENAME DisableToolsEndCapture
                END PART

                PART !!EE2K_RecordPages_Disable CHECKBOX
                VALUENAME DisableToolsRecordPages
                END PART

                PART !!EE2K_PageSettings_Disable CHECKBOX
                VALUENAME DisableToolsPageSettings
                END PART

                PART !!EE2K_Status_Disable CHECKBOX
                VALUENAME DisableToolsStatus
                END PART

                PART !!EE2K_AlignForm_Disable CHECKBOX
                VALUENAME DisableToolsAlignForm
                END PART

                PART !!EE2K_TestPage_Disable CHECKBOX
                VALUENAME DisableToolsPrintTestPage
                END PART

        END POLICY    ;tools
;************************************************


        POLICY !!EE2K_Session

                PART !!EE2K_Connect_Disable CHECKBOX
                VALUENAME DisableSessionConnect
                END PART

                PART !!EE2K_Disconnect_Disable CHECKBOX
                VALUENAME DisableSessionDisconnect
                END PART

                PART !!EE2K_Reset_Disable CHECKBOX
                VALUENAME DisableSessionReset
                END PART

                PART !!EE2K_ResetDisplay_Disable CHECKBOX
                VALUENAME DisableSessionResetDisplay
                END PART

                PART !!EE2K_ResetConnection_Disable CHECKBOX
                VALUENAME DisableSessionResetConnection
                END PART

        END POLICY    ;session
;************************************************


        POLICY !!EE2K_Control

                PART !!EE2K_HoldPrint_Disable CHECKBOX
                VALUENAME DisableControlHoldPrint
                END PART

                PART !!EE2K_PA1_Disable CHECKBOX
                VALUENAME DisableControlPA1
                END PART

                PART !!EE2K_PA2_Disable CHECKBOX
                VALUENAME DisableControlPA2
                END PART

                PART !!EE2K_CancelPrint_Disable CHECKBOX
                VALUENAME DisableControlCancelPrint
                END PART

                PART !!EE2K_FormFeed_Disable CHECKBOX
                VALUENAME DisableControlFormFeed
                END PART

        END POLICY    ;control
;************************************************


        POLICY !!EE2K_Options

                PART !!EE2K_OptionsSettings_Disable CHECKBOX
                VALUENAME DisableOptionsSettings
                END PART

                PART !!EE2K_SessionType_Disable CHECKBOX
                VALUENAME DisableOptionsSessionType
                END PART

                PART !!EE2K_GlobalPreferences_Disable CHECKBOX
                VALUENAME DisableOptionsGlobalPreferences
                END PART

                PART !!EE2K_Security_Disable CHECKBOX
                VALUENAME DisableOptionsSecurity
                END PART

                PART !!EE2K_Color_Disable CHECKBOX
                VALUENAME DisableOptionsSettingsColors
                END PART

                PART !!EE2K_Connection_Disable CHECKBOX
                VALUENAME DisableOptionsSettingsConnection
                END PART

                PART !!EE2K_Display_Disable CHECKBOX
                VALUENAME DisableOptionsSettingsDisplay
                END PART

                PART !!EE2K_Font_Disable CHECKBOX
                VALUENAME DisableOptionsSettingsFonts
                END PART

                PART !!EE2K_Navigation_Disable CHECKBOX
                VALUENAME DisableOptionsSettingsNavigation
                END PART

                PART !!EE2K_Printer_Disable CHECKBOX
                VALUENAME DisableOptionsSettingsPrinter
                END PART


        END POLICY    ;options
;************************************************


        POLICY !!EE2K_Help

                PART !!EE2K_HelpTopics_Disable CHECKBOX
                VALUENAME DisableHelpHelpTopics
                END PART

                PART !!EE2K_UsingHelp_Disable CHECKBOX
                VALUENAME DisableHelpUsingHelp
                END PART

                PART !!EE2K_SupportWeb_Disable CHECKBOX
                VALUENAME DisableHelpSupportWeb
                END PART

                PART !!EE2K_OfficeCompatible_Disable CHECKBOX
                VALUENAME DisableHelpOfficeCompatible
                END PART

                PART !!EE2K_About_Disable CHECKBOX
                VALUENAME DisableHelpAbout
                END PART

        END POLICY    ;help
;************************************************

END CATEGORY