DPXone
Lieutenant
- Registriert
- Mai 2009
- Beiträge
- 554
Hallo,
weiß zufällig jemand, wie ich Funktionen im folgenden Kontext ausführen kann, wenn sie nicht installiert bzw. global zur Verfügung stehen?
Es geht um Zeile 12 im Code-Tag -> [void] $PowerShell.AddCommand('<<<<MeineFunktionDieNichtGlobalZurVerfügungSteht>>>>').AddParameters($Parameters)
Hintergrund:
Ich will, dass die Funktion des Moduls sich selbst (im multithreading-Verfahren) aufrufen kann.
Gibt es irgendeine Möglichkeit die aktuell vom Benutzer geladenen Module (weiterhin) zu verwenden?
Man kann ja leicht global zur Verfügung stehende Funktionen anhängen und ausführen, aber wie sieht es mit Funktionen in Profil-basierten Modulen aus, die nur per Microsoft.PowerShellISE_profile.ps1 und Microsoft.PowerShell_profile.ps1 geladen werden?
Die greifen nämlich nicht. Die Funktion wird einfach nicht gefunden.
Fehler:
Exception calling "EndInvoke" with "1" argument(s): "The term '<<<<MeineFunktion>>>>' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is
correct and try again."
Ich hab es schon mit folgenden zusätzlichen Command probiert:
aber das funktioniert auch nicht so wie gewünscht.
weiß zufällig jemand, wie ich Funktionen im folgenden Kontext ausführen kann, wenn sie nicht installiert bzw. global zur Verfügung stehen?
Es geht um Zeile 12 im Code-Tag -> [void] $PowerShell.AddCommand('<<<<MeineFunktionDieNichtGlobalZurVerfügungSteht>>>>').AddParameters($Parameters)
Hintergrund:
Ich will, dass die Funktion des Moduls sich selbst (im multithreading-Verfahren) aufrufen kann.
Code:
$MaxThreads = 20
$RunspacePool = [runspacefactory]::CreateRunspacePool(1 , $MaxThreads)
$RunspacePool.Open() # Open runspace pool to be able to add runspaces
[..someCode..]
$PowerShell = [powershell]::Create() # Create new powershell instance/runspace
$PowerShell.RunSpacePool = $RunspacePool # Assign new instance/runspace to runspace pool
[..someCode..]
[void] $PowerShell.AddCommand('<<<<MeineFunktionDieNichtGlobalZurVerfügungSteht>>>>').AddParameters($Parameters)
[..someCode..]
RunSpace = $PowerShell.BeginInvoke() # Invoke ScriptBlock of the runspace
Gibt es irgendeine Möglichkeit die aktuell vom Benutzer geladenen Module (weiterhin) zu verwenden?
Man kann ja leicht global zur Verfügung stehende Funktionen anhängen und ausführen, aber wie sieht es mit Funktionen in Profil-basierten Modulen aus, die nur per Microsoft.PowerShellISE_profile.ps1 und Microsoft.PowerShell_profile.ps1 geladen werden?
Die greifen nämlich nicht. Die Funktion wird einfach nicht gefunden.
Fehler:
Exception calling "EndInvoke" with "1" argument(s): "The term '<<<<MeineFunktion>>>>' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is
correct and try again."
Ich hab es schon mit folgenden zusätzlichen Command probiert:
Code:
[void] $PowerShell.AddCommand("Import-Module $($PSCommandPath) -WarningAction Ignore")