Question

Comment puis-je utiliser une fonction dans mon profil sur la machine distante lors de l'utilisation Enter-PSSession sur ma machine locale pour ouvrir une session PowerShell à distance.

Était-ce utile?

La solution

Vous ne pouvez pas. Lors du démarrage d'une session interactive à distance avec enter-pssession, un profil à distance est chargé. En outre, seul le profil de niveau machine $ pshome est chargé. Si vous voulez que les fonctions à distance disponibles, vous devrez les initialiser dans le script de démarrage de la configuration de session à distance. Jetez un oeil à get / set-PSSessionConfiguration sur le serveur distant.

Autres conseils

Par jonz et x0n:

Lorsque vous utilisez PSSession avec les configurations de session par défaut, pas de scripts de profil exécuté.

Lors du démarrage d'une session interactive à distance avec Enter-PSSession, un profil à distance est chargé. En outre, seul le profil de niveau machine $pshome est chargée.

Si vous voulez une session à préconfiguré (à la charge des fonctions personnalisées, modules, etc.-ins composant logiciel enfichable), ajouter un script de profil à un nouveau sessionconfiguration (pour initialize eux dans le script de démarrage de la configuration de session à distance).

Le Register-PSSessionConfiguration cmdlet crée et enregistre une nouvelle session configuration sur l'ordinateur local. Utilisez Get-PSSessionConfiguration pour afficher les configurations de session existantes. Les deux Get-PSSessionConfiguration et Register-PSSessionConfiguration exigent des droits élevés (début 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 session préconfiguré vous tapez, à partir de l'ordinateur local:

Enter-PSSession -ComputerName $computername -ConfigurationName WithProfile

ou

Enter-PSSession -ComputerName $computername -ConfigurationName WithProfile -Credential youradminuser@yourtargetdomain

(où $computername est le nom d'hôte du serveur distant où vous avez enregistré le PSSessionConfiguration).

Une bonne source sur PowerShell Remoting est le Guide de l'administrateur de Powershell Remoting .

Références: Powershell Remoting: Utiliser des fonctions chargées dans Powershell profil distant http: // jrich523 .wordpress.com / 2010/07/21 / update-création-un-profil-pour-une-distance Session /

Comprendre et utiliser les profils PowerShell http: // blogs.technet.com/b/heyscriptingguy/archive/2013/01/04/understanding-and-using-powershell-profiles.aspx

about_Profiles (Microsoft Docs) https://docs.microsoft.com/ fr-fr / Powershell / module / Microsoft.PowerShell.Core / about / about_Profiles

Les six différents chemins de profil Windows PowerShell et utilisation

Utilisateur actuel, hôte actuel - console $ Accueil [Mon] Documents \ WindowsPowerShell \ Profile.ps1

Utilisateur actuel, tous les hôtes $ Accueil [Mon] Documents de Profile.ps1

Tous les 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/ fr-fr / bibliothèque / bb613488% 28VS.85% 29.aspx

Ce profil s'applique à tous les utilisateurs et toutes les coquilles. % 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 le shell Microsoft.PowerShell. % UserProfile% \ Mes documents \ WindowsPowerShell \ Microsoft.PowerShell_profile.ps1

PowerShell Profils de base https://docs.microsoft.com/ fr-fr / Powershell / module / Microsoft.PowerShell.Core / about / about_Profiles

Ce profil s'applique à tous les utilisateurs et tous les hôtes. $ Env: ProgramFiles \ PowerShell \ 6 \ profile.ps1

Ce profil s'applique à tous les utilisateurs, mais seulement sur la machine hôte. $ Env: ProgramFiles \ PowerShell \ 6 \ Microsoft.PowerShell_profile.ps1

Ce profil applique uniquement à l'utilisateur actuel, mais affecte tous les hôtes. $ Env: USERPROFILE \ Documents \ PowerShell \ profile.ps1

Ce profil applique uniquement à l'utilisateur actuel et le shell Microsoft.PowerShell. $ Env: USERPROFILE \ Documents \ PowerShell \ Microsoft.PowerShell_profile.ps1

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 d'emballage à distance qui prend une computername, crée une session, charge votre profil dans la session, et les utilisations 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.

jeter un oeil à cette

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.

Il y a une autre façon d'utiliser un profil sur une session à distance:

  1. Copiez le profil choisi au serveur distant (s) dans le dossier de vos documents. Par exemple:

Copy-Item -Path $profile.CurrentUserAllHosts -Destination \\computername\C$\Users\MyAccountName\Documents

  1. Entrez le PSSession

Enter-PSSession -ComputerName ComputerName

  1. Dot source de votre profil

. .\Profile.ps1

inconvénients de cette solution:

  • vous devez copier une fois que votre profil à tous les ordinateurs sur lesquels vous voulez avoir un profil
  • vous devez localiser les points sur le profil chaque fois que vous entrez dans un PSSession

Les avantages de cette solution:

  • Il n'y a pas besoin de la fonction et vous suffit d'entrer un PSSession comme vous le faites toujours
  • Vous ne modifie pas le profil de tous les utilisateurs en changer la configuration de la session par défaut

(Merci Jeffery Hicks pour la pointe sur le point d'approvisionnement )

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top