MilestonePSTools

21.1.452591

Milestone XProtect VMS configuration and automation powered by the Milestone MIP SDK

Minimum PowerShell version

5.1

Installation Options

Copy and Paste the following command to install this package using PowerShellGet More Info

Install-Module -Name MilestonePSTools -RequiredVersion 21.1.452591

Copy and Paste the following command to install this package using Microsoft.PowerShell.PSResourceGet More Info

Install-PSResource -Name MilestonePSTools -Version 21.1.452591

You can deploy this package directly to Azure Automation. Note that deploying packages with dependencies will deploy all the dependencies to Azure Automation. Learn More

Manually download the .nupkg file to your system's default download location. Note that the file won't be unpacked, and won't include any dependencies. Learn More

Owners

Copyright

(c) 2021 Milestone Systems. All rights reserved.

Package Details

Author(s)

  • Joshua Hendricks

Tags

Windows Milestone ConfigApi ConfigurationApi XProtect MIPSDK

Cmdlets

Add-Bookmark Add-DeviceGroup Add-DeviceGroupMember Add-EvidenceLock Add-GenericEvent Add-Hardware 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-EventLine Get-EvidenceLock Get-GenericEvent Get-GenericEventDataSource Get-Hardware Get-HardwareDriver Get-HardwarePassword Get-HardwareSetting Get-IAlarmClient Get-IConfigurationService Get-Input Get-InputSetting Get-IServerCommandService Get-ItemState Get-Kind Get-Log Get-LoginSettings Get-ManagementServer 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-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-WhoIsOnline Invoke-Method Invoke-MipSdkEula New-Alarm New-AlarmCondition New-AlarmOrder Remove-Bookmark Remove-DeviceGroup Remove-EvidenceLock Remove-GenericEvent Remove-Hardware 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-MetadataSetting Set-MicrophoneSetting Set-OutputSetting Set-OverallSecurity Set-SpeakerSetting Set-Stream Start-Export Test-Playback Trace-Events Update-AlarmLine Update-Bookmark Update-EvidenceLock Update-RegisteredService

Functions

Export-HardwareCsv Import-HardwareCsv Get-LicenseDetails Get-LicensedProducts Get-LicenseInfo Get-LicenseOverview Invoke-LicenseActivation Get-MobileServerInfo Remove-MobileServerCertificate Set-MobileServerCertificate Get-CameraRecordingStats Get-CameraReport Get-CameraReportV1 Get-CurrentDeviceStatus Get-VideoDeviceStatistics Add-VmsArchiveStorage Add-VmsStorage Get-VmsArchiveStorage Get-VmsStorage Remove-VmsArchiveStorage Remove-VmsStorage ConvertFrom-GisPoint ConvertFrom-Snapshot Get-BankTable Get-ConfigurationItemProperty Get-StreamProperties Get-ValueDisplayName Install-StableFPS Invoke-ServerConfigurator Resize-Image Select-Camera Select-VideoOSItem Set-ConfigurationItemProperty Get-ManagementServerConfig Get-RecorderConfig

PSEditions

Desktop

Dependencies

Release Notes

## 21.1.452591
* Fix Get-Speaker cmdlet when providing only the device id.
* Allow Get-CameraReport to complete, even if Get-ItemState fails. The results of Get-ItemState are used to determine which servers/devices to avoid executing commands on where the command is likely to timeout so in some cases Get-CameraReport may take longer than normal to complete such as when there are many unreachable devices/servers.
* Changed Select-VideoOSItem window starting location and Z-index.
* Update required MipSdkRedist module version to 21.1.3 which includes a MIP SDK hotfix resolving Get-HardwarePassword errors among others.
* Change behavior when building WCF channels for Get-IConfigurationService, Get-IServerCommandService, and Get-ConfigurationItem for example.
* Re-introduce Get-RecorderConfig and Get-ManagementServerConfig as they're super useful. The old implementation had to be removed in preparation for potentially releasing the source code as a MIP SDK sample.
* Add optional Path parameter for Invoke-ServerConfigurator, that way if for any reason the Get-ManagementServerConfig or Get-RecorderConfig cmdlets fail, you can still call Invoke-ServerConfigurator by passing the path of the CLI tool.

