Der Artikel in erwähnter jehad Kommentar erklärt , dass es mehrere Orte , von denen Powershell ein Profil laden kann, das ist , was Sie wollen. Wahrscheinlich möchten Sie einen Benutzer für die normale PowerShell-Konsole. Der Pfad, unter dem PowerShell nach dieser Datei sucht, ist in der $profile
Variablen angegeben. Sie können diese Datei und das zugehörige Verzeichnis mit diesem Befehl erstellen:
New-Item $profile -Type File -Force
Es erstellt eine Datei, die Microsoft.PowerShell_profile.ps1
in einem Ordner aufgerufen wird, der sich WindowsPowerShell
unter Ihrem Ordner "Dokumente" befindet. Dann können Sie es mit einem Texteditor öffnen:
notepad $profile
Alles, was sich darin befindet, wird ausgeführt, wenn Sie die PowerShell-Konsole starten, unabhängig davon, ob Sie einen erhöhten Status haben oder nicht. In diesem anderen Artikel habe ich eine Funktion erstellt (die Sie als Cmdlet verwenden können), um zu überprüfen, ob die aktuelle PowerShell-Instanz erhöht ist. Fügen Sie dies 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 kann in Ihrer normalen PowerShell-Umgebung verwendet werden. Sie können sie jedoch auch verwenden, um nur Inhalte in Ihrem Profilskript auszuführen, wenn Sie mit erhöhten Rechten arbeiten:
If (Test-Elevated) {
echo "Be careful!"
} Else {
echo "Eh, do whatever."
}
Da diese Datei Code enthält, der auch unter einer PowerShell-Verwaltungsinstanz automatisch ausgeführt wird, möchten Sie nicht, dass Programme, die ohne Berechtigung ausgeführt werden, Schreibzugriff darauf haben. Ich empfehle, die Zugriffssteuerungsliste so zu ändern, dass nur Ihr Benutzerkonto Lesezugriff hat und Administratoren weiterhin die volle Kontrolle haben. (Die Vererbung muss zuerst deaktiviert werden.) Sie können das Skript dann nur in erweiterten Programmen bearbeiten.