Je veux créer un alias
un cmdlet
qui n'expirent pas après que je ferme la session en cours de Powershell, disons que j'ai cet alias:
C:\Users\Aymen> New-Alias Goto Set-Location
Cela crée parfaitement l' Goto
alias, mais je veux l'utiliser même après avoir fermé la session en cours, comment puis-je y parvenir.
Remarque:
Le système d'aide PowerShell suggère que je puisse exporter les alias que je crée et les importer la prochaine fois que j'ouvrirai une nouvelle session, en fait ce n'est pas vraiment ce que je recherche, y a-t-il un moyen clair et direct de continuer à avoir un alias après créez-le à travers différentes sessions
powershell
AymenDaoudi
la source
la source
Réponses:
MISE À JOUR - janvier 2017
Il est possible de stocker dans un
profile.ps1
fichier tout code PowerShell à exécuter à chaque démarrage de PowerShell. Il existe au moins 6 chemins différents où stocker le code en fonction de l'utilisateur qui doit l'exécuter. Nous ne pouvons en considérer que 2: les chemins «tous les utilisateurs» et «seulement votre utilisateur».Donc pour répondre à votre question il vous suffit de créer un
profile.ps1
fichier contenant le code que vous souhaitez exécuter, c'est-à-direet enregistrez-le dans le bon chemin:
"$Home\Documents"
(C: \ Users \ yourname \ Documents): seul votre utilisateur exécutera le code.$PsHome
(C: \ Windows \ System32 \ WindowsPowerShell \ v1.0): chaque utilisateur exécutera le code.Pour appliquer les modifications, fermez toutes les instances PowerShell ouvertes et redémarrez-les.
CONSEILS
Si les deux chemins contiennent un
profile.ps1
fichier, celui de tous les utilisateurs est exécuté en premier, puis les utilisateurs spécifiques.Placez toujours le code dans le profil spécifique à l'utilisateur s'il n'est pas nécessaire d'étendre son exécution à chaque utilisateur. Vous n'avez pas besoin de droits d'administrateur pour ajouter le fichier à votre espace utilisateur (sinon vous le faites) et vous ne polluez pas l'espace des autres utilisateurs.
RAPPELLES TOI! Le
$PsHome
chemin est différent entre les instances 32 bits et 64 bits de PowerShell, vous devez donc considérer les deux environnements si vous souhaitez toujours exécuter le code de profil. Habituellement, les chemins sontC:\Windows\System32\WindowsPowerShell\v1.0
pour l'environnement 64 bits etC:\Windows\SysWow64\WindowsPowerShell\v1.0
pour l' environnement 32 bits.la source
\Users\{ME}\Documents\WindowsPowerShell
, puis ajouterMicrosoft.PowerShell_profile.ps1
aucun des autres chemins ne fonctionne pour moi."$HOME\Documents\WindowsPowerShell"
et la dénominationMicrosoft.PowerShell_profile.ps1
limitent la portée aux non-ISE et à l'hôte actuel, mais ne devraient pas être une question d'autorisations (idem"$Home\Documents\profile.ps1" should apply
). Peut-être que ce n'est pas vraiment le cas, je vais essayer, merci pour l'informationNew-Item -path $profile -type file -force
cela a créé le dossier et le fichierDocuments\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
Ce n'est pas une bonne idée d'ajouter ce genre de chose directement à vos
$env:WINDIR
dossiers PowerShell.La méthode recommandée est de l'ajouter à votre profil personnel:
Ajoutez maintenant votre alias au fichier Microsoft.PowerShell_profile.ps1 qui est maintenant ouvert:
Puis enregistrez-le et actualisez la session en cours avec:
Remarque: juste au cas où, si vous obtenez un problème d'autorisation comme
Essayez la commande ci-dessous et actualisez à nouveau la session.
la source
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
. L'-Scope
option le rend un peu plus sûr.MyAlias
. Aussi, pour transmettre des arguments, utilisez@Args
, par exemplefunction gs { git status @Args }
Set-Alias
parce que j'aime nommer mes méthodes en utilisant les conventions PS appropriées avec les verbes appropriés. Mais oui, si vous n'êtes pas pointilleux, vous pouvez simplement nommer votre méthode ce que vous avez l'intention d'invoquer.2018, Windows 10
Vous pouvez créer un lien vers n'importe quel fichier ou répertoire à l'aide d'un simple script PowerShell.
Ecrire un script de raccourci de fichier
Ouvrez Windows PowerShell ISE. Dans le volet de script, écrivez:
Ensuite, dirigez-vous vers le volet de ligne de commande. Recherchez l'adresse de votre profil utilisateur PowerShell avec
echo $profile
. Enregistrez le script dans cette adresse.Le script de l'adresse de profil de PowerShell s'exécutera chaque fois que vous ouvrirez PowerShell. Le raccourci doit fonctionner avec chaque nouvelle fenêtre PowerShell.
Ecrire un script de raccourci de répertoire
Cela nécessite une autre ligne dans notre script.
Le reste est exactement le même.
Activer les scripts PowerShell
Par défaut, les scripts PowerShell sont bloqués. Pour les activer, ouvrez les paramètres -> Mise à jour et sécurité -> Pour les développeurs. Sélectionnez le mode développeur (peut nécessiter un redémarrage). .
Faites défiler jusqu'à la section PowerShell, cochez l'option «Modifier la stratégie d'exécution ...» et appliquez.
la source
echo $profile
est une astuce géniale pour vous aider à trouver le bon emplacement pour ajouter le fichier. Merci pour la réponse complèteFacile. Par exemple...
Ouvrez une fenêtre Windows PowerShell et tapez:
Créez ensuite une fonction, telle que:
Tapez ensuite ceci sous le nom de la fonction:
Vous pouvez maintenant taper le mot «google» dans Windows PowerShell et lui faire exécuter le code dans votre fonction!
la source
Juste pour ajouter à cette liste d'emplacements possibles ...
Cela n'a pas fonctionné pour moi:
\Users\{ME}\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
Cependant, cela a fait:
\Users\{ME}\OneDrive\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
Si vous n'avez pas de profil ou que vous cherchez à en créer un, exécutez la commande suivante, elle créera le dossier / les fichiers nécessaires et vous indiquera même où il réside!
New-Item -path $profile -type file -force
la source
pour créer le fichier profile1.psl, tapez la commande suivante:
nouvel-élément $ PROFILE.CurrentUserAllHosts -ItemType file -Force
pour accéder au fichier, tapez la commande suivante:
ise $ PROFILE.CurrentUserAllHosts
notez que si vous ne l'avez pas fait auparavant, vous verrez que vous ne pourrez pas exécuter le script en raison de votre stratégie d'exécution, que vous devez changer en Unrestricted de Restreint (par défaut).
pour ce faire, fermez le script, puis tapez cette commande:
Set-ExecutionPolicy -Scope CurrentUser
puis:
RemoteSigned
puis cette commande à nouveau:
ise $ PROFILE.CurrentUserAllHosts
puis enfin tapez vos alias dans le script, enregistrez-le, et ils devraient s'exécuter à chaque fois que vous exécutez PowerShell, même après le redémarrage de votre ordinateur.
la source
Set-ExecutionPolicy RemoteSigned
. N'allez pas recommanderUnrestricted
. Source: itprotoday.com/management-mobility/…C'est un peu sophistiqué ... mais ça marche:
Étape 1: Créez un profil Powershell:
Étape 2: puis dans tools ~ / Documents / tools / profile.ps1:
Étape 3:
$ Set-ExecutionPolicy -Scope CurrentUser Unrestricted $. ./install_profile.ps1
la source