Pour une raison inconnue, les développeurs ont inclus "curl" comme alias de Invoke-WebRequest
même s'il n'est pas compatible avec l'implémentation correcte de curl, ce qui signifie qu'il se met en travers du chemin lorsque j'essaie de faire une requête curl. Je peux supprimer l'alias en utilisant Remove-Item alias:curl
mais la prochaine fois que je lance Powershell, l'alias est revenu. Existe-t-il un moyen de le supprimer définitivement sans avoir à exécuter un script à chaque démarrage ?
Réponses
Trop de publicités?Sautez cette étape si vous avez déjà un profil Powershell :
New-Item $profile -force -itemtype file
Puis modifiez votre profil :
notepad $profile
Ajoutez-y la ligne suivante :
remove-item alias:curl
Enregistrez, fermez le bloc-notes et rechargez le profil avec la commande ci-dessous ou fermez et ouvrez Powershell pour appliquer le profil :
. $profile
Ajouter Remove-Item alias:cur
à powershell autorun script
au-dessus de XP, 2003 :
%ALLUSERSPROFILE%\Documents\Msh\profile.msh
%ALLUSERSPROFILE%\Documents\Msh\Microsoft.Management.Automation.msh_profile.msh
XP, 2003 :
%USERPROFILE%\My Documents\msh\profile.msh
%USERPROFILE%\My Documents\msh\Microsoft.Management.Automation.msh_profile.msh
Existe-t-il un moyen de le supprimer définitivement sans avoir à exécuter un script à chaque démarrage ?
Techniquement, non. Cependant, vous pouvez utiliser les profils PowerShell intégrés, qui exécutent un script chaque fois que vous chargez PowerShell, pour le faire à votre place. Mais, au moins, ce n'est pas manuel.
C'est (une partie) de ce que j'ai ajouté à mes $profile.AllUsersAllHosts
fichier. Il est similaire à La réponse de megamorf mais légèrement plus étendu.
Remove-Item alias:curl
Set-Alias curl "${env:SystemRoot}\System32\curl.exe"
Set-Alias wcurl Invoke-WebRequest
Vous pouvez le faire avec l'une des les 6 fichiers de profil Powershell Mais je suis le seul à utiliser mon bureau, et je ne vois pas d'inconvénient à le changer un peu. Si ce n'est pas le cas, alors allez avec un autre avec une portée plus petite. Le $Profile par défaut est CurrentUserCurrentHost, donc ça ne peut pas faire de mal, je vais faire le reste avec ça en tête, remplacez juste le code pour celui que vous changez.
Ouvrez un terminal PowerShell, en tant qu'administrateur si vous le pouvez, mais je suis presque certain que la valeur par défaut, CurrentUSerCurrentHost, ne nécessite pas de privilèges d'administrateur.
Alors cours :
if (!(Test-Path -Path $profile.currentusercurrenthost)) {
New-Item -ItemType File -Path $profile.currentusercurrenthost -Force
}
Ensuite, exécutez notepad $profile.currentusercurrenthost
Il vérifiera si le fichier existe, et s'il n'existe pas, il le créera. Puis la deuxième commande l'ouvrira avec le bloc-notes.
Note : Si vous avez installé VSCode ou Notepad++, vous pouvez l'ouvrir avec VSCode en tapant code $profile.currentusercurrenthost
au lieu de notepad
. Pour notepad++, exécutez la commande Set-Alias npp "${Env:ProgramFiles}\Notepad++\notepad++.exe"
a temporairement créer un alias pour Notepad++. De cette façon, vous pouvez simplement taper npp $profile.currentusercurrenthost
et il s'ouvrira dans notepad++. C'est similaire avec d'autres éditeurs de fichiers. Vous pouvez également ajouter cette option à votre profil si vous souhaitez qu'elle soit permanente.
Ensuite, ajoutez les lignes comme vous le souhaitez, bien que cette première ligne doit être le premier.Remove-Item alias:curl
va simplement supprimer l'alias existant que curl a pour Invoke-WebRequest à chaque fois que vous ouvrez une invite powershell. Set-Alias curl "${env:SystemRoot}\System32\curl.exe"
définit curl comme un alias pour curl.exe qui est le réel cURL. Il est inclus dans Windows 10 Build 17063 et plus.
J'ai également choisi d'ajouter un alias pour l'Invoke-WebRequest original, en l'appelant wcurl, avec Set-Alias wcurl Invoke-WebRequest
car il peut y avoir des situations où je veux l'utiliser, et où je ne veux pas taper la longue chaîne ici.
Donc, dans l'ordre, c'est-à-dire :
Remove-Item alias:curl
Set-Alias curl "${env:SystemRoot}\System32\curl.exe"
Set-Alias wcurl Invoke-WebRequest
Set-Alias npp "${Env:ProgramFiles}\Notepad++\notepad++.exe"
Tout ce qui suit le #1 est optionnel, et l'ordre après le #1 n'a pas d'importance, mais le #1 doit être avant le #2, ou toute tentative de créer un alias nommé curl.
S'il s'agit d'un tout nouveau profil, il sera vide à l'ouverture, et vous pourrez les ajouter (dans l'ordre) si vous le souhaitez ou non. S'il n'est pas vierge, je vous recommande de les ajouter vers la fin, voire à la fin. Personnellement, mon $Profile se termine par
cls
pwsh -v
qui efface l'écran des diverses opérations qu'il effectue au démarrage, et affiche la version de PowerShell.