## 21.1.451866
* Added -LiftPrivacyMask switch parameter to Get-Snapshot so now liftable privacy masks can be lifted for snapshots.
* Refactored the way IConfigurationService and IServerCommandService communication channels are established to improve compatibility with both pre & post 2021 R1 products.
* Replaced the Server and Port parameters on Connect-ManagementServer with ServerAddress. The old parameters remain in place for compatibility but if ServerAddress is provided, it will take precedence.
* Improved error handling in Get-CameraReport to provide feedback if data collection fails within the child runspaces where data is collected for camera rows in parallel. Previously you could end up with no data after waiting for the camera report to complete, and there would be no errors to explain why.
* Updated MipSdkRedist dependency to version 21.1.2 which includes a missed MIP SDK reference to VideoOS.Platform.ConfigurationAPI.dll.
* Updated `Connect-ManagementServer -ShowDialog` so that the form should pop-up in the center of the screen where your terminal is, on top of the terminal instead of behind, and with keyboard focus.

### Known Issues
* Get-ConfigurationItem, Get-IConfigurationService, and Get-IServerCommandService will not use the new OAuth-based interface yet even if it's available. Hopefully the next release will default to using the new security model for the WCF client proxies.

## 21.1.451603
* Update MipSdkRedist dependency version to 21.1.1 to ensure it gets updated as it is required to use MIP SDK 2021 R1 in order to successfully connect to any Milestone VMS version.
* Add login dialog option to Connect-ManagementServer using the -ShowDialog switch parameter. If you enable auto-login, you can disable it using the -DisableAutoLogin switch.
* Refactored the project a bit so that the MipSdkRedist dependency is based on the MIP SDK NuGet packages instead of the redistributable MIP SDK contents.

## 21.1.451440
* Handle a new MIP SDK Newtonsoft.Json dependency issue when logging into 2021 R1 or newer.
* Add a -SecureOnly switch on Connect-ManagementServer to support the new MIP SDK feature to use new, more secure interfaces. Maybe this will be a default in the future but for now to avoid a breaking change, it is opt-in.
* Update some internal client-generation code for communicating with services like the IConfigurationService. The change should hopefully be transparent.

## 21.1.451385
* Updated Get-CameraReport to use runspaces for faster processing, and added several new columns of additional information and the ability to include live snapshots in the report
* Updated MIP SDK redistributable reference to 2021 R1 (MipSdkRedist 21.1.0)

## 20.3.450930
* Updated version to reflect major/minor MIP SDK version with the build incrementing independently with each release of MilestonePSTools
* Updated Connect-ManagementServer so that it passes the manufacturer name, and integration name, version and guid to the Management Server during login. This will enable Installed Integration Insights for MilestonePSTools on XProtect VMS versions starting from 2021 R1.

## 1.1.5
* Removed the *-RecorderConfig and *-ManagementServerConfig cmdlets as these had the ability to manipulate the services in ways not prescribed by the MIP SDK. These functions now join the other retired functions in the MilestonePSTools.Extensions module.

## 1.1.4
* Removed several cmdlets which used unsupported methods to access data which is unavailable in MIP SDK. Cmdlets removed: Add-FailoverServer, Get-FailoverServer, Get-FailoverServerGroup, Get-IServerProxyService, Get-PublicViewGroup, Get-VmoClient, Invoke-DiagnosticsTool, New-FailoverServerGroup, New-PublicViewGroup, Remove-FailoverServer, Remove-PublicViewGroup, Set-License, Update-License, Add-RecordingServer.
* Added new license-related cmdlets including Get-LicenseDetails, Get-LicensedProducts, Get-LicenseInfo, Get-LicenseOverview, and Invoke-LicenseActivation. These all make use of Configuration API now instead of the unsupported ServerProxyService channel previously used.
* Several new format definitions have been added to MilestonePSTools.Format.ps1xml including for roles, itemstate, hardwaredrivers, evidence locks, bookmarks, user-defined events, and generic events.
* Fixed a bug in several cmdlets which resulted in no pipeline output if you used `Select-Object -First n` where n represents fewer items than are available. Turns out I needed to re-throw the pipelinestoppedexception.

