Gibt es für Powershell eine Art .bashrc-Äquivalent?

Gibt es für Powershell eine Art .bashrc-Äquivalent?

Ich habe einige Funktionen, die ich standardmäßig laden möchte, wenn ich eine administrative Powershell öffne. Gibt es eine entsprechende Funktion .bashrc, .profiledie ich verwenden könnte, um die Skripte automatisch zu importieren, wenn ich die Shell starte?

Antwort1

Der Artikelerwähnt inJehads Kommentarerklärt, dass es mehrere Orte gibt, von denen PowerShell ein Profil laden kann, was Sie wollen. Sie wollen wahrscheinlich das benutzerspezifische Profil für die normale PowerShell-Konsole. Der Pfad, in dem PowerShell nach dieser Datei sucht, ist in der $profileVariable angegeben. Sie können diese Datei und das darin enthaltene Verzeichnis mit diesem Befehl erstellen:

New-Item $profile -Type File -Force

Es wird eine Datei mit dem Namen Microsoft.PowerShell_profile.ps1in einem Ordner namens WindowsPowerShell„Dokumente“ erstellt. Anschließend können Sie sie mit einem Texteditor öffnen:

notepad $profile

Alles darin wird ausgeführt, wenn Sie die PowerShell-Konsole starten, unabhängig davon, ob Sie erhöhte Rechte haben oder nicht. Ich habedieser andere Artikelum eine Funktion zu erstellen (die Sie als Cmdlet verwenden können), mit der Sie prüfen können, ob die aktuelle PowerShell-Instanz erhöht ist. Fügen Sie Folgendes in Ihre neue Profildatei ein:

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)
}

Diese Funktion lässt sich in Ihrer normalen PowerShell-Umgebung verwenden. Sie können damit aber auch Dinge in Ihrem Profilskript nur ausführen, wenn Sie erhöhte Rechte haben:

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

Da diese Datei Code enthält, der auch unter einer administrativen PowerShell-Instanz automatisch ausgeführt wird, sollten Programme, die ohne erhöhte Rechte ausgeführt werden, keinen Schreibzugriff darauf haben. Ich schlage vor, die ACL so zu ändern, dass Ihr Benutzerkonto nur Lesezugriff hat, Administratoren aber weiterhin die volle Kontrolle haben. (Die Vererbung muss zuerst deaktiviert werden.) Sie können das Skript dann nur von Programmen mit erhöhten Rechten aus bearbeiten.

verwandte Informationen