Skip to content

Device Management

Get Devices Using Filtering

Terminal window
# Get all devices with "prod" in the name
Get-LMDevice -Filter "displayName -contains 'prod'"
# Get devices that haven't reported in 30 days
Get-LMDevice -Filter "lastDataTime -lt '$((Get-Date).AddDays(-30))'"
# Get devices with specific property value
Get-LMDevice -Filter 'customProperties -eq "{\"name\":\"environment\",\"value\":\"production\"}"'
# Get devices with multiple conditions
Get-LMDevice -Filter "displayName -contains 'web' -and disableAlerting -eq '$true'"

Create New Devices in Bulk

Terminal window
# Define your devices and properties
$devices = @(
"server1.example.com",
"server2.example.com",
"server3.example.com"
)
$properties = @{
"environment" = "production"
"location" = "us-east"
"team" = "platform"
}
# Get collector ID for assignment
$collector = (Get-LMCollector -Name "MyCollector").id
# Create devices in bulk
foreach ($device in $devices) {
try {
New-LMDevice -Name $device `
-DisplayName $device `
-Properties $properties `
-PreferredCollectorId $collector `
-ErrorAction Stop
Write-Host "Successfully created device: $device"
}
catch {
Write-Error "Failed to create device $device : $_"
}
}

Update Devices in Bulk

Terminal window
# Update properties for all production web servers
$filter = 'displayName -contains "web" -and customProperties -eq "{\"name\":\"environment\",\"value\":\"production\"}"'
# Get matching devices
$devices = Get-LMDevice -Filter $filter
# Define new properties to update/add
$newProperties = @{
"patch_window" = "sunday-2am"
"backup_enabled" = "true"
}
# Update each device
foreach ($device in $devices) {
try {
Set-LMDevice -Id $device.id `
-Properties $newProperties `
-ErrorAction Stop
Write-Host "Successfully updated device: $($device.displayName)"
}
catch {
Write-Error "Failed to update device $($device.displayName): $_"
}
}

Remove Devices in Bulk

Terminal window
# Remove devices that are reporting as dead
$deadDevices = Get-LMDevice -Filter 'hostStatus -eq "dead"'
# Create backup of device information before removal
$timestamp = Get-Date -Format "yyyyMMdd_HHmmss"
$deadDevices | ConvertTo-Json | Out-File "stale_devices_backup_$timestamp.json"
# Remove devices
foreach ($device in $deadDevices) {
try {
Remove-LMDevice -Id $device.id `
-HardDelete $false `
-ErrorAction Stop
Write-Host "Successfully removed device: $($device.displayName)"
}
catch {
Write-Error "Failed to remove device $($device.displayName): $_"
}
}