## 1.1.3
* Add formatters for ManagementServer, RecordingServer, Hardware, Camera, Microphone, Speaker, Metadata, Input, Output, and ConfigurationItem objects

## 1.1.2
* Fix bug in Storage format file where TotalRetention was incorrectly derived
* Add Id column to both Storage and ArchiveStorage format files

## 1.1.1
* Added Get|Add|Remove-VmsStorage and Get|Add|Remove-VmsArchiveStorage to simplify configuring VMS storage
* Added first format specifiers in MilestonePSTools.Format.ps1xml - more to come!
* Fix PipelineStoppedException errors in a couple more cmdlets. The following used to throw exceptions: Get-Something | Select -First 1

## 1.1.0

_Some potentially breaking changes were made in this version so the minor version value has been incremented to reflect that._

### Breaking Changes (depending on your usage)
* Connect-ManagementServer will now through a terminating error if already connected to a Management Server
* Connect-ManagementServer has a -Force switch which will allow you to forcefully close existing connections and connect to the Management Server without error or warning
* Disconnect-ManagementServer no longer throws an error if you're not already connected. It will silently disconnect, or silently return if not connected
* Get-ManagementServer no longer throws a terminating exception, so you can use `Get-ManagementServer -ErrorAction Ignore` to test for null or check which Management Server, if any, you're connected to

### Improvements
* Several Get-* cmdlets no longer throw errors when you pipe to Select-Object -First 1. The PipelineStoppedException is now ignored
* The insensitive term 'Master' has been removed everywhere with the exception of an alias to Select-Site where 'MasterSite' exists as an alias for backward compatibility
* Some internal refactoring has improved the compatibility of MilestonePSTools with runspaces so that you can parallelize operations more easily without having to login inside each runspace/thread.

## 1.0.90
* Mark ProgressRecord objects as complete when progress reaches 100% so that the progress bars don't just stack on top of each other during bulk operations.
* Interpret Server Configurator exit codes on Invoke-ServerConfigurator and properly dispose of the Process object when Server Configurator exits.
* Switch out terminating errors in favor of normal errors in many functions. This way the user can decide how critical a particular error is and handle it without a try/catch block.
* Significantly improve performance of Add-Role on systems with many roles
* Add validation exception error handling to Set-Stream to improve error output.
* Modify Get-Log to catch and ignore PipelineStoppedException while passing any other exceptions to the pipeline as ErrorRecords
* Eliminate error in Get-CameraReport where Get-CameraSetting throws an error on some cameras due to the lack of "General" setting properties

## 1.0.89
* Update Set-ManagementServerConfig to also register the Data Collector server
* Modify Trace-Event so that the MaxInterEventDelay timer is only started after the first event is received.
* Fix bugs in Get-HardwareSetting and Get-CameraSetting where an empty object was returned if no matching setting was found. Now if the setting name has no wildcards and no matching setting is found, an error is returned. If a wildcard is present and no matching setting is found, the command returns nothing so a $null check will be useful. There's more work to do in these device setting cmdlets to tidy up and improve their output.

## 1.0.88
* Update Set-RecorderConfig to synchronize the Authorization Server URI for the Data Collector Server to match the URI used by the Recording Server

## 1.0.87
* Replaced Get-Diagnostics with Invoke-DiagnosticsTool and improved functionality including returning a FileInfo object representing the new ZIP file and only opening explorer.exe to the path if [environment]::UserInteractive is true.
* Update Set-RecorderConfig to also update registration for the Data Collector

FileList

Version History

