Powershell Remoting: à l'aide de module importé des applets de commande à distance pssession
Est-il un moyen pour utiliser les modules qui ont été importés dans une session locale dans une session à distance? J'ai regardé à l'importation-pssession, mais je ne sais pas comment obtenir la session locale. Voici un échantillon de ce que je veux faire.
import-module .\MyModule\MyModule.ps1
$session = new-pssession -computerName RemoteComputer
invoke-command -session $session -scriptblock { Use-CmdletFromMyModule }
Aussi, je ne veux pas d'import-module dans la session à distance, comme la ps1 fichiers ne sont pas sur ce serveur.
OriginalL'auteur Jonathan Matheus | 2010-05-13
Vous devez vous connecter pour publier un commentaire.
J'ai fini le piratage de ce travail. Ce que j'ai fait était de créer une session locale, l'importation de modules dans cette session et à l'importation-pssession pour importer des modules à partir de la création de session locale dans la session à distance. C'est lent. Si quelqu'un a une meilleure manière de faire ceci, ou si quelqu'un sait comment faire pour obtenir une instance de la base de session, j'aimerais vous entendre!
Remoting.psm1
MyModule.psm1
RemotingTest.ps1
Vous pouvez uniquement importer un module de nom si le fichier de module est en une du module par défaut endroits. Si elle ne l'est pas, vous devez donner le chemin d'accès au fichier. J'ai rencontré un problème avec un assemblage de modules qui sont importés à partir d'un module manifeste psd1. Le PSModuleInfo.Chemin d'accès à la propriété pour un module binaire points à la dll au lieu de la psd1. Si vous importez directement à partir de la dll, puis importez-pssession échouera. Par conséquent, toutes les voodoo pour obtenir le psd1 fichier pour l'assemblage du module.
Avez-vous toujours utiliser cette méthode ou avez-vous trouver une meilleure façon de le faire?
Ce n'est pas déraisonnable façon de le faire - mais il faut que les deux extrémités du fil WinRM écoute, ce qui peut être difficile à configurer / permettre en fonction de votre environnement. Pour les environnements internes, n'est pas très grave, mais si votre hôte est sur EC2, et interne de votre ordinateur se trouve derrière un pare-feu, ce sera difficile de l'installation. Pas de minimiser l'importance de l'utilité, c'est un tour de nice, mais juste être conscient de ces enjeux. J'ai une autre méthode aussi avec limitation posté ci-dessous. À mon humble avis, c'est un point sensible dans Powershell remoting (avec pas de réel équivalent à SFTP)
OriginalL'auteur
Comme une alternative à ce que Jonathan mentionne, si vous avez des modules de code source que vous désirez pousser sur le fil, alors vous pouvez le faire sans trop de difficultés. Si vous avez des fichiers binaires, vous pourrait être en mesure de faire quelque chose de similaire.mais je dirais que tous les paris sont éteints. Essentiellement, vous poussez les fichiers comme params dans une table de hachage, écrire à la température, puis importer.
Appel comme
Également théoriquement possible, l'exportation d'un courant localhost session de module et de le pousser sur le fil -- non testé pseudo-code. Cela pourrait ne pas fonctionner...
Génial, fonctionne très bien !
OriginalL'auteur
dans le cas où cette aide:
si vous pouvez passer à PowerShell 3.0, puis
le Module d'Import-Module applets de commande modules de prise en charge sur les ordinateurs distants:
http://technet.microsoft.com/en-us/library/hh857339.aspx#BKMK_REM
Il devrait être possible d'utiliser PowerShell sur l'ordinateur distant, qui effectue Import-Module,
sans avoir aucune ps1 scripts sur l'ordinateur distant.
OriginalL'auteur
Je ne crois pas que vous le pouvez. Vous pouvez aller dans l'autre sens commandes d'importation chargé sur la machine distante dans votre session à distance en cours d'exécution sur la machine locale. Vous pouvez spécifier un script de commande invoke-command et il permet de copier le script sur la machine distante et l'exécuter. Mais si vous avez besoin d'snapins ou d'autres modules, vous devrez vous assurer que ceux-ci sont installés sur chaque ordinateur distant, puis de les charger dans la session à distance via des commandes ou de votre script.
OriginalL'auteur
Je dirais quelque chose comme:
Depuis, vous pouvez utiliser ActiveDirectory les applets de commande dans votre session.
Espère que cette aide.
OriginalL'auteur
Alors que je cherchais quelque chose de similaire... Dans mon cas, j'ai juste besoin d'exporter une seule fonction pour une session à distance... c'est ce que je suis venu avec. Vous pourriez peut-être passer en boucle pour essayer. Il ne fonctionne pas avec les commandes internes, mais il fonctionne sur les fonctions dans les modules personnalisés (dans les tests que j'ai fait).
OriginalL'auteur
utiliser credssp authentification
OriginalL'auteur