{% hint style="info" %} Required Version: 2.0 or later {% endhint %}
Endpoints within Universal Dashboard are run using a shared runspace pool. Runspaces are created and retained to ensure that performance is as best as it can be. As requests come in, more runspaces will be created up to a certain limit and then runspaces will be reused. When the runspaces are created, they are initialized with the return value of the New-UDEndpointInitialization
cmdlet. This value is passed to the New-UDDashboard
cmdlet via the -EndpointInitialization
cmdlet.
Much like global:
scope variables, variables that you pass to endpoints are available in all endpoints. To pass a variable, simply provide the name of the variable to the initialization cmdlet.
$MyVariable = "Hi, there!"
New-UDEndpointInitialization -Variable MyVariable
You'll now be able to use $MyVariable
in all your endpoints.
You can also pass arrays of variable names.
$MyVariable = "Hi, there!"
$YourVariable = "Good bye!"
New-UDEndpointInitialization -Variable @("MyVariable", "YourVariable")
Functions are passed just like variables but using the -Function
parameter.
function Get-MeABeer () { }
New-UDEndpointInitialization -Function "Get-MeABeer"
They also support arrays.
function Get-MeABeer () { }
function Get-YourSelfABeer() { }
New-UDEndpointInitialization -Function @("Get-MeABeer", "Get-YourSelfABeer")
The name or path of the module should be provided to the -Module
parameter. You can specify arrays of modules or paths. Relative paths are relative to the current file.
New-UDEndpointInitialization -Module @("ActiveDirectory", ".\HelpFunctions.psm1")
The New-UDEndpointInitiailization
cmdlet returns a InitialSessionState object. This object is part of the PowerShell SDK and provides more customization than does the cmdlet. You can store the result in a variable and set additional properties.
$Init = New-UDEndpointInitialization
$Init.LanguageMode = 'ConstrainedLanguage'