Private/Get-PatClientIdentifier.ps1
|
function Get-PatClientIdentifier { <# .SYNOPSIS Retrieves or generates a unique client identifier for Plex API authentication. .DESCRIPTION Returns a persistent unique identifier used in Plex API requests to identify this device/application. The identifier is generated once and stored in the configuration file for reuse across sessions. .OUTPUTS System.String Returns a GUID-based client identifier #> [CmdletBinding()] param () try { $configuration = Get-PatServerConfiguration # Check if clientIdentifier already exists if ($configuration.PSObject.Properties['clientIdentifier'] -and $configuration.clientIdentifier) { Write-Verbose "Using existing client identifier: $($configuration.clientIdentifier)" return $configuration.clientIdentifier } # Generate new client identifier $clientIdentifier = [System.Guid]::NewGuid().ToString() Write-Verbose "Generated new client identifier: $clientIdentifier" # Add to config and save $configuration | Add-Member -MemberType NoteProperty -Name 'clientIdentifier' -Value $clientIdentifier -Force Set-PatServerConfiguration -Configuration $configuration return $clientIdentifier } catch { throw "Failed to get client identifier: $($_.Exception.Message)" } } |