Comment utiliser une fonction dans mon profil sur l'appareil distant lorsque j'utilise Enter-PSSession
sur mon ordinateur local pour ouvrir une session PowerShell distante.Profils d'accès distant Powershell
Répondre
Vous ne pouvez pas. Lors du démarrage d'une session interactive distante avec enter-pssession, un profil distant est chargé. En outre, seul le profil de niveau machine dans $ pshome est chargé. Si vous souhaitez que les fonctions distantes soient disponibles, vous devez les initialiser dans le script de démarrage de la configuration de la session à distance. Jetez un oeil à get/set-pssessionconfiguration sur le serveur distant.
Est-ce que quelque chose a changé dans la façon dont ces choses sont traitées? Je suis avec PowerShell 5.1 et j'ai créé un profile.ps1 dans C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ juste pour définir un alias, qui fonctionne lorsque vous utilisez le shell localement. Mais lors de la connexion à cette machine en utilisant Enter-PSSession, l'alias ne fonctionne pas ... – Alex
@Alex Peut-être que vous devrez peut-être redémarrer le service WinRM à la fin du serveur? Un redémarrage devrait le faire, mais si c'est un peu lourd alors "restart-service winrm" devrait fonctionner. Ou, les choses peuvent avoir changé comme vous le dites ... – x0n
un coup d'oeil à ce
http://jrich523.wordpress.com/2010/07/08/creating-a-profile-for-a-remote-session/
est un travail autour de la création d'un profil à distance.
Par jonz et x0n:
Lorsque vous utilisez PSSession avec les configurations de session par défaut, exécutez pas de scripts de profil. Lors du démarrage d'une session interactive à distance avec
Enter-PSSession
, un profil distant est chargé. De plus, seul le profil de niveau machine$pshome
est chargé.
Si vous voulez une session à préconfiguré (pour charger des fonctions personnalisées, snap-ins, modules, etc.), ajoutez un script de profil à un nouveau sessionconfiguration (pour les initialiser dans le script de démarrage du configuration de session à distance).
La cmdlet Register-PSSessionConfiguration crée et enregistre une nouvelle configuration de session sur l'ordinateur local. Utilisez Get-PSSessionConfiguration pour afficher les configurations de session existantes. Get-PSSessionConfiguration et Register-PSSessionConfiguration requièrent des droits élevés (démarrez PowerShell avec l'option "Exécuter en tant qu'administrateur").
Dans l'ordinateur cible, où profile.ps1
contient toutes vos fonctions:
Register-PSSessionConfiguration -Name WithProfile -StartupScript $PsHome\Profile.ps1
Pour utiliser cette séance préconfiguré vous tapez, à partir de l'ordinateur local:
Enter-PSSession -ComputerName $computername -ConfigurationName WithProfile
ou
Enter-PSSession -ComputerName $computername -ConfigurationName WithProfile -Credential [email protected]
(où $computername
est le nom d'hôte de la re serveur de mote où vous avez enregistré la configuration de pssession). Une bonne source sur PowerShell Remoting est le Administrator's Guide to Powershell Remoting.
Références:
Powershell Remoting: Use Functions loaded in Powershell remote Profile? http://jrich523.wordpress.com/2010/07/21/update-creating-a-profile-for-a-remote-session/
Comprendre et utiliser les profils PowerShell
http://blogs.technet.com/b/heyscriptingguy/archive/2013/01/04/understanding-and-using-powershell-profiles.aspx
Les six différents chemins de profil Windows PowerShell et utiliser
utilisation actuelle r, hôte actuel - console
$ Accueil [Mes] Documents \ WindowsPowerShell \ Profile.ps1
Utilisateur actuel, tous les hôtes
$ Accueil [Mon] Documents \ Profile.ps1
Tous utilisateurs, Current Host - console
$ PsHome \ Microsoft.PowerShell_profile.ps1
Tous les utilisateurs, Tous les hôtes
$ PsHome \ Profile.ps1
utilisateur actuel, hôte actuel - ISE
$ Accueil [Mon] Documents \ WindowsPowerShell \ Microsoft.PowerShellISE_profile.ps1
Tous les utilisateurs, Current Host - ISE
$ PsHome \ Microsoft.PowerShellISE_profile.ps1
Windows PowerShell Profils
http://msdn.microsoft.com/en-us/library/bb613488%28VS.85%29.aspx
Ce profil s'applique à tous les utilisateurs et tous les shells.
% windir% \ system32 \ WindowsPowerShell \ v1.0 \ profile.ps1
Ce profil s'applique à tous les utilisateurs, mais seulement à la coquille Microsoft.PowerShell.
% windir% \ system32 \ WindowsPowerShell \ v1.0 \ Microsoft.PowerShell_profile.ps1
Ce profil applique uniquement à l'utilisateur actuel, mais affecte toutes les coquilles.
% UserProfile% \ Mes documents \ WindowsPowerShell \ profile.ps1
Ce profil applique uniquement à l'utilisateur actuel et la coquille Microsoft.PowerShell.
% UserProfile% \ Mes documents \ WindowsPowerShell \ Microsoft.PowerShell_profile.ps1
"En outre, seul le profil de niveau machine dans $ pshome est chargé." Est-ce que cela a changé à un moment donné? Avec Windows 8.1 et WIndoes Server 2012, Enter-PSSession n'exécute aucun profil Powershell sur la machine cible. –
@GreenstoneWalker - Je vois ça aussi. Avec un serveur Win 2008 R2/PS 3.0. – smaglio81
Si vous ne voulez pas dépendre d'une version ou d'une langue spécifique de Windows, utilisez: '[Environment] :: GetFolderPath ('MyDocuments')' – mtman
Jason, Dans mon cas, je voulais avoir mon profil Powershell me suivre quand je télécommandables dans un autre ordinateur.
J'ai créé une fonction wrapper Remote qui prend un nom d'ordinateur, crée une session, charge votre profil dans la session et utilise enter-pssession.
Voici le code ci-dessous:
function Remote($computername){
if(!$Global:credential){
$Global:credential = Get-Credential
}
$session = New-PSSession -ComputerName $computername -Credential $credential
Invoke-Command -FilePath $profile -Session $session
Enter-PSSession -Session $session
}
Vous pouvez modifier le paramètre -FilePath Invoke-Command pour prendre un fichier de votre goût.
- 1. Gestion des profils dans Powershell 2.0
- 2. Usurpation d'identité dans Powershell - Accès au fichier distant
- 3. profils asp.net
- 4. différents profils utilisateurs avec django-profils et django-inscription
- 5. Profils utilisateur ASP.NET MVC2
- 6. Méta-profils dans Maven
- 7. Héritage des profils Maven
- 8. Attribution de profils .NET
- 9. Profils d'utilisateur ASP MVC
- 10. fournisseurs de profils multiples
- 11. Combiner les profils d'installation
- 12. disponibles Maven Profils
- 13. secteur URL - Profils utilisateur - Codeigniter
- 14. Enregistrement Django et plusieurs profils
- 15. Ant équivalent des profils Maven?
- 16. Gestion des profils utilisateur ASP.NET
- 17. Profils Bluetooth pour les tablettes
- 18. Configuration de profils avec StructureMap
- 19. XHProf - Voir tous les profils
- 20. Affectation d'utilisateurs à des profils
- 21. Rails, Mongoid, Devise Profils d'utilisateurs
- 22. powershell vérifier sharepoint URLs
- 23. Commande PowerShell à la fonction PowerShell paramétrée?
- 24. Comment détecter l'imbrication de Powershell dans Powershell?
- 25. Exécuter des scripts PowerShell sans installer PowerShell?
- 26. ASP.net Adhésion et profils dans WCF
- 27. Faire un site Web avec des profils
- 28. Profils/attributs utilisateur personnalisés Active Directory?
- 29. Générateur de profils pour une application Grails
- 30. Paramètres d'application/utilisateur avec profils itinérants
une solution finale avec le code source complet? – Kiquenet