Powershell에는 일종의 .bashrc에 해당하는 것이 있습니까?

Powershell에는 일종의 .bashrc에 해당하는 것이 있습니까?

관리 Powershell을 열 때 기본적으로 로드하고 싶은 기능이 몇 가지 있습니다. 쉘을 시작할 때 스크립트를 자동으로 가져오는 데 사용할 수 있는 것과 .bashrc동등한 것이 있습니까 ?.profile

답변1

기사에서 언급된제하드의 코멘트PowerShell이 ​​원하는 대로 프로필을 로드할 수 있는 여러 위치가 있다고 설명합니다. 일반 PowerShell 콘솔에 대해 사용자별 항목을 원할 수도 있습니다. PowerShell이 ​​해당 파일을 확인하는 경로는 변수에 제공됩니다 $profile. 다음 명령을 사용하여 해당 파일과 해당 파일이 포함된 디렉터리를 만들 수 있습니다.

New-Item $profile -Type File -Force

Documents 폴더 아래에 Microsoft.PowerShell_profile.ps1있는 폴더에 파일이 생성됩니다 . WindowsPowerShell그런 다음 텍스트 편집기로 열 수 있습니다.

notepad $profile

권한 상승 여부에 관계없이 PowerShell 콘솔을 시작할 때마다 여기에 포함된 모든 항목이 실행됩니다. 나는 사용했다이 다른 기사현재 PowerShell 인스턴스가 승격되었는지 확인하는 함수(cmdlet으로 사용할 수 있음)를 생성합니다. 이것을 새 프로필 파일에 넣으세요:

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을 변경하는 것이 좋습니다. (먼저 상속을 비활성화해야 합니다.) 그러면 상위 프로그램에서만 스크립트를 편집할 수 있습니다.

관련 정보