Powershell 是否有任何 .bashrc 等效項?

Powershell 是否有任何 .bashrc 等效項?

當我打開管理 powershell 時,我想預設載入一些功能。是否有任何等效的說法.bashrc.profile我可以用來在啟動 shell 時自動導入腳本?

答案1

文章中提到的傑哈德的評論解釋說 PowerShell 可以從多個位置載入設定文件,這正是您想要的。您可能需要針對普通 PowerShell 控制台的每個使用者控制台。 PowerShell 檢查該檔案的路徑在$profile變數中給出。您可以使用以下命令建立該檔案及其包含目錄:

New-Item $profile -Type File -Force

它會在「文件」資料夾下的Microsoft.PowerShell_profile.ps1資料夾中建立一個名為的檔案。WindowsPowerShell然後你可以用文字編輯器打開它:

notepad $profile

每當您啟動 PowerShell 控制台時,無論您是否獲得提升權限,其中的所有內容都會運作。我用了另一篇文章產生函數(您可以將其用作 cmdlet)來檢查目前 PowerShell 實例是否已提升。將其放入新的設定檔中:

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

該函數可以在您正常的 PowerShell 體驗中使用,但您也可以使用它僅在執行提升時執行設定檔腳本中的內容:

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

由於此檔案包含即使在管理 PowerShell 實例下也會自動執行的程式碼,因此您不希望未提升執行的程式對其具有寫入存取權限。我建議更改其 ACL,僅授予您的使用者帳戶讀取存取權限,同時仍允許管理員完全控制。 (必須先停用繼承。)然後您將只能從提升的程式編輯腳本。

相關內容