Windows PowerShell : Mon profil Windows PowerShell
Les scripts de profil sont un moyen puissant pour personnaliser Windows PowerShell et prêt à travailler comme vous voulez qu'il fonctionne.
Don Jones
Chaque fois que j'ai énoncées pour expliquer les scripts de profil Windows PowerShell, la discussion mène inévitablement à une personne demandant ce qui est dans mon script de profil. En général, je pense qu'ils essaient seulement de se faire une idée de comment ils doivent utiliser leur profil.
Les profils sont soignées, mais ils peuvent sembler peu magiques au début parce qu'ils se trouvent sous le capot comme Windows PowerShell démarre. En réalité, ils sont beaucoup moins magiques que vous ne le pensez.
Tout d'abord, vous devez comprendre que Windows PowerShell est juste un gros DLL assis sur votre ordinateur. C'est ce que j'appelle le moteur de Windows PowerShell. Il ne fait rien avec les profils. Pour l'essentiel, vous ne peut pas même interagir directement avec le moteur à moins que vous soyez un développeur .NET.
Simples êtres humains traitent de Windows PowerShell au moyen d'une application d'hébergement, souvent simplement appelée l'hôte. PowerShell.exe, la console écran bleu standard que la plupart d'entre nous utilisons, est un tel hôte. Le Windows PowerShell Integrated Scripting environnement (ISE) est une autre. Éditeurs de Windows PowerShell de tiers tels que PrimalScript, PowerShell Plus, PowerSE, PowerGUI et ainsi de suite sont aussi des hôtes. L'hôte est responsable de chargement — ou ne se charge ne pas, le cas echeant — profil des scripts. L'hôte détermine réellement qui elle les scripts des charges.
Dans le cas de l'hôte PowerShell.exe et Windows PowerShell ISE, ils va charger jusqu'à quatre scripts. Deux d'entre eux se trouvent dans votre profil utilisateur, dans un dossier appelé \Documents\WindowsPowerShell. Ce sont les profils de chaque utilisateur. Parmi ceux-ci, l'un d'eux est censé être chargé par tous les hôtes de Windows PowerShell : Profile.ps1.
L'autre est spécifique à l'application d'hébergement, comme dans Microsoft.PowerShell_profile.ps1. Il est chargé par l'hôte PowerShell.exe. Les deux autres scripts sont des scripts de niveau de l'ordinateur, avec un étant spécifique à l'hôte et l'autre étant tous-hôtes.
Vous pouvez exécuter Help about_profiles dans le shell pour en apprendre plus sur ces fichiers. Pour les hôtes de tierces parties telles que des éditeurs de script, vous devrez consulter leur documentation. Afin d'offrir le comportement conforme à l'interpréteur de commandes Microsoft, certains d'entre eux seront chargera les mêmes scripts de profil comme PowerShell.exe. D'autres auront leur propre script par hôte qu'ils recherchent, alors que d'autres vous permettent de spécifier les scripts que vous voulez charger au démarrage.
La longue et courte de celui-ci est que votre hôte va chercher ces scripts au démarrage. Le cas échéant, il les exécutera. Aucun des scripts utilisés par les hôtes Microsoft existe par défaut. En fait, le dossier Documents\WindowsPowerShell n'est pas créé par défaut, soit. Vous devez les créer si vous souhaitez les utiliser. Vous devez également activer l'exécution du script en définissant la stratégie d'exécution autre que restreint (qui est le paramètre par défaut).
Mon profil
Donc ce qui est dans mon profil ? Généralement rien, je suis un peu honte de le dire. C'est parce que j'ai tendance à faire beaucoup de choses spécifiques à Windows PowerShell — filmer des vidéos de formation, cours, écrire des articles et ainsi de suite. Ceux-ci nécessitent un complètement défaut, expérience de la coquille fraîche-out-of-the-box. Je ne veux que rien préchargé, car dans la plupart des cas je veux que les gens me passant par la loi du chargement de tout ce que j'ai besoin de voir.
Si j'étais dans un environnement de production normal, cependant, que serait mettre là ? Je voudrais commencer avec tous les modules que j'utilise tous les jours. Par exemple, je pourrais ajouter Import-Module ActiveDirectory. Je m'attends à être déconner avec Active Directory beaucoup et avoir le module préchargé aiderait.
Je ne mettrais pas toutes les fonctions personnalisées dans mon profil. Au lieu de cela, je mets ceux dans leur propre module de script et alors qu'importer dans mon profil. Qui conserve le profil plus propres et il le rend plus facile de supprimer ce module (et les fonctions qu'il contient) si je trouve qu'ils sont contradictoires avec autre chose j'ai besoin de le faire.
Je n'aurais pas perdre son temps avec la barre de titre de fenêtre Windows PowerShell, l'invite de commandes Windows PowerShell ou quoi que ce soit comme ça. Il n'y a rien de mal à le faire, mais je suis le genre de personne qui aime ces choses pour ressembler à des valeurs par défaut. J'allais le laisser leur seul. Je sais que beaucoup de gens apprécient pour peaufiner leur invite, cependant, et le profil est l'endroit pour le faire.
Je voudrais faire un seul changement :
$host.privatedata.ErrorForegroundColor = 'green'
Cela transforme les messages d'erreur du rouge au vert. Je dis aux gens que c'est parce que la couleur rouge sur noir par défaut est trop faible contraste pour faciliter la lecture. La vraie raison est qu'un écran de texte rouge me ramène à la high school de classe anglais et me stresse. Messages d'erreur vert me faire sentir comme je fais quelque chose de bon, donc je ne stressez pas tellement. Je sais, c'est bizarre — blâmer mes professeurs Ms. Giovanni et Mme. Hansen.
Je ne définissent des alias personnalisés, car je crains que je vais les utiliser. Puis je pourrais passer eux le long à quelqu'un d'autre qui n'a pas de définition pour eux, ne fonctionnerait donc quelque exemples j'ai passé le long.
Ne jetez pas un écran d'éclaboussure de couleur fantaisie à l'aide de Write-Host, et je ne pas afficher une liste des fonctions disponibles ou des modules. Je sais comment répertorier ces choses facilement assez si je dois et je n'aime pas un écran encombré quand je commence tout d'abord la coquille (je lance cls tout le temps comme il est, donc je peux sentir comme je reçois un nouveau départ). J'ai exécuter cd c:\ pour que je commence à la racine du lecteur c: en voiture, et non dans mon dossier de profil utilisateur.
C'est ce qui est dans mon profil. Ce qui est dans la vôtre ?
Don Jones est un destinataire Microsoft MVP Award et auteur de "Apprendre Windows PowerShell dans un mois de repas » (Manning Publications, 2011), un livre conçu pour aider n'importe quel administrateur devenir efficace avec Windows PowerShell. Jones propose également le publique et sur le site formation de Windows PowerShell. Vous pouvez le contacter via ConcentratedTech.com ou bit.ly/AskDon.