public/Get-UnraidArray.ps1
|
function Get-UnraidArray { <# .SYNOPSIS Gets array status and disk information. .PARAMETER Session Unraid session to use (defaults to the current session). .OUTPUTS UnraidArray. Object with array state, capacity, parity info, and disk details. .EXAMPLE Get-UnraidArray View array status and disk usage. #> [CmdletBinding()] [OutputType("UnraidArray")] param( [Parameter()] [UnraidSession]$Session = $script:DefaultUnraidSession ) process { $gqlQuery = @" query ArrayStatus { array { state capacity { kilobytes { total used free } disks { total used free } } parityCheckStatus { status progress speed errors correcting date duration } boot { device size status } disks { name device size fsType fsUsed fsFree temp status numErrors numReads numWrites rotational exportable transport } parities { name device size status temp numErrors numReads numWrites exportable transport } caches { name device size fsUsed fsFree temp status numErrors rotational numReads numWrites exportable transport } } } "@ $result = Invoke-UnraidQuery -Query $gqlQuery -Session $Session if ($result.array) { return [UnraidArray]::new($result.array) } } } |