Powershell'in herhangi bir .bashrc eşdeğeri var mı?


22

Yönetimsel bir powershell açtığımda varsayılan olarak yüklemek istediğim bazı işlevler var. Söylenecek herhangi bir eşdeğer var mı .bashrcveya .profilekabuğu başlattığımda komut dosyalarını otomatik olarak almak için kullanabileceğim bir şey var mı?



Evet, Powershell'de buna açıkça "profil" denir.
Kök

Yanıtlar:


23

Jehad'ın yorumunda bahsedilen makale , PowerShell'in bir profil yükleyebileceği birkaç yer olduğunu açıklıyor; Muhtemelen normal PowerShell konsolu için kullanıcı başına bir tane istiyorsunuz. PowerShell'in bu dosyayı kontrol edeceği yol, $profiledeğişkende verilir . Bu dosyayı ve içerdiği dizini şu komutla oluşturabilirsiniz:

New-Item $profile -Type File -Force

Belgeler klasörünüzün Microsoft.PowerShell_profile.ps1adı verilen bir klasörde adlandırılan bir dosya oluşturur WindowsPowerShell. Ardından bir metin düzenleyicisiyle açabilirsiniz:

notepad $profile

Yükseltilmiş olsun ya da olmasın, PowerShell konsolunu her başlattığınızda içindeki her şey çalıştırılacaktır. Kullandığım bu diğer yazı akımı PowerShell örneği yükselmiş olup olmadığını kontrol etmek (bir cmdlet'indeki olarak kullanabilirsiniz) bir işlev üretmek. Bunu yeni profil dosyanıza koyun:

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

Bu işlev normal PowerShell deneyiminizde kullanılabilir, ancak bunu yalnızca yükseltilmiş çalıştırdığınızda profil komut dosyanızdaki öğeleri çalıştırmak için de kullanabilirsiniz:

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

Bu dosya, bir yönetimsel PowerShell örneği altında bile otomatik olarak çalıştırılacak kod içerdiğinden, seçili olmayan programların yazma erişimine sahip olmasını istemezsiniz. Yöneticilerinin tam kontrolüne izin verirken kullanıcı hesabınıza yalnızca okuma erişimi sağlamak için EKL'sini değiştirmenizi öneririz. (Önce devralma devre dışı bırakılacaktır.) Daha sonra komut dosyasını yalnızca yükseltilmiş programlardan düzenleyebilirsiniz.


3
Bu uzun isim Microsoft.PowerShell_profile.ps1adil olarak değiştirilebilir profile.ps1mi? İlk makalede şu şekilde görünüyor$Home\[My ]Documents\WindowsPowerShell\Profile.ps1
nephewtom
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.