Apakah Powershell memiliki sejenis .bashrc?


22

Saya memiliki beberapa fungsi yang saya ingin memuat secara default ketika saya membuka PowerShell administratif. Apakah ada yang setara dengan mengatakan .bashrcatau .profileyang bisa saya gunakan untuk mengimpor skrip secara otomatis ketika saya memulai shell?



Ya, di Powershell itu biasa disebut "profil".
root

Jawaban:


23

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 $profilevariabel. 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.ps1di folder yang disebut di WindowsPowerShellbawah 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.


3
Bisakah nama panjang Microsoft.PowerShell_profile.ps1itu diubah menjadi adil profile.ps1? Dalam artikel pertama muncul sebagai$Home\[My ]Documents\WindowsPowerShell\Profile.ps1
nephewtom
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.