Functions/CommonFunctions.ps1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
function Set_Type { param( [Parameter(ValueFromPipeline=$true)] [psobject[]]$InputObject, [string]$TypeName ) process { foreach ($object in $InputObject) { if ($TypeName) { $object.psobject.TypeNames.Insert(0, $TypeName) } $object } } } function Invoke-SessionCommand { [CmdletBinding()] param( [Parameter(Mandatory=$true)] [ScriptBlock]$ScriptBlock, [Parameter()] [Object[]]$ArgumentList, [Parameter()] [System.Management.Automation.Runspaces.PSSession]$Session ) if ($Session) { Write-Verbose "Executing remotely from '$($Session.ComputerName)'.." Invoke-Command -Session $Session -ArgumentList $ArgumentList -ScriptBlock $ScriptBlock | Add-Member -NotePropertyName Session -NotePropertyValue $Session -Force -PassThru } else { Write-Verbose 'Executig locally..' Invoke-Command -ArgumentList $ArgumentList -ScriptBlock $ScriptBlock } } |