Skip to content

Commit

Permalink
Version Three (#209)
Browse files Browse the repository at this point in the history
* Workflow support (#208)

* SecureReference properties

Introducing properties to store the Id for SecureReferences for future lookup

* ComboBox control

resizing form to support and introducing Combo Box dropdown to support list of Run As Accounts

* workflow form

Adding dedicated form for controlling whether or not the workflow is enabled and how often it should run

* include workflow form

adding workflow form/resources to build

* workflow icon

adding workflow icon for the workflow form/wizard step

* workflow placeholder

Creating section for workflow engine feature

* workflow icon

including for readme

* screenshot alignment

forcing center alignment of graphic

* load secure reference bindings

Defining variables/bindings for loading a list and loading the selected item for the Exchange Web Services connection

* save secure reference id

saving the selected secure reference to the MP for easier lookup/load

* file path for connector

extending settings class with new data point to store the location of the smletsexchangeconnector.ps1 file

* connector text field

adding new text field for smlets exchange connector PowerShell file path

* browse button action

updating code behind for DLL xaml for the Browse button for finding the smlets exchange connector PowerShell script file path

* combobox control

resizing form to support and introducing Combo Box dropdown to support list of Run As Accounts

* cireson portal secure reference bindings

updating bindings between the UI and the MP for saving the ID of the secure reference to be used when authenticating to the cireson portal

* reference to new project

Adding build reference to new project within the solution for "SMLets.Exchange.Connector.Resources"

* workflow assembly project

New project to be included in the SMLets Exchange Connector solution to compile the DLL file to use the workflow

* workflow dependencies

With the introduction of the workflow, new dependencies are required to run the workflow/powershell

* update workflow

Adding logic that modifies an already existing instance of the SMLets Exchange Connector Workflow (i.e. Monitoring Rule). This updates if the workflow is enabled, how often the workflow runs per the UI and which secure reference to use

* updating wiki url

made the URL for configuring workflows ready for final release

* update workflow improvement

previously hard coded the management pack alias name. Now it's dynamically retrieved based on the Secure Reference that was selected and then used to update the Rule's XML

* create workflow - first pass

Rule creation still incomplete as it lacks a parent XML nodes for Data Source and Write Action that exist outside of the currently defined XML strings

* create workflow - second pass

The logic now exists to create a Workflow (monitoring) Rule from scratch if it doesn't exist. Thereby closing the loop between update and create processes.

* smexco file path binding

adds bindings to the settings UI for the smexco file path

* EWS variables

updating variables names for EWS to be more unique within the script

* About verbiage

updating the wording on the about page given the advent of this version's new functionality

* parameter case

updating case for parameters to match dependency registers of runscript.cs

* workflow ui bindings

bindings between the UI and setting the workflow values

* workflow wizard step

adding the workflow form to the wizard

* missing try/catch for portal run as

if the value isn't set the the MP would throw an error

* load workflow settings

load the workflow settings to the UI from the SCSM LFX mp if they are present

* workflow logic

the introduction of determining if the workflow is being used eliminates the need for renaming the ews variables

* logging (#210)

* logging function

Still work to be done here (such as more validation sets per function and creating the event log), but this begins the standardization of logging regardless of deployment strategy.

* error - failure to read inbox

If the connection to Exchange can't be made, an event is recorded and the connector stops further processing

* info - messages processed

logging for the number of messages to be processed and then a counter that increments as each message is processed

* info - new-workitem

basic logging for the New-WorkItem function. Shows the message that came from Exchange and was passed into the function that's about to be used to create the work item, then SCSM specific concepts around From -> Affected User translation, and finally the created work item that was created. Given usage of ACS, AML, or regex patterns could be used to override the default work item type. This logging also highlights the initial work item type and potentially what the final result was

* info - update-workitem

introductory logging for update-workitem function

* info - update-workitem - RA

adding verbose logging support for review activities

* error - ews connection

moving failure to connect to exchange to a critical error which requires logging to be enabled

* logging - verify workitem

adding a mix of info and warning logging to Verify-WorkItem function

* logging icon

adding logging icon for readme

* logging settings

adding log properties

* logging bindings

creating bindings between ui and settings mp

* logging forms

adding forms for the logging page

* include logging forms

adding logging forms to the build

* logging wizardstep

adding a new wizard step to the wizard story for the new Logging page/form

* pull logging from settings

Creating variable to pull log settings from the Settings MP

* new-smexcoevent updates

making sure the function references the logging variables from the Settings MP and that the Event Log actually exists so the function can write to the Windows Event Log in the event the logging is enabled and it's being run from the workflow

* messages to process and variable expansion

changing logging so that messages to process must equal some value, lest generate event log noise when there is nothing to process. Also found variable expansion missing for CC/Related Users

* update-workitem, try/catch to if/else

moving the logging in update-workitem to an if/else to properly capture the difference between an Action and a Comment

* typo

correcting a mispelling

* versioning

updating versioning for Settings UI header

* next version

updating next build version for solution

* inline notes

updating versioning notes within the script

* workflow verbiage

updating text for workflows to reference the ability to use run as accounts

* problem saving logging type (#213)

Without this change, if you are attempt to log using workflows. You need to change the logging level to something else, save it, re-open, and then choose Workflows.

* more logging for functions (#211)

* function call change and new ordering

Changing how the function is called in PowerShell as it makes it easier to CTRL+F and find where logging occurs on a per function level. i.e. New-SMEXCOEvent -Source "General" can be done unique to all of the function calls but New-SMEXCOEvent -ID 0 would span several different types of functions as this functionality grows.

Also re-ordering the event numbering to log a verbose event to show the connection to Exchange was succesful

* Schedule-WorkItem and Get-SCSMUserByEmailAddress

adding logging options for setting/nulling Scheduled Work Items with appointments/meetings as well as details around Get-SCSMUserByEmailAddress

* Create-UserInCMDB

Opting to make this part of regular Informational events as opposed to requiring Verbose logging. Introducing a variable to hold the projection -passthru result to test for existence on the optional logging step

* Send-EmailFromWorkflowAccount and Test-KeywordsFoundInMessage

adding logging for when an email is sent from the workflow account and if a match is found when attempting to match keywords to drive IR/SR

* event call order

missed re-ordering one of the new-smexcoevent calls

* evening out event parameters

While they aren't getting used just yet, the amount of incoming parameters did not equal the amount that could be set

* logging sources

adding more logging sources to keep parity with inbound parameters

* new event typo

creating a new event in update-workitem function had a typo that would have prevented a successful log entry

* portal workflow integration (#214)

* cireson portal token call

updating the call to retrieve an auth token from the Cireson portal depending on if workflows are being used or not.

* portal secure reference

if the secure reference can't be set, it must have been left blank in the UI. This forces the selection of the first secure reference to be set to the mp so we can ultimately set this as a workflow parameter.

* workflow rule update action

When the form is saved, the rule is updated with 3 new parameters for use with optional cireson portal integration. This approach dynamically the Workflow Parameters and then inserts those Workflow Parameters into the Workflow to be set with the WriteActionCollection

* workflow rule create action

When the rule doesn't exist, the rule is created with 6 parameters for use with optional cireson portal integration. This approach dynamically builds the Workflow Parameters and then inserts those Workflow Parameters into the Workflow to be set with the WriteActionCollection

* portal params

adding new parameters to for authenticating with the cireson portal

* token call change

updating call to retrieve portal tokens

* variable naming

improving variable names

* forced bind

if a selection wasn't made for which run as account to use for the cireson portal, the rule fails to build several lines down (3548-3737)

* updating versioning

adding beta2 to form header for next release

* logging url

adding a hyperlink on the logging page to redirect to the Wiki to understand the logging levels in further detail

* url code behind

adding the action for the Logging URL on the code behind

* inline notes

updating versioning

* double username

logging event should show domain\user

* Exchange Impersonation (#215)

* impersonation bool

Introducing a new settings value for deciding whether or not Exchange Impersonation is used

* impersonation checkbox

adding a checkbox to control whether or not impersonation is used when authenticating to exchange

* bindings for Impersonation

adding variables and bindings to the UI to save back to the Admin Settings class and load the value

* impersonation for workflow

With Impersonation, the email address used for $workflowEmailAddress is the SCSM Inbox that receives mail but the account that authenticates to it (e.g. the selected Run as Account) is _not_ the actual AD User tied to the address.

Thus if the workflow is using Impersonation, further define the $exchangeService object with the ImpersonatedUserId.

* logging for Azure (#216)

* azure function logging

introduce logging to azure functionality

* logging property typo

Typo on the source vs. target language

* try/catch for Rule's run as

If a Run as Account has not been selected for use with the Cireson portal, the Workflow Rule fails to correctly build. This ensure that the rule is always created and updated correctly.

* incorrect syntax

Made the mistake of falling back on PowerShell style IF syntax instead of C# IF syntax

* versioning rev

updating to rc1

* technical grammar update

The block of text to the Default Resolution Categories configuration section is misleading/confusing

* more logging opportunities

The New-SMExcoEvent function is being brought to the top of the script so that any future calls to it can be reliably made

* logging function typo

function name was spelled incorrectly

* prepping for final - title bar

Updating versioning to prepare for final v3 release

* prepping for final - pwsh notes

Updating versioning to prepare for final v3 release

* dynamic title bar

Updating the UI's Title bar to be reflective of the installed MP version rather than manually update on subsequent releases

* next build versions

upping next build versions
  • Loading branch information
AdhocAdam committed Nov 26, 2020
1 parent 1ec9a6c commit 10113aa
Show file tree
Hide file tree
Showing 28 changed files with 1,565 additions and 80 deletions.
Binary file added FeatureScreenshots/logging.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added FeatureScreenshots/workflow.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("SMLets.Exchange.Connector.Resources")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("github.com/AdhocAdam/smletsexchangeconnector")]
[assembly: AssemblyProduct("SMLets.Exchange.Connector.Resources")]
[assembly: AssemblyCopyright("Copyright © 2020")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]

// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("5665d929-8a33-4fd0-aaaa-81cd4e02acfb")]

// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("3.0.0.0")]
[assembly: AssemblyFileVersion("3.0.0.28")]
157 changes: 157 additions & 0 deletions ManagementPack/2016/SMLets.Exchange.Connector.Resources/RunScript.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,157 @@
using System;
using System.ComponentModel;
using System.Workflow.ComponentModel;
using Microsoft.EnterpriseManagement;
using Microsoft.EnterpriseManagement.Common;
using Microsoft.EnterpriseManagement.Workflow.Common;
using System.Management.Automation;
using System.Management.Automation.Runspaces;
using System.Collections.ObjectModel;
using System.Text;
using System.IO;

namespace SMLets.Exchange.Connector.Resources
{
public partial class RunScript : WorkflowActivityBase
{
//define the Workflow Parameters coming in from the Management Pack
public static DependencyProperty ExchangeDomainProperty = DependencyProperty.Register("ExchangeDomain", typeof(string), typeof(RunScript));
public static DependencyProperty ExchangeUsernameProperty = DependencyProperty.Register("ExchangeUsername", typeof(string), typeof(RunScript));
public static DependencyProperty ExchangePasswordProperty = DependencyProperty.Register("ExchangePassword", typeof(string), typeof(RunScript));
public static DependencyProperty CiresonPortalDomainProperty = DependencyProperty.Register("CiresonPortalDomain", typeof(string), typeof(RunScript));
public static DependencyProperty CiresonPortalUsernameProperty = DependencyProperty.Register("CiresonPortalUsername", typeof(string), typeof(RunScript));
public static DependencyProperty CiresonPortalPasswordProperty = DependencyProperty.Register("CiresonPortalPassword", typeof(string), typeof(RunScript));

[DescriptionAttribute("The domain of the user")]
[CategoryAttribute("credential")]
[BrowsableAttribute(true)]
[DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility.Visible)]
public string ExchangeDomain
{
get
{
return ((String)(base.GetValue(RunScript.ExchangeDomainProperty)));
}
set
{
base.SetValue(RunScript.ExchangeDomainProperty, value);
}
}

[DescriptionAttribute("The username of the user")]
[CategoryAttribute("credential")]
[BrowsableAttribute(true)]
[DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility.Visible)]
public string ExchangeUsername
{
get
{
return ((String)(base.GetValue(RunScript.ExchangeUsernameProperty)));
}
set
{
base.SetValue(RunScript.ExchangeUsernameProperty, value);
}
}

[DescriptionAttribute("The password of the user")]
[CategoryAttribute("credential")]
[BrowsableAttribute(true)]
[DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility.Visible)]
public string ExchangePassword
{
get
{
return ((String)(base.GetValue(RunScript.ExchangePasswordProperty)));
}
set
{
base.SetValue(RunScript.ExchangePasswordProperty, value);
}
}

[DescriptionAttribute("The domain of the cireson portal user")]
[CategoryAttribute("credential")]
[BrowsableAttribute(true)]
[DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility.Visible)]
public string CiresonPortalDomain
{
get
{
return ((String)(base.GetValue(RunScript.CiresonPortalDomainProperty)));
}
set
{
base.SetValue(RunScript.CiresonPortalDomainProperty, value);
}
}

[DescriptionAttribute("The username of the cireson portal user")]
[CategoryAttribute("credential")]
[BrowsableAttribute(true)]
[DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility.Visible)]
public string CiresonPortalUsername
{
get
{
return ((String)(base.GetValue(RunScript.CiresonPortalUsernameProperty)));
}
set
{
base.SetValue(RunScript.CiresonPortalUsernameProperty, value);
}
}

[DescriptionAttribute("The password of the cireson portal user")]
[CategoryAttribute("credential")]
[BrowsableAttribute(true)]
[DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility.Visible)]
public string CiresonPortalPassword
{
get
{
return ((String)(base.GetValue(RunScript.CiresonPortalPasswordProperty)));
}
set
{
base.SetValue(RunScript.CiresonPortalPasswordProperty, value);
}
}

//execute the Workflow
protected override ActivityExecutionStatus Execute(ActivityExecutionContext SMEXCOContext)
{
//connect to SCSM and get the SMLets Exchange Connector Settings MP
EnterpriseManagementGroup emg = new EnterpriseManagementGroup("localhost");
EnterpriseManagementObject smexcoAdminSettings = emg.EntityObjects.GetObject<EnterpriseManagementObject>(new Guid("a0022e87-75a8-65ee-4581-d923ff06a564"), ObjectQueryOptions.Default);

//Retrieve the SMExco File Path from the Settings class
string smexcoFilePath = smexcoAdminSettings[null, "FilePathSMExcoPS"].Value.ToString();

//load the script into memory
string smletsExchangeConnector;
using (var streamReader = new StreamReader(smexcoFilePath, Encoding.UTF8))
{
smletsExchangeConnector = streamReader.ReadToEnd();
}

// create a Powershell runspace
Runspace runspace = RunspaceFactory.CreateRunspace();
runspace.Open();

// create a pipeline, update variables in PowerShell, then execute it
Pipeline pipeline = runspace.CreatePipeline();
pipeline.Commands.AddScript(smletsExchangeConnector);
pipeline.Runspace.SessionStateProxy.SetVariable("ewsdomain", this.ExchangeDomain);
pipeline.Runspace.SessionStateProxy.SetVariable("ewsusername", this.ExchangeUsername);
pipeline.Runspace.SessionStateProxy.SetVariable("ewspassword", this.ExchangePassword);
pipeline.Runspace.SessionStateProxy.SetVariable("ciresonPortalRunAsUsername", this.CiresonPortalUsername);
pipeline.Runspace.SessionStateProxy.SetVariable("ciresonPortalRunAsPassword", this.CiresonPortalPassword);
Collection<PSObject> results = pipeline.Invoke();
runspace.Close();

//finish
return base.Execute(SMEXCOContext);
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{036EDACC-64E0-4F47-A571-94F133E3C9DB}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>SMLets.Exchange.Connector.Resources</RootNamespace>
<AssemblyName>SMLets.Exchange.Connector.Resources</AssemblyName>
<TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.EnterpriseManagement.Core, Version=7.0.5000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.ServiceManager.WorkflowAuthoring.ActivityLibrary">
<HintPath>..\dependencies\Microsoft.ServiceManager.WorkflowAuthoring.ActivityLibrary.dll</HintPath>
</Reference>
<Reference Include="Microsoft.ServiceManager.WorkflowAuthoring.Common">
<HintPath>..\dependencies\Microsoft.ServiceManager.WorkflowAuthoring.Common.dll</HintPath>
</Reference>
<Reference Include="Microsoft.ServiceManager.WorkflowAuthoring.ComponentModel">
<HintPath>..\dependencies\Microsoft.ServiceManager.WorkflowAuthoring.ComponentModel.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Data" />
<Reference Include="System.Management.Automation, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\dependencies\System.Management.Automation.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Security" />
<Reference Include="System.Workflow.Activities" />
<Reference Include="System.Workflow.ComponentModel" />
<Reference Include="System.Workflow.Runtime" />
<Reference Include="System.WorkflowServices" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="RunScript.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
10 changes: 9 additions & 1 deletion ManagementPack/2016/SMLets.Exchange.Connector.sln
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@


Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.24720.0
Expand All @@ -7,6 +7,8 @@ Project("{D4B43EB3-688B-4EEE-86BD-088F0B28ABB3}") = "SMLets.Exchange.Connector",
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SMLetsExchangeConnectorSettingsUI", "SMLetsExchangeConnectorSettingsUI\SMLetsExchangeConnectorSettingsUI.csproj", "{54FBBB67-B2BA-44E4-AB59-06A7FDEF5CF5}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SMLets.Exchange.Connector.Resources", "SMLets.Exchange.Connector.Resources\SMLets.Exchange.Connector.Resources.csproj", "{036EDACC-64E0-4F47-A571-94F133E3C9DB}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand All @@ -29,6 +31,12 @@ Global
{54FBBB67-B2BA-44E4-AB59-06A7FDEF5CF5}.Release|Any CPU.Build.0 = Release|Any CPU
{54FBBB67-B2BA-44E4-AB59-06A7FDEF5CF5}.Release|x86.ActiveCfg = Release|Any CPU
{54FBBB67-B2BA-44E4-AB59-06A7FDEF5CF5}.Release|x86.Build.0 = Release|Any CPU
{036EDACC-64E0-4F47-A571-94F133E3C9DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{036EDACC-64E0-4F47-A571-94F133E3C9DB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{036EDACC-64E0-4F47-A571-94F133E3C9DB}.Debug|x86.ActiveCfg = Debug|Any CPU
{036EDACC-64E0-4F47-A571-94F133E3C9DB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{036EDACC-64E0-4F47-A571-94F133E3C9DB}.Release|Any CPU.Build.0 = Release|Any CPU
{036EDACC-64E0-4F47-A571-94F133E3C9DB}.Release|x86.ActiveCfg = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<DeploymentNextVersion>2.0.2016.11</DeploymentNextVersion>
<DeploymentNextVersion>3.0.0.28</DeploymentNextVersion>
<DeploymentAutoIncrementVersion>True</DeploymentAutoIncrementVersion>
<DeploymentStartAction>None</DeploymentStartAction>
<DeploymentWebConsoleUrl />
Expand Down
50 changes: 50 additions & 0 deletions ManagementPack/2016/SMLets.Exchange.Connector/Settings.mpx
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,11 @@
Type="bool"
Key="false"
Required="false" />

<Property ID="UseImpersonation"
Type="bool"
Key="false"
Required="false" />

<Property ID="ExchangeAutodiscoverURL"
Type="string"
Expand Down Expand Up @@ -66,6 +71,15 @@
MaxLength="256"
MinLength="0"
Required="false" />

<Property ID="SecureReferenceIdEWS"
Type="string"
AutoIncrement="false"
Key="false"
CaseSensitive="false"
MaxLength="256"
MinLength="0"
Required="false" />

<!--File Paths-->
<Property ID="FilePathEWSDLL"
Expand All @@ -76,6 +90,15 @@
MaxLength="256"
MinLength="0"
Required="false" />

<Property ID="FilePathSMExcoPS"
Type="string"
AutoIncrement="false"
Key="false"
CaseSensitive="false"
MaxLength="400"
MinLength="0"
Required="false" />

<Property ID="FilePathMimeKitDLL"
Type="string"
Expand Down Expand Up @@ -605,6 +628,15 @@
MaxLength="256"
MinLength="0"
Required="false" />

<Property ID="SecureReferenceIdCiresonPortal"
Type="string"
AutoIncrement="false"
Key="false"
CaseSensitive="false"
MaxLength="256"
MinLength="0"
Required="false" />

<!--Announcement Properties-->
<Property ID="EnableAnnouncements"
Expand Down Expand Up @@ -1125,6 +1157,24 @@
MaxLength="256"
MinLength="0"
Required="false" />

<!--Logging-->
<Property ID="LogType"
Type="string"
AutoIncrement="false"
Key="false"
CaseSensitive="false"
MaxLength="256"
MinLength="0"
Required="false" />
<Property ID="LogLevel"
Type="string"
AutoIncrement="false"
Key="false"
CaseSensitive="false"
MaxLength="256"
MinLength="0"
Required="false" />

</ClassType>

Expand Down

0 comments on commit 10113aa

Please sign in to comment.