[powershell] 영구 PowerShell 별칭을 만드는 방법

내가 만들 aliascmdlet내가 파워 쉘의 현재 세션을 닫은 후에 만료되지 않습니다를하자 내가이 별칭이 말 :

C:\Users\Aymen> New-Alias Goto Set-Location

이것은 완벽하게 Goto별칭을 만들지 만 현재 세션을 닫은 후에도 별칭을 사용하고 싶습니다. 어떻게 달성 할 수 있습니까?

노트 :

PowerShell 도움말 시스템은 내가 만든 별칭을 다음에 새 세션을 열 때 가져올 수 있다는 사실을 제안합니다. 실제로 내가 찾고있는 것은 아닙니다. 실제로는 계속해서 별칭을 가질 수있는 명확한 방법이 있습니까? 다른 세션을 통해 그것을 만들



답변

업데이트 됨-2017 년 1 월

profile.ps1powershell이 ​​시작될 때마다 실행될 모든 powershell 코드를 파일 에 저장할 수 있습니다. 어떤 사용자가 코드를 실행해야하는지에 따라 코드를 저장할 경로6 가지 이상 있습니다. “모든 사용자”및 “사용자 만”경로 중 두 가지만 고려할 수 있습니다.

따라서 질문에 대답 profile.ps1하려면 실행하려는 코드가 포함 된 파일 만 작성하면 됩니다.

New-Alias Goto Set-Location

올바른 경로에 저장하십시오.

  • "$Home\Documents" (C : \ Users \ yourname \ Documents) : 사용자 만 코드를 실행합니다.
  • $PsHome (C : \ Windows \ System32 \ WindowsPowerShell \ v1.0) : 모든 사용자가 코드를 실행합니다.

변경 사항을 적용하려면 열려있는 모든 Powershell 인스턴스를 닫고 다시 시작하십시오.

  • 두 경로에 profile.ps1파일이 모두 포함되어 있으면 모든 사용자 경로가 먼저 실행 된 다음 사용자마다 다릅니다.

  • 각 사용자에게 실행을 확장 할 필요가없는 경우 항상 코드를 사용자 별 프로필에 넣으십시오. 파일을 사용자 공간에 추가하기 위해 관리자 권한이 필요하지 않으며 (그렇지 않은 경우) 다른 사용자 공간을 오염시키지 않습니다.

  • 생각해 내다! $PsHome당신이 프로필 코드를 실행하는 것이 원하는 경우 모두 환경을 고려해야하므로 경로, 파워 쉘의 32 비트 및 64 비트 인스턴스 사이에 다릅니다. 일반적으로 경로는 C:\Windows\System32\WindowsPowerShell\v1.064 비트 환경과 C:\Windows\SysWow64\WindowsPowerShell\v1.032 비트 환경을 위한 것입니다.


답변

이런 종류의 것을 $env:WINDIRpowershell 폴더에 직접 추가하는 것은 좋지 않습니다 .
권장되는 방법은 개인 프로파일에 추가하는 것입니다.

cd $env:USERPROFILE\Documents
md WindowsPowerShell -ErrorAction SilentlyContinue
cd WindowsPowerShell
New-Item Microsoft.PowerShell_profile.ps1 -ItemType "file" -ErrorAction SilentlyContinue
powershell_ise.exe .\Microsoft.PowerShell_profile.ps1

이제 열린 Microsoft.PowerShell_profile.ps1 파일에 별명을 추가하십시오.

function Do-ActualThing {
    # do actual thing
}

Set-Alias MyAlias Do-ActualThing

그런 다음 저장하고 다음을 사용하여 현재 세션을 새로 고치십시오.

. $profile

참고 :
권한 문제가 발생하는 경우를 대비하여

CategoryInfo : SecurityError : (:) [], PSSecurityException + FullyQualifiedErrorId : UnauthorizedAccess

아래 명령을 시도하고 세션을 다시 새로 고치십시오.

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned


답변

2018, Windows 10

간단한 PowerShell 스크립트를 사용하여 모든 파일 또는 디렉토리에 연결할 수 있습니다.

파일 바로 가기 스크립트 작성

Windows PowerShell ISE를 엽니 다. 스크립트 창에서 다음을 작성하십시오.

New-Alias ${shortcutName} ${fullFileLocation}

그런 다음 명령 행 분할 창으로 이동하십시오. 로 PowerShell 사용자 프로필 주소를 찾으십시오 echo $profile. 이 주소에 스크립트를 저장하십시오.

여기에 이미지 설명을 입력하십시오

