web-dev-qa-db-fra.com

PowerShell a-t-il une sorte d'équivalent ?CASHRC?

J'ai quelques fonctions que je voudrais charger par défaut lorsque j'ouvre un PowerShell administratif. Y a-t-il un équivalent pour dire .bashrc ou alors .profile que je pourrais utiliser pour importer automatiquement les scripts lorsque je commence la coquille?

25
leeand00

L'article mentionné dans Commentaire de Jehad explique qu'il existe plusieurs endroits où Powershell peut charger un profil, ce que vous voulez. Vous voulez probablement l'utilisateur par utilisateur pour la console normale PowerShell. Le chemin duquel PowerShell vérifiera que ce fichier est donné dans le $profile variable. Vous pouvez créer ce fichier et son répertoire contenant avec cette commande:

New-Item $profile -Type File -Force

Cela crée un fichier appelé Microsoft.PowerShell_profile.ps1 Dans un dossier appelé WindowsPowerShell dans votre dossier Documents. Ensuite, vous pouvez l'ouvrir avec un éditeur de texte:

notepad $profile

Tout, il sera exécuté chaque fois que vous lancez la console PowerShell, que vous soyez surélevé ou non. J'ai utilisé cet autre article Pour produire une fonction (que vous pouvez utiliser comme cmdlet) pour vérifier si l'instance PowerShell actuelle est élevée. Mettez ceci dans votre nouveau fichier de profil:

Function Test-Elevated {
  $wid = [System.Security.Principal.WindowsIdentity]::GetCurrent()
  $prp = New-Object System.Security.Principal.WindowsPrincipal($wid)
  $adm = [System.Security.Principal.WindowsBuiltInRole]::Administrator
  $prp.IsInRole($adm)
}

Cette fonction peut être utilisée dans votre expérience PowerShell normale, mais vous pouvez également l'utiliser pour exécuter uniquement des éléments de votre script de profil lorsque vous êtes en cours d'exécution:

If (Test-Elevated) {
  echo "Be careful!"
} Else {
  echo "Eh, do whatever."
}

Étant donné que ce fichier contient du code qui sera automatiquement exécuté, même sous une instance administrative PowerShell, vous ne voulez pas que des programmes fonctionnant sans admission ont un accès en écriture. Je suggère de modifier son ACL pour donner uniquement à votre compte d'utilisateur Lire l'accès tout en permettant toujours les administrateurs contrôlants. (L'héritage devra être désactivé en premier.) Vous ne pourrez alors émettre que le script à partir de programmes élevés.

25
Ben N