MilestonePSTools.psd1

#
# Module manifest for module 'MilestonePSTools'
#
# Generated by: Joshua Hendricks
#
# Generated on: 11/24/2020
#

@{

# Script module or binary module file associated with this manifest.
RootModule = 'MilestonePSTools.psm1'

# Version number of this module.
ModuleVersion = '1.0.86'

# Supported PSEditions
CompatiblePSEditions = 'Desktop'

# ID used to uniquely identify this module
GUID = '46909c4a-d5d8-4faf-830d-5a0df564fe7b'

# Author of this module
Author = 'Joshua Hendricks'

# Company or vendor of this module
CompanyName = 'Milestone Systems'

# Copyright statement for this module
Copyright = '(c) 2020 Milestone Systems. All rights reserved.'

# Description of the functionality provided by this module
Description = 'Milestone XProtect VMS configuration and automation powered by the Milestone MIP SDK'

# Minimum version of the Windows PowerShell engine required by this module
PowerShellVersion = '5.1'

# Name of the Windows PowerShell host required by this module
# PowerShellHostName = ''

# Minimum version of the Windows PowerShell host required by this module
# PowerShellHostVersion = ''

# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only.
DotNetFrameworkVersion = '4.7'

# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only.
# CLRVersion = ''

# Processor architecture (None, X86, Amd64) required by this module
ProcessorArchitecture = 'Amd64'

# Modules that must be imported into the global environment prior to importing this module
RequiredModules = @(@{ModuleName = 'MipSdkRedist'; ModuleVersion = '20.3.0'; })

# Assemblies that must be loaded prior to importing this module
# RequiredAssemblies = @()

# Script files (.ps1) that are run in the caller's environment prior to importing this module.
# ScriptsToProcess = @()

# Type files (.ps1xml) to be loaded when importing this module
# TypesToProcess = @()

# Format files (.ps1xml) to be loaded when importing this module
# FormatsToProcess = @()

# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess
# NestedModules = @()

# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export.
FunctionsToExport = 'Export-HardwareCsv', 'Import-HardwareCsv', 'Get-MobileServerInfo', 
               'Remove-MobileServerCertificate', 'Set-MobileServerCertificate', 
               'Get-CameraReport', 'Get-BankTable', 'Get-ConfigurationItemProperty', 
               'Install-StableFPS', 'Invoke-ServerConfigurator', 'Select-Camera', 
               'Select-VideoOSItem', 'Set-ConfigurationItemProperty'

# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export.
CmdletsToExport = 'Add-Bookmark', 'Add-DeviceGroup', 'Add-DeviceGroupMember', 
               'Add-EvidenceLock', 'Add-FailoverServer', 'Add-GenericEvent', 
               'Add-Hardware', 'Add-RecordingServer', 'Add-RegisteredService', 
               'Add-Role', 'Add-Stream', 'Add-User', 'Add-UserDefinedEvent', 
               'Connect-ManagementServer', 'Copy-EvidenceLock', 
               'Disconnect-ManagementServer', 'Get-AlarmDefinition', 'Get-AlarmLine', 
               'Get-AlarmStatistics', 'Get-Bookmark', 'Get-Camera', 
               'Get-CameraSetting', 'Get-ConfigurationItem', 'Get-ConnectionString', 
               'Get-DeviceAcl', 'Get-DeviceGroup', 'Get-Diagnostics', 'Get-EventLine', 
               'Get-EvidenceLock', 'Get-FailoverServer', 'Get-FailoverServerGroup', 
               'Get-GenericEvent', 'Get-GenericEventDataSource', 'Get-Hardware', 
               'Get-HardwareDriver', 'Get-HardwarePassword', 'Get-HardwareSetting', 
               'Get-IAlarmClient', 'Get-IConfigurationService', 'Get-Input', 
               'Get-InputSetting', 'Get-IServerCommandService', 
               'Get-IServerProxyService', 'Get-ItemState', 'Get-Kind', 
               'Get-LicenseDetails', 'Get-Log', 'Get-LoginSettings', 
               'Get-ManagementServer', 'Get-ManagementServerConfig', 'Get-Metadata', 
               'Get-MetadataSetting', 'Get-MethodInfo', 'Get-Microphone', 
               'Get-MicrophoneSetting', 'Get-MipMessageIdList', 'Get-MipSdkEula', 
               'Get-Output', 'Get-OutputSetting', 'Get-OverallSecurity', 
               'Get-PlatformItem', 'Get-PlaybackInfo', 'Get-PublicViewGroup', 
               'Get-RecorderConfig', 'Get-RecorderStatusService2', 
               'Get-RecordingServer', 'Get-RegisteredService', 'Get-Role', 
               'Get-SequenceData', 'Get-Site', 'Get-Snapshot', 'Get-Speaker', 
               'Get-SpeakerSetting', 'Get-Stream', 'Get-Token', 'Get-Translations', 
               'Get-User', 'Get-UserDefinedEvent', 'Get-VideoSource', 'Get-VmoClient', 
               'Get-WhoIsOnline', 'Invoke-Method', 'Invoke-MipSdkEula', 'New-Alarm', 
               'New-AlarmCondition', 'New-AlarmOrder', 'New-FailoverServerGroup', 
               'New-PublicViewGroup', 'Remove-Bookmark', 'Remove-DeviceGroup', 
               'Remove-EvidenceLock', 'Remove-FailoverServer', 'Remove-GenericEvent', 
               'Remove-Hardware', 'Remove-PublicViewGroup', 
               'Remove-RegisteredService', 'Remove-Role', 'Remove-Stream', 
               'Remove-User', 'Remove-UserDefinedEvent', 'Select-Site', 'Send-Alarm', 
               'Send-GenericEvent', 'Send-MipMessage', 'Send-UserDefinedEvent', 
               'Set-CameraSetting', 'Set-ConfigurationItem', 'Set-DeviceAcl', 
               'Set-HardwarePassword', 'Set-HardwareSetting', 'Set-InputSetting', 
               'Set-License', 'Set-ManagementServerConfig', 'Set-MetadataSetting', 
               'Set-MicrophoneSetting', 'Set-OutputSetting', 'Set-OverallSecurity', 
               'Set-RecorderConfig', 'Set-SpeakerSetting', 'Set-Stream', 
               'Start-Export', 'Test-Playback', 'Trace-Events', 'Update-AlarmLine', 
               'Update-Bookmark', 'Update-EvidenceLock', 'Update-License', 
               'Update-RegisteredService'

# Variables to export from this module
# VariablesToExport = @()

# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export.
AliasesToExport = @()

# DSC resources to export from this module
# DscResourcesToExport = @()

# List of all modules packaged with this module
# ModuleList = @()

# List of all files packaged with this module
FileList = '.\eula.rtf', '.\MilestonePSTools.psm1', '.\bin\DiagnosticsTool.exe', 
               '.\lib\MilestoneLib.dll', '.\lib\MilestonePSTools.dll', 
               '.\lib\MilestonePSTools.dll-Help.xml', 
               '.\Private\Copy-ConfigurationItem.ps1', 
               '.\Private\Get-HttpSslCertThumbprint.ps1', 
               '.\Private\Get-ProcessOutput.ps1', 
               '.\Private\GetCodecValueFromStream.ps1', 
               '.\Private\GetFpsValueFromStream.ps1', 
               '.\Private\GetResolutionValueFromStream.ps1', 
               '.\Public\ImportExport\Export-HardwareCsv.ps1', 
               '.\Public\ImportExport\Import-HardwareCsv.ps1', 
               '.\Public\MobileServer\Get-MobileServerInfo.ps1', 
               '.\Public\MobileServer\Remove-MobileServerCertificate.ps1', 
               '.\Public\MobileServer\Set-MobileServerCertificate.ps1', 
               '.\Public\Reports\Get-CameraReport.ps1', 
               '.\Public\Tools\Get-BankTable.ps1', 
               '.\Public\Tools\Get-ConfigurationItemProperty.ps1', 
               '.\Public\Tools\Install-StableFPS.ps1', 
               '.\Public\Tools\Invoke-ServerConfigurator.ps1', 
               '.\Public\Tools\Select-Camera.ps1', 
               '.\Public\Tools\Select-VideoOSItem.ps1', 
               '.\Public\Tools\Set-ConfigurationItemProperty.ps1'

# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell.
PrivateData = @{

    PSData = @{

        # Tags applied to this module. These help with module discovery in online galleries.
        Tags = 'PSEdition_Desktop', 'Windows', 'Milestone', 'ConfigApi', 
               'ConfigurationApi', 'XProtect', 'MIPSDK'

        # A URL to the license for this module.
        # LicenseUri = ''

        # A URL to the main website for this project.
        ProjectUri = 'https://doc.developer.milestonesys.com/html/index.html'

        # A URL to an icon representing this module.
        IconUri = 'http://download.milestonesys.com/tools/MilestonePSTools/MilestoneLogo.png'

        # ReleaseNotes of this module
        ReleaseNotes = '## 1.0.86
* Add Invoke-ServerConfigurator to assist with automating server registration and enabling/disabling encryption for versions 2020 R3 and later.
 
## 1.0.85
* Upgrade to use MIP SDK 2020 R3
* Add StorageRetentionMinutes column to Get-CameraReport and if -IncludePlaybackInfo is used, a column named MeetsRetentionPolicy will be added with a boolean value indicating whether the oldest image is at least as old as the retention policy for the camera''s storage configuration.
* Remove the empty parameter set validation on Trace-Event''s EventHeaderMessage parameter. Previously it did not accept any value except an empty string due to accidental copy/paste.
 
## 1.0.84
* Update Trace-Events to support EventHeaderType and EventHeaderMessage parameters for better filtering of NewEventIndication messages.
* Fix hardware/device property key parsing issue where the previous regex did not anticipate special characters like - and + in device property names.
* Fix case sensitivity bug where Get-BankTable failed to return folders/tables where the ID in the name did not exactly match the supplied device id GUID.
 
## 1.0.83
* Updated Trace-Events to include stop conditions: MaxEvents, Timeout, MaxInterEventDelay
* Updated Trace-Events so Raw output is wrapped in a container which includes the timestamp representing the time the event was received from the Event Server. This can be useful to determine whether a delay is between you and the Event Server or the cmdlet and your pipeline.
* Added help info to the Trace-Events cmdlet
* Fixed a bug with Set-RecorderConfig so we handle when the ClientId guid is empty in RecorderConfig.xml. This can happen if you installed Recording Server without a connection to the Management Server and you have not yet registered the server.
 
## 1.0.82
* Minor update to remove upper limit on compatible product versions for Set-RecorderConfig and Set-ManagementServerConfig commands.
 
## 1.0.81
* Added a suite of new cmdlets for working with Alarms and Events. Get-AlarmLines can be used to retrieve existing alarms with an optional conditional filter. New-Alarm and Send-Alarm can be used to generate new alarms. Update-AlarmLine can be used to change properties or add comments to existing alarms. Get-EventLines can be used to retrieve event records.
 
## 1.0.80
* Improve the way local DateTime values are interpreted in the following cmdlets: Get-Snapshot, Get-Log, Get-Bookmark, Add-Bookmark, Add-EvidenceLock, Start-Export and Test-Playback. Previously a non-utc DateTime value was converted to UTC incorrectly which yielded unexpected results.
* Fix Add-EvidenceLock bug where evidence locks are created with an incorrect RetentionOption.RetentionUnits value. A value of -1 is expected for Indefinite and User-defined retention options and a value of 0 was used previously. This resulted in the warning message ''The expiry option originally selected for this lock is not available anymore'' to be displayed when the evidence lock details were displayed in Smart Client.''
* Removed LocalTimestamp switch parameter from Test-Playback to simplify the parameter set as a part of the improvements to DateTime local/utc timestamp handling
* Using Remove-EvidenceLock now requires you to add a -Force switch parameter. Omitting this switch will result in an InvalidOperationException error.
* Using Remove-Hardware without the -Force switch parameter now results in an InvalidOperationException error. Previously only a warning was thrown, and an error is more in line with other cmdlets such as ConvertTo-SecureString for example.
* Added Write-Progress to the Get-Snapshot cmdlet to provide visual progress reporting for long image sequence retrievals.
* Fixed bug with Get-CameraSetting where one or more null values could be written to the pipeline instead of returning nothing. Also will now throw an error when a named setting key could not be found.
* Added Reference parameter to Add-Bookmark to support user-supplied Bookmark IDs. Omitting this parameter will result the same behavior as prior versions where an autogenerated id like ''no.012345'' is used.
* Added SkipConfiguration switch to Add-Hardware which, when supplied, will mean Add-Hardware completes faster on devices with many channels. This is useful if you already plan to iterate through and configure all the channels anyway.
* Added Raw switch to Trace-Events so that the original object is written to the pipeline instead of a pscustomobject derived from the event. This makes it possible to extract more detail, for example from analytic events.
* Add-Hardware parameter ''GroupPath'' is now optional, with a default value of ''/New Cameras/''
* Added Get and Set-ConfigurationItemProperty cmdlets to simplify the retrieval and modification of properties based on a key name. Previously you had to find the property yourself using a Where-Object. The new cmdlets makes this more concise.
* Experimental: Added Get and Set-ManagementServerConfig. Similar to Set-RecorderConfig, the Set-ManagementServerConfig cmdlet can help with automating Management Server registration with the authorization or IDP server. Note that these cmdlets are somewhat experimental and not supported by MIP SDK.
 
## 1.0.79
* Update Get-ConfigurationItem to allow user to provide a path without the Path parameter name
* Update Set-MobileServerCertificate to eliminate the use of netsh http update sslcert since the update command is not present on all Windows installations
* Modify behavior of Get-Bookmark to improve ease of use. Bookmarks will now be enumerated from StartTime to EndTime instead of requiring the user to determine whether there are more results available.
* Breaking change to Get-SequenceData to improve ease of use. The cmdlet''s parameter signature and behavior is now similar to the new Get-Bookmark cmdlet such that you can specify the StartTime and EndTime and regardless of the number of results, all results will be returned - even if it exceeds the PageSize.
* Add CropToTimeSpan switch to Get-SequenceData so that you don''t have to manually check the start or end times of the sequences in your results if you''re only interested in a specific period of time.
* Fix IncludePlaybackInfo behavior on Get-CameraReport to ensure the associated columns are added to every row, even if the camera is unreachable or there are no recordings. Previously if one or more cameras lacked playback info data, Out-GridView would not show the columns at all because the property was not present in all rows of data.
 
## 1.0.78
 
* Update MipSdkRedist reference to 2020 R2 (20.2)
* Remove Initialize-RecordingServer cmdlet as it was obsoleted in MIP SDK 2020 R2
* Replace incorrect examples in Select-Camera and Select-VideoOSItem
* Minor change to Select-Camera and Select-VideoOSItem to remove the -NoEnumerate parameter from the Write-Object calls
 
## 1.0.77
 
* Minor change to Get-RecordingServer and Get-Hardware to access the /RecordingServerFolder object directly instead of getting the ManagementServer object and accessing the .RecordingServerFolder property.
* Add IncludeNetworkState to Get-CameraReport to optionally test whether devices are reachable using Test-NetConnection using the host and port from the hardware address.
* Fix Get-User bug where filtering with UserName parameter doesn''t work unless you also provide a RoleName parameter.
* Add Select-Camera and the more generic Select-VideoOSItem cmdlets which launch a user interface for selecting one or more items from the VMS.
 
## 1.0.76
 
* Fix bug in Send-MipMessage where an exception was thrown unless -UseEnvironmentManager switch was present
 
## 1.0.75
 
* Add Get-MipMessageIdList to retrieve a list of known MessageId''s
* Add Send-MipMessage to provide easy access to low level MIP SDK messaging functionality
 
## 1.0.74
 
* Add Get-WhoIsOnline
 
## 1.0.73
 
* Update DiagnosticsTool to 2020 R1 for Get-Diagnostics cmdlet
* Add EndTime and Interval parameters to Get-Snapshot for an easy to way to retrieve a series of jpegs between -Timestamp and -EndTime values
* Fix an invalid cast in Add-DeviceGroupMember when DeviceCategory is Output ([Issue 3](https://github.com/MilestoneSystemsInc/PowerShellSamples/issues/3))
 
## 1.0.72
 
* Require MipSdkRedist version 20.1.0
* Update FQID parameter of Get-PlatformItem to take FQID from pipeline by property name for better use in the pipeline after Get-ItemState
* Update documentation for Get-Bookmark where Timestamp was used instead of StartTime as a parameter name
* Update Autofac reference to 4.9.4.0 to match the version included in MIP SDK 2020 R1
* Fix Set-Stream to allow easier modification of Name, LiveMode and StreamReferenceId properties via parameters
 
## 1.0.71
 
* Expand capabilities of Get-PlatformItem to enable retrieving some or all items from the configuration.
* Add MessageId to Trace-Events output for easier identification of the source event MessageId
'


    } # End of PSData hashtable

} # End of PrivateData hashtable

# HelpInfo URI of this module
# HelpInfoURI = ''

# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix.
# DefaultCommandPrefix = ''

}