Version Downloads Last updated
23.3.2 14,353 2/22/2024
23.3.1 24,484 11/18/2023
23.2.3 10,717 10/11/2023
23.2.2 3,428 9/28/2023
23.2.1 10,311 8/17/2023
23.1.3 38,602 4/21/2023
23.1.2 3,325 4/7/2023
23.1.1 3,748 3/28/2023
22.3.1 8,546 2/9/2023
22.3.0 21,057 11/30/2022
22.2.0 28,345 7/23/2022
22.1.0 19,488 4/19/2022
21.2.7 11,343 2/23/2022
21.2.6 2,546 2/9/2022
21.2.5 1,395 1/28/2022
21.2.4 1,321 1/21/2022
21.2.3 20 1/21/2022
21.2.2 13,605 11/4/2021
21.2.1 1,250 10/28/2021
21.2.0 1,141 10/27/2021
21.1.453308 4,496 9/17/2021
21.1.452591 (current version) 4,457 8/18/2021
21.1.451866 3,125 7/19/2021
21.1.451603 771 7/8/2021
21.1.451440 686 7/2/2021
21.1.451385 657 6/29/2021
20.3.450930 1,455 6/10/2021
1.1.5 1,724 6/3/2021
1.1.4 53 5/29/2021
1.1.3 579 5/21/2021
1.1.2 542 5/14/2021
1.1.1 31 5/14/2021
1.1.0 559 5/7/2021
1.0.90 3,300 3/12/2021
1.0.89 4,083 12/11/2020
1.0.88 614 12/7/2020
1.0.87 47 12/7/2020
1.0.86 176 11/24/2020
1.0.85 76 11/18/2020
1.0.84 6,962 11/5/2020
1.0.83 74 10/30/2020
1.0.82 182 10/10/2020
1.0.81 24 9/18/2020
1.0.80 37 9/16/2020
1.0.79 413 8/4/2020
1.0.78 399 6/16/2020
1.0.77 328 5/8/2020
1.0.76 342 4/7/2020
1.0.74 40 4/7/2020
1.0.73 75 3/30/2020
1.0.72 178 3/12/2020
1.0.71 409 1/28/2020
1.0.70 117 1/11/2020
1.0.69 147 12/11/2019
1.0.68 37 12/10/2019
1.0.67 32 12/9/2019
1.0.66 31 12/9/2019
1.0.65 239 11/8/2019
1.0.64 111 11/1/2019
1.0.62 142 10/18/2019
1.0.61 47 10/17/2019
1.0.60 108 10/8/2019
1.0.58 75 10/1/2019
1.0.57 35 10/1/2019
1.0.56 90 9/27/2019
1.0.55 350 8/15/2019
1.0.54 41 8/13/2019
1.0.53 29 8/13/2019
1.0.51 133 7/28/2019
1.0.50 29 7/27/2019
1.0.49 31 7/27/2019
1.0.48 38 7/25/2019
1.0.47 51 7/20/2019
1.0.46 43 7/19/2019
1.0.45 32 7/19/2019
1.0.44 57 7/9/2019
1.0.43 32 7/8/2019
1.0.42 52 7/1/2019
1.0.41 89 6/18/2019
1.0.40 80 6/11/2019
1.0.39 48 6/10/2019
1.0.38 31 6/8/2019
1.0.37 40 6/6/2019
1.0.36 32 6/5/2019
1.0.35 35 6/4/2019
1.0.34 42 5/28/2019
1.0.33 58 5/16/2019
1.0.32 31 5/16/2019
1.0.31 31 5/16/2019
1.0.30 47 5/13/2019
1.0.29 41 5/9/2019
1.0.28 34 5/9/2019
1.0.27 35 5/8/2019
1.0.26 31 5/8/2019
1.0.25 34 5/8/2019
1.0.24 35 5/4/2019
1.0.23 29 5/3/2019
1.0.22 34 5/1/2019
1.0.21 38 5/1/2019
1.0.20 37 4/30/2019
1.0.19 30 4/30/2019
1.0.18 30 4/30/2019
1.0.17 40 4/27/2019
1.0.16 32 4/26/2019
1.0.15 30 4/26/2019
1.0.14 30 4/25/2019
1.0.13 31 4/25/2019
1.0.12 31 4/23/2019
1.0.11 36 4/19/2019
1.0.10 33 4/18/2019
1.0.9 33 4/18/2019
1.0.8 33 4/17/2019
1.0.7 29 4/16/2019
1.0.6 75 4/15/2019
Show less