PowerShell의 프로필 주소에있는 스크립트는 powershell을 열 때마다 실행됩니다. 바로 가기는 모든 새 PowerShell 창에서 작동합니다.

디렉토리 바로 가기 스크립트 작성

스크립트에 다른 줄이 필요합니다.

function ${nameOfFunction} {set-location ${directory_location}}
New-Alias ${shortcut} ${nameOfFunction} 

나머지는 정확히 같습니다.

여기에 이미지 설명을 입력하십시오

PowerShell 스크립트 사용

기본적으로 PowerShell 스크립트는 차단됩니다. 이를 사용하려면 설정-> 업데이트 및 보안-> 개발자 용을여십시오. 개발자 모드를 선택하십시오 (다시 시작해야 함).
개발자 모드 선택 Windows 10.

PowerShell 섹션으로 아래로 스크롤하여 “실행 정책 변경 …”옵션을 선택하고 적용하십시오.

PowerShell 스크립트 활성화


답변

단순한. 예를 들어 …

Windows PowerShell 창을 열고 다음을 입력하십시오.

notepad $profile

그런 다음과 같은 함수를 작성하십시오.

function goSomewhereThenOpenGoogleThenDeleteSomething {
    cd C:\Users\
    Start-Process -FilePath "http://www.google.com"
    rm fileName.txt
}

그런 다음 함수 이름 아래에 이것을 입력하십시오.

Set-Alias google goSomewhereThenOpenGoogleThenDeleteSomething

이제 Windows PowerShell에 “google”이라는 단어를 입력하고 함수 내에서 코드를 실행할 수 있습니다!


답변

가능한 위치 목록에 추가하기 만하면됩니다 …

이것은 나를 위해 작동하지 않았다 :
\Users\{ME}\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

그러나 이것은했다 :
\Users\{ME}\OneDrive\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

프로파일이 없거나 설정하려는 경우 다음 명령을 실행하면 필요한 폴더 / 파일이 생성되고 어디에 있는지 알려줍니다!

New-Item -path $profile -type file -force


답변

profile1.psl 파일을 작성하려면 다음 명령을 입력하십시오.

새 항목 $ PROFILE.CurrentUserAllHosts -ItemType 파일 -Force

파일에 액세스하려면 다음 명령을 입력하십시오.

ise $ PROFILE.CurrentUserAllHosts

참고 이전에 이런 짓을하지 않은 경우, 당신은 당신이 때문에 당신이 제한 (기본값)에서 무제한으로 변경해야 사용자의 실행 정책의 스크립트를 실행할 수 없습니다 것을 볼 수 있습니다.

이렇게하려면 스크립트를 닫은 후 다음 명령을 입력하십시오.

실행 정책 설정 -Scope CurrentUser

그때:

원격 서명

그런 다음이 명령을 다시 수행하십시오.

ise $ PROFILE.CurrentUserAllHosts

마지막으로 스크립트에 별칭을 입력하고 저장하면 컴퓨터를 다시 시작한 후에도 powershell을 실행할 때마다 별칭이 실행됩니다.


답변

이것은 약간 공상이지만 … 작동합니다.

1 단계 : Powershell 프로파일 생성 :

FILE: install_profile.ps1
# THIS SCRIPT BLOWS AWAY YOUR DEFAULT POWERSHELL PROFILE SCRIPT
#   AND INSTALLS A POINTER TO A GLOBAL POWERSHELL PROFILE

$ErrorActionPreference = "Stop"

function print ([string]$msg)
{
    Write-Host -ForegroundColor Green $msg
}

print ""

# User's Powershell Profile
$psdir  = "$env:USERPROFILE\Documents\WindowsPowerShell"
$psfile = $psdir + "\Microsoft.PowerShell_profile.ps1"

print "Creating Directory: $psdir"
md $psdir -ErrorAction SilentlyContinue | out-null

# this is your auto-generated powershell profile to be installed
$content = @(
    "",
    ". ~/Documents/tools/profile.ps1",
    ""
)

print "Creating File: $psfile"
[System.IO.File]::WriteAllLines($psfile, $content)

print ""

# Make sure Powershell profile is readable
Set-ExecutionPolicy -Scope CurrentUser Unrestricted

2 단계 : 도구에서 ~ / Documents / tools / profile.ps1 :

function Do-ActualThing {
    # do actual thing
}

Set-Alias MyAlias Do-ActualThing

3 단계 :

$ Set-ExecutionPolicy -Scope CurrentUser 무제한 $. ./install_profile.ps1