Skip to content

Commit 8f801a5

Browse files
Merge pull request #700 from PowershellFrameworkCollective/development
1.13.414
2 parents b190e9f + 889f474 commit 8f801a5

29 files changed

+1499
-74
lines changed

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11

22
# ignore the settings folder and files for VSCode and PSS
3-
.vscode/*
43
*.psproj
54
*TempPoint*
65

.vscode/settings.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"editor.detectIndentation": false,
3+
"editor.insertSpaces": false,
4+
"powershell.codeFormatting.pipelineIndentationStyle": "IncreaseIndentationAfterEveryPipeline",
5+
"powershell.codeFormatting.trimWhitespaceAroundPipe": true,
6+
"powershell.codeFormatting.whitespaceBetweenParameters": true,
7+
"powershell.codeFormatting.autoCorrectAliases": true,
8+
"powershell.codeFormatting.useCorrectCasing": true,
9+
10+
"files.encoding": "utf8bom",
11+
}

PSFramework/PSFramework.psd1

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
RootModule = 'PSFramework.psm1'
55

66
# Version number of this module.
7-
ModuleVersion = '1.13.406'
7+
ModuleVersion = '1.13.414'
88

99
# ID used to uniquely identify this module
1010
GUID = '8028b914-132b-431f-baa9-94a6952f21ff'
@@ -95,6 +95,7 @@
9595
'Install-PSFLoggingProvider'
9696
'Invoke-PSFCommand'
9797
'Invoke-PSFFilter'
98+
'Invoke-PSFRunspace'
9899
'Join-PSFPath'
99100
'New-PSFFilter'
100101
'New-PSFFilterCondition'
-84.9 KB
Binary file not shown.

PSFramework/bin/PSFramework.dll

6 KB
Binary file not shown.

PSFramework/bin/PSFramework.pdb

20 KB
Binary file not shown.

PSFramework/bin/PSFramework.xml

Lines changed: 297 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8573,6 +8573,49 @@
85738573
Purge all RBVs of datasets from all expired runspaces
85748574
</summary>
85758575
</member>
8576+
<member name="T:PSFramework.Runspace.RunspaceResult">
8577+
<summary>
8578+
The result of a runspace task
8579+
</summary>
8580+
</member>
8581+
<member name="F:PSFramework.Runspace.RunspaceResult.InputObject">
8582+
<summary>
8583+
The object that triggered the task
8584+
</summary>
8585+
</member>
8586+
<member name="F:PSFramework.Runspace.RunspaceResult.Output">
8587+
<summary>
8588+
All output
8589+
</summary>
8590+
</member>
8591+
<member name="F:PSFramework.Runspace.RunspaceResult.Information">
8592+
<summary>
8593+
All Information Messages
8594+
</summary>
8595+
</member>
8596+
<member name="F:PSFramework.Runspace.RunspaceResult.Verbose">
8597+
<summary>
8598+
All verbose messages
8599+
</summary>
8600+
</member>
8601+
<member name="F:PSFramework.Runspace.RunspaceResult.Warnings">
8602+
<summary>
8603+
All warning messages
8604+
</summary>
8605+
</member>
8606+
<member name="F:PSFramework.Runspace.RunspaceResult.Errors">
8607+
<summary>
8608+
All error records
8609+
</summary>
8610+
</member>
8611+
<member name="M:PSFramework.Runspace.RunspaceResult.#ctor(System.Object,System.Management.Automation.PSDataCollection{System.Management.Automation.PSObject},System.Management.Automation.PSDataStreams)">
8612+
<summary>
8613+
Creates a result object, representing the completed result of the runspace task.
8614+
</summary>
8615+
<param name="InputObject">The original argument for the task</param>
8616+
<param name="Output">The output result of the task</param>
8617+
<param name="Streams">The streams the task sent</param>
8618+
</member>
85768619
<member name="T:PSFramework.Runspace.PsfRunspaceState">
85778620
<summary>
85788621
Contains the state a managed, unique runspace can be in.
@@ -8593,6 +8636,245 @@
85938636
The runspace has followed its order to stop and is currently disabled
85948637
</summary>
85958638
</member>
8639+
<member name="T:PSFramework.Runspace.RunspaceTask">
8640+
<summary>
8641+
An individual task executed in the runspace pool of its hosting RunspaceWrapper
8642+
</summary>
8643+
</member>
8644+
<member name="F:PSFramework.Runspace.RunspaceTask.InputObject">
8645+
<summary>
8646+
The item to process in this task
8647+
</summary>
8648+
</member>
8649+
<member name="P:PSFramework.Runspace.RunspaceTask.IsCompleted">
8650+
<summary>
8651+
Whether the task has completed successfully
8652+
</summary>
8653+
</member>
8654+
<member name="M:PSFramework.Runspace.RunspaceTask.#ctor(PSFramework.Runspace.RunspaceWrapper,System.Object)">
8655+
<summary>
8656+
Create a new runspace task. If the host has already stared execution, it is immediately queued for execution.
8657+
</summary>
8658+
<param name="Host">The hosting RunspaceWrapper</param>
8659+
<param name="InputObject">The item to process in this task</param>
8660+
</member>
8661+
<member name="M:PSFramework.Runspace.RunspaceTask.TryCollect(System.Management.Automation.Cmdlet,System.Boolean)">
8662+
<summary>
8663+
If the task is complete, collect results and direct the streams. Do nothing if not complete yet.
8664+
Delists itself from the hosting RunspaceWrapper, if completed.
8665+
</summary>
8666+
<param name="Command">The command runtime to whose streams to write the results</param>
8667+
<param name="NoStreams">Do not write to additional streams</param>
8668+
<returns>Whether it successfully collected the results</returns>
8669+
</member>
8670+
<member name="M:PSFramework.Runspace.RunspaceTask.CollectResult">
8671+
<summary>
8672+
Wait until the task completes, then get the full result with all stream information
8673+
</summary>
8674+
<returns>A result object, containing output and streams</returns>
8675+
<exception cref="T:System.InvalidOperationException">Don't try to collect results before starting the task</exception>
8676+
</member>
8677+
<member name="M:PSFramework.Runspace.RunspaceTask.Collect">
8678+
<summary>
8679+
Wait until the task completes, then get the output
8680+
</summary>
8681+
<returns>All output results of the task</returns>
8682+
<exception cref="T:System.InvalidOperationException">Don't try to collect results before starting the task</exception>
8683+
</member>
8684+
<member name="M:PSFramework.Runspace.RunspaceTask.Collect(System.Management.Automation.Cmdlet,System.Boolean)">
8685+
<summary>
8686+
Wait until the task completes, then collect results and direct the streams.
8687+
</summary>
8688+
<param name="Command">The command runtime to whose streams to write the results</param>
8689+
<param name="NoStreams">hether to NOT write to the different streams.</param>
8690+
<exception cref="T:System.InvalidOperationException">Don't try to collect results before starting the task</exception>
8691+
</member>
8692+
<member name="M:PSFramework.Runspace.RunspaceTask.Start">
8693+
<summary>
8694+
Start this task, queueing the code as a runspace in the runspace pool for execution
8695+
</summary>
8696+
<exception cref="T:System.InvalidOperationException">If the runspacepool of the hosting RunspaceWrapper has not been opened yet, we cannot start yet</exception>
8697+
</member>
8698+
<member name="M:PSFramework.Runspace.RunspaceTask.Kill">
8699+
<summary>
8700+
Cancel and destroy this task.
8701+
</summary>
8702+
</member>
8703+
<member name="M:PSFramework.Runspace.RunspaceTask.Dispose">
8704+
<summary>
8705+
Clean up this object
8706+
</summary>
8707+
</member>
8708+
<member name="T:PSFramework.Runspace.RunspaceWrapper">
8709+
<summary>
8710+
Runspace managing class used by Invoke-PSFRunspace.
8711+
</summary>
8712+
</member>
8713+
<member name="F:PSFramework.Runspace.RunspaceWrapper.Name">
8714+
<summary>
8715+
Nme of the workload
8716+
</summary>
8717+
</member>
8718+
<member name="F:PSFramework.Runspace.RunspaceWrapper.Code">
8719+
<summary>
8720+
The code to run in parallel
8721+
</summary>
8722+
</member>
8723+
<member name="F:PSFramework.Runspace.RunspaceWrapper.ThrottleLimit">
8724+
<summary>
8725+
How many runspace tasks to execute in parallel
8726+
</summary>
8727+
</member>
8728+
<member name="P:PSFramework.Runspace.RunspaceWrapper.CountTotal">
8729+
<summary>
8730+
Total number of tasks in this wrapper
8731+
</summary>
8732+
</member>
8733+
<member name="P:PSFramework.Runspace.RunspaceWrapper.CountPending">
8734+
<summary>
8735+
Number of Tasks still pending
8736+
</summary>
8737+
</member>
8738+
<member name="P:PSFramework.Runspace.RunspaceWrapper.CountCompleted">
8739+
<summary>
8740+
Number of Tasks completed
8741+
</summary>
8742+
</member>
8743+
<member name="F:PSFramework.Runspace.RunspaceWrapper.InitialSessionState">
8744+
<summary>
8745+
What each runspace task will have available
8746+
</summary>
8747+
</member>
8748+
<member name="F:PSFramework.Runspace.RunspaceWrapper.Tasks">
8749+
<summary>
8750+
List of tasks to execute
8751+
</summary>
8752+
</member>
8753+
<member name="F:PSFramework.Runspace.RunspaceWrapper.Variables">
8754+
<summary>
8755+
Variables available to all tasks
8756+
</summary>
8757+
</member>
8758+
<member name="F:PSFramework.Runspace.RunspaceWrapper.Functions">
8759+
<summary>
8760+
Functions available to all tasks
8761+
</summary>
8762+
</member>
8763+
<member name="F:PSFramework.Runspace.RunspaceWrapper.Modules">
8764+
<summary>
8765+
Modules available to all tasks
8766+
</summary>
8767+
</member>
8768+
<member name="P:PSFramework.Runspace.RunspaceWrapper.IsRunning">
8769+
<summary>
8770+
Whether the RunspaceWrapper is currently open for tasks
8771+
</summary>
8772+
</member>
8773+
<member name="M:PSFramework.Runspace.RunspaceWrapper.AddVariable(System.String,System.Object)">
8774+
<summary>
8775+
Add a variable to the initial sessionstate
8776+
</summary>
8777+
<param name="Name">name of the variable</param>
8778+
<param name="Value">Value of the variable</param>
8779+
</member>
8780+
<member name="M:PSFramework.Runspace.RunspaceWrapper.AddVariable(System.Collections.Hashtable)">
8781+
<summary>
8782+
Add multiple variables to the initial sessionstate
8783+
</summary>
8784+
<param name="VariableHash">Name/value map of variables to inclue</param>
8785+
</member>
8786+
<member name="M:PSFramework.Runspace.RunspaceWrapper.AddModule(System.String)">
8787+
<summary>
8788+
Add a module by name or path
8789+
</summary>
8790+
<param name="Module">Name or path to the module</param>
8791+
</member>
8792+
<member name="M:PSFramework.Runspace.RunspaceWrapper.AddModule(System.Management.Automation.PSModuleInfo)">
8793+
<summary>
8794+
Add a module by its module info object
8795+
</summary>
8796+
<param name="Module">The module info object</param>
8797+
</member>
8798+
<member name="M:PSFramework.Runspace.RunspaceWrapper.AddFunction(System.String,System.Management.Automation.ScriptBlock)">
8799+
<summary>
8800+
Define a function available to all tasks
8801+
</summary>
8802+
<param name="Name"></param>
8803+
<param name="Definition"></param>
8804+
<exception cref="T:System.Management.Automation.PSSecurityException"></exception>
8805+
</member>
8806+
<member name="M:PSFramework.Runspace.RunspaceWrapper.AddFunction(System.Management.Automation.FunctionInfo)">
8807+
<summary>
8808+
Define a function available to all tasks
8809+
</summary>
8810+
<param name="Function">Function info object to copy over</param>
8811+
<exception cref="T:System.Management.Automation.PSSecurityException"></exception>
8812+
</member>
8813+
<member name="M:PSFramework.Runspace.RunspaceWrapper.Start">
8814+
<summary>
8815+
Start the entire wrapper, creating a runspace pool and preparing for execution
8816+
</summary>
8817+
</member>
8818+
<member name="M:PSFramework.Runspace.RunspaceWrapper.Stop">
8819+
<summary>
8820+
Close the runspace pool, terminate everything and clean up.
8821+
</summary>
8822+
</member>
8823+
<member name="M:PSFramework.Runspace.RunspaceWrapper.Dispose">
8824+
<summary>
8825+
Make sure everything is cleaned out after the job is done
8826+
</summary>
8827+
</member>
8828+
<member name="M:PSFramework.Runspace.RunspaceWrapper.AddTask(System.Object)">
8829+
<summary>
8830+
Add a task that should be executed
8831+
</summary>
8832+
<param name="InputObject">The argument for which the task should be executed</param>
8833+
</member>
8834+
<member name="M:PSFramework.Runspace.RunspaceWrapper.AddTaskBulk(System.Collections.IEnumerable)">
8835+
<summary>
8836+
Add a list of tasks that all should be executed
8837+
</summary>
8838+
<param name="InputObjects">The arugments for each of which the task should be executed</param>
8839+
</member>
8840+
<member name="M:PSFramework.Runspace.RunspaceWrapper.Collect(System.Management.Automation.Cmdlet,System.Boolean)">
8841+
<summary>
8842+
Wait for all task results and receive results directly into the streams of the calling command
8843+
</summary>
8844+
<param name="Command">The command runtime whose streams to write to</param>
8845+
<param name="NoStreams">Whether additional streams should be hidden and only output shown</param>
8846+
</member>
8847+
<member name="M:PSFramework.Runspace.RunspaceWrapper.CollectCurrent(System.Management.Automation.Cmdlet,System.Boolean)">
8848+
<summary>
8849+
Collect all tasks that already completed, and directly write the results to the streams of the calling command
8850+
</summary>
8851+
<param name="Command">The command runtime whose streams to write to</param>
8852+
<param name="NoStreams">Whether additional streams should be hidden and only output shown</param>
8853+
</member>
8854+
<member name="M:PSFramework.Runspace.RunspaceWrapper.CollectResult">
8855+
<summary>
8856+
Wait for all task results and return result report objects, including information on all streams of the runspace
8857+
</summary>
8858+
<returns>List of completion reports, including all output, warnings, errors, informational messages, etc.</returns>
8859+
</member>
8860+
<member name="M:PSFramework.Runspace.RunspaceWrapper.CollectCurrentResult">
8861+
<summary>
8862+
Retrieve result report objects for each task already completed, including information on all streams of the runspace
8863+
</summary>
8864+
<returns>List of completion reports, including all output, warnings, errors, informational messages, etc.</returns>
8865+
</member>
8866+
<member name="M:PSFramework.Runspace.RunspaceWrapper.Collect">
8867+
<summary>
8868+
Wait for all task results and return the output.
8869+
</summary>
8870+
<returns>The resulting output of all tasks</returns>
8871+
</member>
8872+
<member name="M:PSFramework.Runspace.RunspaceWrapper.CollectCurrent">
8873+
<summary>
8874+
Receive the output of all currently completed tasks
8875+
</summary>
8876+
<returns>The output of all currently completed tasks</returns>
8877+
</member>
85968878
<member name="T:PSFramework.Serialization.ClixmlDataStyle">
85978879
<summary>
85988880
The serialization output options available
@@ -8927,6 +9209,16 @@
89279209
Whether to execute the scriptblock in the global scope
89289210
</summary>
89299211
</member>
9212+
<member name="F:PSFramework.TabExpansion.ScriptContainer.DoNotFilter">
9213+
<summary>
9214+
When enabled, do not filter based on user input.
9215+
</summary>
9216+
</member>
9217+
<member name="P:PSFramework.TabExpansion.ScriptContainer.MaxResults">
9218+
<summary>
9219+
Maximum number of results to show when tab-completing.
9220+
</summary>
9221+
</member>
89309222
<member name="P:PSFramework.TabExpansion.ScriptContainer.MatchAnywhere">
89319223
<summary>
89329224
If true: Match input against any part of the options, not just the beginning
@@ -9030,6 +9322,11 @@
90309322
Whether PSFramework completion should use fuzzy-matching when matching completion values with the already typed text.
90319323
</summary>
90329324
</member>
9325+
<member name="F:PSFramework.TabExpansion.TabExpansionHost.MaxResults">
9326+
<summary>
9327+
The maximum number of results shown to the user, before truncating data sets.
9328+
</summary>
9329+
</member>
90339330
<member name="M:PSFramework.TabExpansion.TabExpansionHost.RegisterCompletion(System.String,System.Management.Automation.ScriptBlock,PSFramework.TabExpansion.TeppScriptMode,PSFramework.Parameter.TimeSpanParameter,System.Boolean)">
90349331
<summary>
90359332
Registers a new completion scriptblock

PSFramework/changelog.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,16 @@
11
# CHANGELOG
22

3+
## 1.13.414 (2025-10-14)
4+
5+
- Upd: Wait-PSFRunspaceWorkflow - adding ProgressBar with `-ShowProgress` (#698 | @fslef)
6+
- Upd: Register-PSFArgumentCompleter - adding parameter `-DontFilter`, disabling automatic filtering by user input and enabling complex custom filtering inside of the completer (#696)
7+
- Upd: Register-PSFArgumentCompleter - adding parameter `-MaxResults`, truncating large result-sets for a more userfriendly display (#694)
8+
- Fix: Invoke-PSFProtectedCommand - $paramStopPSFFunction Leaks To Global Scope (#697)
9+
- Fix: Register-PSFArgumentCompleter - ignores `-DontSort`
10+
- Fix: Configuration import - simple persistence from Environment fails for arrays (#692)
11+
- Fix: ConvertTo-PSFPsd1 - Error: The property 'Depth' cannot be found on this object (#695)
12+
- Fix: Filter "Environment" - "Elevated" miss-detects MacOS (#693)
13+
314
## 1.13.406 (2025-08-29)
415

516
- New: Assert-PSFInternalCommand - Verifies, that the command calling it in turn was only called from another command within the same module. (#685)

PSFramework/en-us/stringsRunspaces.psd1

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22
'Add-PSFRunspaceWorker.Error.UntrustedFunctionCode' = 'Failed to load function {0}: The provided function code is not trusted (in Constrained language Mode) and cannot be imported. Ensure the code building the scriptblock is trusted to create a non-constrained scriptblock.' # $pair.Key
33
'Add-PSFRunspaceWorker.Error.UntrustedTextFunction' = 'Failed to load function {0}: String-based code is not trusted in a secured console. Provide its code as a scriptblock, rather than a string to enable code trust verification.' # $pair.Key
44

5+
'Invoke-PSFRunspace.Error.ModuleImport' = 'Failed to include module: "{0}"' # $module
6+
'Invoke-PSFRunspace.Error.UntrustedTextFunction' = 'Failed to import function "{0}". Providing function-code as text is not supported in a hardened PowerShell process. Provide the function-code instead as a scriptblock.' # $pair.Key
7+
'Invoke-PSFRunspace.Error.UntrustedFunctionCode' = 'Failed to import function "{0}". Scriptblock is not in FullLanguage mode and thus not trusted!' # $pair.Key
8+
59
'New-PSFRunspaceWorkflow.Error.ExistsAlready' = 'Failed to create workflow {0}: It already exists! Use "-Force" to overwrite the existing Runspace Workflow, interrupting all currently ongoing processing.' # $Name
610

711
'Read-PSFRunspaceQueue.Error.Continual.TooManyWorkflows' = 'Error resolving queue to read from in continuous mode: {0}. Multiple workflows found, while continuous read only supports a single workflow. Workflows found: {1}' # $Name, ($resolvedWorkflows.Name -join ', ')

PSFramework/functions/data/ConvertTo-PSFPsd1.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
)
4848
begin {
4949
$converter = [PSFramework.Data.Psd1Converter]::new()
50-
$converter.Depth = $Depth
50+
$converter.MaxDepth = $Depth
5151
$converter.EnableVerbose = $EnableVerbose
5252
$converter.Config = $Configuration
5353
$converter.Cmdlet = $PSCmdlet

0 commit comments

Comments
 (0)