Artikel yang disebutkan dalam komentar jehad menjelaskan bahwa ada beberapa tempat dari mana PowerShell dapat memuat profil, yang merupakan apa yang Anda inginkan. Anda mungkin menginginkan yang per-pengguna untuk konsol PowerShell normal. Jalur di mana PowerShell akan memeriksa file itu diberikan dalam $profile
variabel. Anda dapat membuat file itu dan direktori yang berisi dengan perintah ini:
New-Item $profile -Type File -Force
Itu menciptakan file yang disebut Microsoft.PowerShell_profile.ps1
di folder yang disebut di WindowsPowerShell
bawah folder Dokumen Anda. Kemudian Anda dapat membukanya dengan editor teks:
notepad $profile
Semua yang ada di dalamnya akan dijalankan setiap kali Anda meluncurkan konsol PowerShell, tidak peduli apakah Anda naik atau tidak. Saya menggunakan artikel lain ini untuk menghasilkan fungsi (yang dapat Anda gunakan sebagai cmdlet) untuk memeriksa apakah instance PowerShell saat ini meningkat. Masukkan ini ke file profil baru Anda:
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)
}
Fungsi itu dapat digunakan dalam pengalaman PowerShell normal Anda, tetapi Anda juga dapat menggunakannya untuk hanya menjalankan hal-hal di skrip profil Anda saat Anda menjalankan peningkatan:
If (Test-Elevated) {
echo "Be careful!"
} Else {
echo "Eh, do whatever."
}
Karena file ini berisi kode yang akan dijalankan secara otomatis bahkan di bawah contoh PowerShell administratif, Anda tidak ingin program yang berjalan tidak diinginkan memiliki akses tulis ke sana. Saya sarankan mengubah ACL-nya hanya untuk memberikan akses membaca akun pengguna Anda sementara masih memungkinkan administrator kontrol penuh. (Warisan harus dinonaktifkan terlebih dahulu.) Anda kemudian hanya dapat mengedit skrip dari program yang ditingkatkan.