ChangeLog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
Versioning is based on the first two parts of Milestone's latest MIP SDK version (major and minor) with a build number incrementing from 0 for each new module update made between official Milestone MIP SDK releases.
[21.2.8] unreleased
[21.2.7] 2022-02-23
Fixed
- Fixed an issue with
Get-RecorderStatusService2
throwing a null reference exception when attempting to get a status service instance for a Recording Server when that recording server, for some reason, has a null FQID.ServerId.Uri value. Now a regular error should be returned viaWrite-Error
. - Fixed an error in
Get-VmsCameraReport
where cameras without multi-stream support would result in errors being passed to the pipeline. - Fixed an error in
Get-VmsCameraReport
where recording servers without cameras could cause an error when using the-IncludeRetentionInfo
switch.
Added
- Several cmdlets for working with ViewGroup and View objects, including cmdlets for copying, exporting, and importing ViewGroups, and modifying permissions.
- Clear-VmsView
- Copy-VmsView
- Copy-VmsViewGroup
- Export-VmsViewGroup
- Get-VmsView
- Get-VmsViewGroup
- Get-VmsViewGroupAcl
- Import-VmsViewGroup
- New-VmsView
- New-VmsViewGroup
- Remove-VmsView
- Remove-VmsViewGroup
- Set-VmsView
- Set-VmsViewGroup
- Set-VmsViewGroupAcl
Changed
- Replaced all internal references to
Get-ManagementServer
withGet-VmsManagementServer
to eliminate deprecation warning messages when running built-in cmdlets.
[21.2.6] 2022-02-08
Added
Clear-VmsCache
can be used to clear the child items from the cached ManagementServer object (see the caching reference in changes below). This will also dispose of cached WCF proxy clients generated byGet-IServerCommandService
andGet-IConfigurationService
. Previously, you would useGet-Site | Select-Site
or reconnect to the Management Server to clear those cached proxy clients.
Fixed
- Fixed an issue where functions were not correctly exported and made available to users of some OS's like Server 2012 R2.
ConvertTo-GisPoint
was, in some cases, outputing "POINT (0 0)" instead of the given coordinates. This behavior is fixed, and the cmdlet has been improved with support for altitude/elevation.Start-VmsHardwareScan
produced an empty[VmsHardwareScanResult]
even when the scan returned no entries. Now, when the request for a scan returns an error, no results will be returned and aWrite-Error
will show the error returned by the VMS.
Changed
- Updated
Get-Log
- Renamed to
Get-VmsLog
and added alias for old name,Get-Log
- Implemented a "windowing" strategy to improve performance when reading logs for a broad time period. In testing, a 24-hour audit log request completed three times faster using the new cmdlet.
- Renamed to
- Caching: Added caching of the current site's ManagementServer configuration api object. All cmdlets that previously instantiated a new ManagementServer object when needed have been updated to use the cached reference, which in turn caches child items when they are accessed through it. This dramatically improves the performance when multiple enumerates of configuration items are performed during the same PowerShell session. For example, accessing general settings for all cameras on a test system took 29 seconds the first time. Subsequent requests took 0.15 seconds.
[21.2.5] 2022-01-27
Added
Get-VmsDeviceStatus
offers very fast streaming device status information through the use of the MIP SDK RecorderStatusService2 API and the GetCurrentDeviceStatus method.
[21.2.4] 2022-01-20
Fixed
Get-VmsCameraGeneralSetting
was returning an unexpected$null
value that was missed during a refactoring.
[21.2.3] 2022-01-20
Added
- Spanish language translations.
Get-VmsCamera
replacedGet-Camera
and adds the ability to search by name.Set-VmsCamera
adds an easy method of changing all properties directly attached to camera objects.Get-VmsCameraGeneralSetting
adds a quick and easy way to access general settings and defaults to "display values" instead of "raw values".Set-VmsCameraGeneralSetting
adds an easy way to change several general settings at once.Get-VmsCameraStream
adds a much easier way to retrieve stream properties including how they're used (live, recording), and the associated settings like FPS, Resolution, and Codec.Set-VmsCameraStream
is a simple cmdlet for adding new streams and configuring properties of streams like FPS, Resolution, Codec, and multi-stream properties like LiveMode and stream display name.
Changed
- MilestonePSTools is now signed with the Milestone code signing certificate.
Get-Camera
is now aliased toGet-VmsCamera
.
Deprecated
Get-Camera
is deprecated in favor ofGet-VmsCamera
.Get-CameraSetting
is deprecated in favor ofGet-VmsCameraGeneralSetting
andGet-VmsCameraStream
.Set-CameraSetting
is deprecated in favor ofSet-VmsCameraGeneralSetting
andSet-VmsCameraStream
.Get-Stream
is deprecated in favor ofGet-VmsCameraStream
.Set-Stream
is deprecated in favor ofSet-VmsCameraStream
.
[21.2.2] 2021-11-04
Added
Add-VmsFailoverGroup
,Get-VmsFailoverGroup
, andRemove-VmsFailoverGroup
which is supported for XProtect Expert and XProtect Corporate 2021 R2 and newer.
Fixed
Get-VmsCameraReport
failed with the errorException calling "FillChildren" with "2" argument(s): "VMS64001: The feature is not licensed."
on XProtect Essential+ due to an attempt to use the "FillChildren" method to pre-populate the configuration hierarchy with a variety of ItemType's including PrivacyProtection and PrivacyProtectionFolder items which are only present from XProtect Express+ and above.
[21.2.1] 2021-10-28
Fixed
Get-VmsCameraReport
failed to produce a report if communication with the recording server(s) failed. Now the communication error will be returned and the report will be produced with some missing information.Get-RecorderStatusService2
always used theWebServerUri
or "local web server address" to try to reach the recording server status service. Now the Milestone internal FQID will be looked up in[VideoOS.Platform.Configuration]::Instance
, and the FQID.ServerId.Uri value will be used to instantiate the[VideoOS.Platform.SDK.Proxy.Status2.RecorderStatusService2]
client. This should ensure that the status client can be used while on a local network or when connecting over the internet, or through a NAT/PAT firewall.
[21.2.0] 2021-10-27
Added
- Support for
Get-Help -Online
- Get-VmsCameraReport as a faster, more reliable replacement for Get-CameraReport.
- License management functions have been added which make use of Configuration API features introduced in 2020 R2.
- Import-VmsLicense for importing initial, or manually-activated license files downloaded from My Milestone.
- Export-VmsLicenseRequest for exporting license request files for manual activation on My Milestone.
- Set-VmsLicense for changing the software license code by importing a different license file.
- Invoke-VmsLicenseActivation for initiating an online activation with the option to enable auto-activation.
- Start-VmsHardwareScan can be used to perform express, or manual hardware scans to discover cameras and which drivers to use with them.
- Add-VmsHardware as a replacement for the original Add-Hardware cmdlet.
- Import-VmsHardware as a replacement for Import-HardwareCsv (shallow support of device settings only)
- Export-VmsHardware as a replacement for Export-HardwareCsv (shallow support of device settings only)
- Wait-VmsTask is useful for monitoring long-running operations. You can use it with most Configuration API method calls and it will return when the server-side task completes.
Changed
- Updated MipSdkRedist dependency to MipSdkredist 21.2.0 based on MIP SDK 2021 R2.
- Improved Get-PlaybackInfo performance by switching from RawDataSource to SequenceDataSource.
- Changed Find-XProtectDevice -ShowDialog UI to filter out all non-string property names in the advanced section.
- Updated Set-CertKeyPermission private function to improve reliability and support ECC certificates. This function is used with Set-XProtectCertificate.
- Added documentation for previously undocumented commands.
- Experimental: Introduced the concept of "proxy client pools" so that two of each proxy client type can be created instead of one. This may help when using runspaces for parallelization but testing has not proven this out yet.
- To try using more than one proxy client for Configuration API and other WCF channels, add the environment variable MILESTONEPSTOOLS_PROXYCOUNT with an integer value.
- Added ActivationAutomatic column to LicenseInformation formatter - it's useful information to see in the output of Invoke-VmsLicenseActivation, Import-VmsLicense, and Set-VmsLicense.
- Updated Remove-Hardware to support -WhatIf, and set ConfirmImpact to "High".
The -Force switch no longer exists as we are relying on the more idiomatic
ConfirmImpact feature to stand in the way of potential accidental usage. This
is a breaking change considering the -Force switch will now cause an error,
and we no longer accept the Hardware object by ID. To remove hardware in bulk
such as you might do in a test environment, you can add
-Confirm:$false
and you should not be required to acknowledge any removal operations.
Fixed
- Added error handling for Configuration API cmdlets Get-ConfigurationItem, Set-ConfigurationItem, Invoke-Method, and Get-Translations so that if the Configuration API proxy client has faulted, due to an idle timeout for example, the proxy client pool is cleared and new communication channels are established.
Removed
- Get-CameraReportV1 - use Get-VmsCameraReport
Deprecated
- Get-CameraReport in favor of Get-VmsCameraReport
- Add-Hardware in favor of Add-VmsHardware
- Export-HardwareCsv in favor of Export-VmsHardware
- Import-HardwareCsv in favor of Import-VmsHardware