See https://www.cyberdrain.com/automating-with-powershell-automating-warranty-information-reporting/ for more information.
This is a PowerShell module that helps you get warranty information for items in your CMDB, PSA, or RMM. This module was made due to some shady businesses going on in the world of Warranty reporting and lookups, and to democtratize the warranty lookups. :)
Based on work of @github/KelvinTegelaar
This module has NOT been published to the PowerShell Gallery. Please download all files and run it locally until (or if) it get's published to PowerShell Gallery
The following platforms are supported. You can also use a CSV file as a source to generate reports. This won't sync back to the source though. Some APIs don't allow write-back, so those are only available to create reports.
An unchecked box means development for this is underway
- Autotask
- Connectwise Manage
- IT-Glue
- Hudu
- Solarwinds N-Able (Reporting only)
- Solarwinds RMM
- NinjaRMM (Reporting only)
- SyncroRMM
- DattoRMM
- Connectwise Automate
- BluetraitIO
- Dell (Requires API key)
- Microsoft (currently is broken and working on fix)
- HP (Spotty API. New one coming soon.)
- Lenovo
- Apple (Estimated dates)
Due to a change in how Apple generates serial numbers it is no longer possible to accurately determine the warranty expiry for newer devices. As such any new Apple devices could return a completely inaccurate expiry date. To account for this you can add the -ExcludeApple switch to the the Update-Warrantyinfo.ps1 script to skip updating any apple devices and ensure you do not update with inaccurate data.
Create 2 custom asset text fields for purchase and expiration date in Syncro.
To execute an update of all devices in SyncroMSP use (or create new file in the same directory as PSWarranty.psm1):
Import-Module .\PSWarranty.psm1 -Force -WarningAction SilentlyContinue
$SyncroSubDomain = "yoursubdomain"
$SyncroAPIKey = "your API key with rights to access and modify assests"
$SyncroStartDateField = "Purchase Date"
$SyncroEndDateField = "Warranty Expiration"
update-warrantyinfo -Syncro -SyncroSubdomain $SyncroSubDomain -SyncroAPIKey $SyncroAPIKey -SyncroStartDateField $SyncroStartDateField -SyncroEndDateField $SyncroEndDateField -MissingOnly
There is a way to run it within Syncro scripts but this method is faster and does not require running seperate script on onboarding. If Syncro finanlly gets done with cascading polices - I will look into it. As of right now, just run it as seperate script.
Feel free to send pull requests or fill out issues when you encounter them. I'm also completely open to adding direct maintainers/contributors and working together! :) I'd love if we could make this into a huge help for our entire community.
Version 1.5.3 includes all things I required for myself, if you need a feature, shoot me a feature request :)