Device Management
Get Devices Using Filtering
# Get all devices with "prod" in the nameGet-LMDevice -Filter "displayName -contains 'prod'"
# Get devices that haven't reported in 30 daysGet-LMDevice -Filter "lastDataTime -lt '$((Get-Date).AddDays(-30))'"
# Get devices with specific property valueGet-LMDevice -Filter 'customProperties -eq "{\"name\":\"environment\",\"value\":\"production\"}"'
# Get devices with multiple conditionsGet-LMDevice -Filter "displayName -contains 'web' -and disableAlerting -eq '$true'"
Create New Devices in Bulk
# 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 bulkforeach ($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
# 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 deviceforeach ($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
# 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 devicesforeach ($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): $_" }}