New-PSSession

로컬 또는 원격 컴퓨터에 대한 영구 연결을 만듭니다.

Syntax

New-PSSession
   [[-ComputerName] <String[]>]
   [-Credential <PSCredential>]
   [-Name <String[]>]
   [-EnableNetworkAccess]
   [-ConfigurationName <String>]
   [-Port <Int32>]
   [-UseSSL]
   [-ApplicationName <String>]
   [-ThrottleLimit <Int32>]
   [-SessionOption <PSSessionOption>]
   [-Authentication <AuthenticationMechanism>]
   [-CertificateThumbprint <String>]
   [<CommonParameters>]
New-PSSession
   [-Credential <PSCredential>]
   [-Name <String[]>]
   [-EnableNetworkAccess]
   [-ConfigurationName <String>]
   [-ThrottleLimit <Int32>]
   [-ConnectionUri] <Uri[]>
   [-AllowRedirection]
   [-SessionOption <PSSessionOption>]
   [-Authentication <AuthenticationMechanism>]
   [-CertificateThumbprint <String>]
   [<CommonParameters>]
New-PSSession
   -Credential <PSCredential>
   [-Name <String[]>]
   [-ConfigurationName <String>]
   [-VMId] <Guid[]>
   [-ThrottleLimit <Int32>]
   [<CommonParameters>]
New-PSSession
   -Credential <PSCredential>
   [-Name <String[]>]
   [-ConfigurationName <String>]
   -VMName <String[]>
   [-ThrottleLimit <Int32>]
   [<CommonParameters>]
New-PSSession
   [[-Session] <PSSession[]>]
   [-Name <String[]>]
   [-EnableNetworkAccess]
   [-ThrottleLimit <Int32>]
   [<CommonParameters>]
New-PSSession
   [-Name <String[]>]
   [-ConfigurationName <String>]
   -ContainerId <String[]>
   [-RunAsAdministrator]
   [-ThrottleLimit <Int32>]
   [<CommonParameters>]
New-PSSession
   [-Name <String[]>]
   [-UseWindowsPowerShell]
   [<CommonParameters>]
New-PSSession
   [-Name <String[]>]
   [-Port <Int32>]
   [-HostName] <String[]>
   [-UserName <String>]
   [-KeyFilePath <String>]
   [-Subsystem <String>]
   [-ConnectingTimeout <Int32>]
   [-SSHTransport]
   [-Options <Hashtable>]
   [<CommonParameters>]
New-PSSession
   [-Name <String[]>]
   -SSHConnection <Hashtable[]>
   [<CommonParameters>]

Description

이 cmdlet은 New-PSSession 로컬 또는 원격 컴퓨터에 PowerShell 세션(PSSession)을 만듭니다. PSSession만들 때 PowerShell은 원격 컴퓨터에 대한 영구 연결을 설정합니다.

PSSession사용하여 함수 또는 변수 값과 같은 데이터를 공유하는 여러 명령을 실행합니다. PSSession에서 명령을 실행하려면 cmdlet을 Invoke-Command 사용합니다. PSSession사용하여 원격 컴퓨터와 직접 상호 작용하려면 cmdlet을 Enter-PSSession 사용합니다. 자세한 내용은 about_PSSessions 참조하세요.

ComputerName 매개 변수 Enter-PSSession 를 사용하여 PSSession 을 만들지 않고 원격 컴퓨터에서 명령을 실행할 수 있습니다Invoke-Command. ComputerName 매개 변수를 사용하는 경우 PowerShell은 명령에 사용되는 임시 연결을 만든 다음 닫힙니다.

PowerShell 6.0부터 SSH(Secure Shell)를 사용하여 로컬 컴퓨터에서 SSH를 사용할 수 있고 원격 컴퓨터가 PowerShell SSH 엔드포인트로 구성된 경우 원격 컴퓨터에 대한 연결을 설정하고 세션을 만들 수 있습니다. SSH 기반 PowerShell 원격 세션의 이점은 여러 플랫폼(Windows, Linux, macOS)에서 작동할 수 있다는 것입니다. SSH 기반 세션의 경우 호스트 이름 또는 SSH커넥트ion 매개 변수 집합을 사용하여 원격 컴퓨터 및 관련 연결 정보를 지정합니다. PowerShell SSH 원격을 설정하는 방법에 대한 자세한 내용은 SSH를 통해 PowerShell 원격을 참조하세요.

참고 항목

서버 인증서를 신뢰할 수 없는 HTTPS 엔드포인트가 있는 Linux 또는 macOS 클라이언트에서 WSMan 원격을 사용하는 경우(예: 자체 서명된 인증서) 연결을 성공적으로 설정하려면 SkipCACheckSkipCNCheck 값을 $true 포함하는 PSSessionOption을 제공해야 합니다. 서버 인증서 및 대상 시스템에 대한 네트워크 연결을 확신할 수 있는 환경에 있는 경우에만 이 작업을 수행합니다.

예제

예제 1: 로컬 컴퓨터에서 세션 만들기

$s = New-PSSession

이 명령은 로컬 컴퓨터에 새 PSSession을 만들고 PSSession을 변수에 $s 저장합니다.

이제 이 PSSession 을 사용하여 로컬 컴퓨터에서 명령을 실행할 수 있습니다.

예제 2: 원격 컴퓨터에서 세션 만들기

$Server01 = New-PSSession -ComputerName Server01

이 명령은 Server01 컴퓨터에 새 PSSession 을 만들고 변수에 $Server01 저장합니다.

여러 PSSession 개체를 만들 때 유용한 이름을 가진 변수에 할당합니다. 이렇게 하면 후속 명령에서 PSSession 개체를 관리하는 데 도움이 됩니다.

예제 3: 여러 컴퓨터에서 세션 만들기

$s1, $s2, $s3 = New-PSSession -ComputerName Server01,Server02,Server03

이 명령은 ComputerName 매개 변수로 지정된 각 컴퓨터에 하나씩 세 개의 PSSession 개체를 만듭니다.

이 명령은 대입 연산자(=)를 사용하여 변수에 새 PSSession 개체를 할당합니다. $s3$s1$s2 Server01 PSSession, $s1Server02 PSSession$s2할당하고 Server03 PSSession$s3에 할당합니다.

일련의 변수에 여러 개체를 할당하는 경우 PowerShell은 각 개체를 계열의 변수에 각각 할당합니다. 변수보다 많은 개체가 있는 경우 모든 재기본 개체가 마지막 변수에 할당됩니다. 개체보다 더 많은 변수가 있는 경우 다시 기본 변수는 비어 있습니다($null).

예제 4: 지정된 포트를 사용하여 세션 만들기

New-PSSession -ComputerName Server01 -Port 8081 -UseSSL -ConfigurationName E12

이 명령은 서버 포트 8081 에 연결하고 SSL 프로토콜을 사용하는 Server01 컴퓨터에 새 PSSession을 만듭니다. 새 PSSession 은 라는 E12대체 세션 구성을 사용합니다.

포트를 설정하기 전에 포트 8081에서 수신 대기하도록 원격 컴퓨터에서 WinRM 수신기를 구성해야 합니다. 자세한 내용은 포트 매개 변수에 대한 설명을 참조하세요.

예제 5: 기존 세션을 기반으로 세션 만들기

New-PSSession -Session $s -Credential Domain01\User01

이 명령은 기존 PSSession과 동일한 속성을 사용하여 PSSession만듭니다. 기존 PSSession 의 리소스가 소진되고 일부 수요를 오프로드하기 위해 새 PSSession 이 필요한 경우 이 명령 형식을 사용할 수 있습니다.

이 명령은 Session 매개 변수 New-PSSession 를 사용하여 변수에 저장된 PSSession$s 지정합니다. 사용자의 자격 증명을 Domain1\Admin01 사용하여 명령을 완료합니다.

예제 6: 다른 방법으로 전역 범위를 사용하여 세션을 만듭니다기본

$global:s = New-PSSession -ComputerName Server1.Domain44.Corpnet.Fabrikam.com -Credential Domain01\Admin01

이 예제에서는 다른 기본 컴퓨터에서 전역 범위로 PSSession을 만드는 방법을 보여 줍니다.

기본적으로 명령줄에서 만든 PSSession 개체는 로컬 범위로 만들어지고 스크립트에서 만든 PSSession 개체에는 스크립트 범위가 있습니다.

전역 범위를 사용하여 PSSession을 만들려면 새 PSSession을 만든 다음 PSSession을 전역 범위로 캐스팅되는 변수에 저장합니다. 이 경우 변수는 $s 전역 범위로 캐스팅됩니다.

이 명령은 ComputerName 매개 변수를 사용하여 원격 컴퓨터를 지정합니다. 컴퓨터가 사용자 계정과 다른 기본 컴퓨터의 전체 이름은 사용자의 자격 증명과 함께 지정됩니다.

예제 7: 여러 컴퓨터에 대한 세션 만들기

$rs = Get-Content C:\Test\Servers.txt | New-PSSession -ThrottleLimit 50

이 명령은 파일에 나열된 200대 컴퓨터 각각에 PSSessionServers.txt 만들고 결과 PSSession변수에 $rs 저장합니다. PSSession 개체의 제한은 .입니다50.

컴퓨터 이름이 데이터베이스, 스프레드시트, 텍스트 파일 또는 기타 텍스트 변환 가능한 형식에 저장될 때 이 명령 형식을 사용할 수 있습니다.

예제 8: URI를 사용하여 세션 만들기

$s = New-PSSession -URI http://Server01:91/NewSession -Credential Domain01\User01

이 명령은 Server01 컴퓨터에 PSSession을 만들고 변수에 $s 저장합니다. URI 매개 변수를 사용하여 전송 프로토콜, 원격 컴퓨터, 포트 및 대체 세션 구성을 지정합니다. 또한 자격 증명 매개 변수를 사용하여 원격 컴퓨터에서 세션을 만들 수 있는 권한이 있는 사용자 계정을 지정합니다.

예제 9: 세션 집합에서 백그라운드 작업 실행

$s = New-PSSession -ComputerName (Get-Content Servers.txt) -Credential Domain01\Admin01 -ThrottleLimit 16
Invoke-Command -Session $s -ScriptBlock {Get-Process PowerShell} -AsJob

이러한 명령은 PSSession 개체 집합을 만든 다음 각 PSSession 개체에서 백그라운드 작업을 실행합니다.

첫 번째 명령은 파일에 나열된 각 컴퓨터에 새 PSSessionServers.txt 만듭니다. cmdlet을 New-PSSession 사용하여 PSSession만듭니다. ComputerName 매개 변수의 값은 cmdlet을 Get-Content 사용하여 파일의 컴퓨터 이름 Servers.txt 목록을 가져오는 명령입니다.

이 명령은 Credential 매개 변수를 사용하여 do기본 관리자의 권한이 있는 PSSession 개체를 만들고 ThrottleLimit 매개 변수를 사용하여 명령을 동시 연결로 16 제한합니다. 이 명령은 PSSession 개체를 변수에 $s 저장합니다.

두 번째 명령은 cmdlet의 AsJob 매개 변수를 사용하여 각 PSSession 개체에서 명령을 실행하는 Get-Process PowerShell 백그라운드 작업을 시작합니다$s.Invoke-Command

PowerShell 백그라운드 작업에 대한 자세한 내용은 about_Jobsabout_Remote_Jobs 참조하세요.

예제 10: URI를 사용하여 컴퓨터에 대한 세션 만들기

New-PSSession -ConnectionURI https://management.exchangelabs.com/Management

이 명령은 컴퓨터 이름 대신 URI로 지정된 컴퓨터에 연결하는 PSSession 개체를 만듭니다.

예제 11: 세션 옵션 만들기

$so = New-PSSessionOption -SkipCACheck
New-PSSession -ConnectionUri https://management.exchangelabs.com/Management -SessionOption $so -Credential Server01\Admin01

이 예제에서는 세션 옵션 개체를 만들고 SessionOption 매개 변수를 사용하는 방법을 보여 줍니다.

첫 번째 명령은 cmdlet을 New-PSSessionOption 사용하여 세션 옵션을 만듭니다. 결과 SessionOption 개체를 변수에 $so 저장합니다.

두 번째 명령은 새 세션의 옵션을 사용합니다. 이 명령은 cmdlet을 New-PSSession 사용하여 새 세션을 만듭니다. SessionOption 매개 변수의 값은 변수의 SessionOption 개체 $so 입니다.

예제 12: SSH를 사용하여 세션 만들기

New-PSSession -HostName UserA@LinuxServer01

이 예제에서는 SSH(Secure Shell)를 사용하여 새 PSSession 을 만드는 방법을 보여 줍니다. 원격 컴퓨터에서 암호를 묻는 메시지를 표시하도록 SSH가 구성된 경우 암호 프롬프트가 표시됩니다. 그렇지 않으면 SSH 키 기반 사용자 인증을 사용해야 합니다.

예제 13: SSH를 사용하여 세션 만들기 및 포트 및 사용자 인증 키 지정

New-PSSession -HostName UserA@LinuxServer01:22 -KeyFilePath c:\<path>\userAKey_rsa

이 예제에서는 SSH(Secure Shell)를 사용하여 PSSession을 만드는 방법을 보여 줍니다. 포트 매개 변수를 사용하여 사용할 포트를 지정하고 KeyFilePath 매개 변수를 사용하여 원격 컴퓨터에서 사용자를 식별하고 인증하는 데 사용되는 RSA 키를 지정합니다.

예제 14: SSH를 사용하여 여러 세션 만들기

$sshConnections = @(
    @{
          HostName    = 'WinServer1'
          UserName    = 'domain\userA'
          KeyFilePath = 'c:\users\UserA\id_rsa'
    }
    @{
        HostName    = 'UserB@LinuxServer5'
        KeyFilePath = 'c:\UserB\<path>\id_rsa'
    }
)
New-PSSession -SSHConnection $sshConnections

이 예제에서는 SSH(Secure Shell) 및 SSH커넥트ion 매개 변수 집합을 사용하여 여러 세션을 만드는 방법을 보여 줍니다. SSH커넥트ion 매개 변수는 각 세션에 대한 연결 정보를 포함하는 해시 테이블 배열을 사용합니다. 이 예제에서는 대상 원격 컴퓨터가 키 기반 사용자 인증을 지원하도록 SSH를 구성해야 합니다.

예제 15: SSH 옵션을 사용하여 새 세션 만들기

$options = @{
    Port=22
    User = 'UserB'
    Host = 'LinuxServer5'
}
New-PSSession -KeyFilePath '/Users/UserB/id_rsa' -Options $options

이 예제에서는 SSH 옵션을 사용하여 원격 Linux 기반 컴퓨터에 새 SSH 기반 세션을 만드는 방법을 보여 줍니다. Options 매개 변수는 원격 시스템에 대한 연결을 설정한 기본 ssh 명령에 옵션으로 전달되는 값의 해시 테이블을 사용합니다.

매개 변수

-AllowRedirection

이 cmdlet은 이 연결을 대체 URI(Uniform Resource Identifier)로 리디렉션할 수 있음을 나타냅니다.

커넥트ionURI 매개 변수를 사용하는 경우 원격 대상은 다른 URI로 리디렉션하는 명령을 반환할 수 있습니다. 기본적으로 PowerShell은 연결을 리디렉션하지 않지만 이 매개 변수를 사용하여 연결을 리디렉션할 수 있습니다.

최대커넥트ionRedirectionCount 세션 옵션 값을 변경하여 연결이 리디렉션되는 횟수를 제한할 수도 있습니다. cmdlet의 New-PSSessionOption MaximumRedirection 매개 변수를 사용하거나 $PSSessionOption 기본 설정 변수의 Maximum커넥트ionRedirectionCount 속성을 설정합니다. 기본값은 5입니다.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ApplicationName

연결 URI의 애플리케이션 이름 세그먼트를 지정합니다. 명령에서 커넥트ionURI 매개 변수를 사용하지 않을 때 이 매개 변수를 사용하여 애플리케이션 이름을 지정합니다.

기본값은 로컬 컴퓨터의 $PSSessionApplicationName 기본 설정 변수 값입니다. 이 기본 설정 변수가 정의되지 않은 경우 기본값은 .입니다 WSMAN. 이 값은 대부분의 사용에 적합합니다. 자세한 내용은 about_Preference_Variables 참조하세요.

WinRM 서비스는 애플리케이션 이름을 사용하여 연결 요청을 서비스할 수신기를 선택합니다. 이 매개 변수의 값은 원격 컴퓨터에서 수신기의 URLPrefix 속성 값과 일치해야 합니다.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Authentication

사용자의 자격 증명을 인증하는 데 사용되는 메커니즘을 지정합니다. 이 매개 변수에 허용되는 값은 다음과 같습니다.

  • Default
  • Basic
  • Credssp
  • Digest
  • Kerberos
  • Negotiate
  • NegotiateWithImplicitCredential

기본값은 Default입니다.

이 매개 변수의 값에 대한 자세한 내용은 AuthenticationMechanism 열거형을 참조 하세요.

주의

인증할 원격 컴퓨터에 사용자 자격 증명이 전달되는 CredSSP(자격 증명 보안 지원 공급자) 인증은 원격 네트워크 공유 액세스와 같이 둘 이상의 리소스에 대한 인증이 필요한 명령을 위해 설계되었습니다. 이 메커니즘은 원격 작업의 보안 위험을 높입니다. 원격 컴퓨터가 손상된 경우 이 컴퓨터로 전달된 자격 증명을 사용하여 네트워크 세션을 제어할 수 있습니다.

Type:AuthenticationMechanism
Accepted values:Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CertificateThumbprint

이 작업을 수행할 수 있는 권한이 있는 사용자 계정의 디지털 공개 키 인증서(X509)를 지정합니다. 인증서의 인증서 지문을 입력합니다.

인증서는 클라이언트 인증서 기반 인증에 사용됩니다. 로컬 사용자 계정에만 매핑할 수 있습니다. do기본 계정으로는 작동하지 않습니다.

인증서를 얻으려면 PowerShell Cert: 드라이브에서 또는 Get-ChildItem 명령을 사용합니다Get-Item.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ComputerName

컴퓨터 이름의 배열을 지정합니다. 이 cmdlet은 지정된 컴퓨터에 대한 영구 연결(PSSession)을 만듭니다. 여러 컴퓨터 이름을 New-PSSession 입력하는 경우 각 컴퓨터에 대해 하나씩 여러 PSSession 개체를 만듭니다. 기본값은 로컬 컴퓨터입니다.

하나 이상의 원격 컴퓨터의 NetBIOS 이름, IP 주소 또는 정규화된 do기본 이름을 입력합니다. 로컬 컴퓨터를 지정하려면 컴퓨터 이름 localhost또는 점(.)을 입력합니다. 컴퓨터가 사용자와 다른 do기본인 경우 정규화된 do기본 이름이 필요합니다. 컴퓨터 이름을 따옴표로 묶어 파이프할 New-PSSession수도 있습니다.

ComputerName 매개 변수 값에 IP 주소를 사용하려면 명령에 자격 증명 매개 변수가 포함되어야 합니다. 또한 HTTPS 전송을 위해 컴퓨터를 구성해야 하거나 원격 컴퓨터의 IP 주소를 로컬 컴퓨터의 WinRM TrustedHosts 목록에 포함해야 합니다. 컴퓨터 이름을 TrustedHosts 목록에 추가하는 방법에 대한 지침은 about_Remote_Troubleshooting의 "신뢰할 수 있는 호스트 목록에 컴퓨터를 추가하는 방법"을 참조하세요.

ComputerName 매개 변수 값에 로컬 컴퓨터를 포함하려면 관리자 권한으로 실행 옵션을 사용하여 Windows PowerShell을 시작합니다.

Type:String[]
Aliases:Cn
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-ConfigurationName

PSSession에 사용되는 세션 구성을 지정합니다.

세션 구성에 대한 구성 이름 또는 정규화된 리소스 URI를 입력합니다. 구성 이름만 지정하면 다음 스키마 URI가 앞에 추가됩니다 http://schemas.microsoft.com/PowerShell.

세션에 대한 세션 구성은 원격 컴퓨터에 있습니다. 지정된 세션 구성이 원격 컴퓨터에 없으면 명령이 실패합니다.

기본값은 로컬 컴퓨터의 $PSSessionConfigurationName 기본 설정 변수 값입니다. 이 기본 설정 변수가 설정되지 않은 경우 기본값은 .입니다 Microsoft.PowerShell. 자세한 내용은 about_Preference_Variables 참조하세요.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-ConnectingTimeout

초기 SSH 연결을 완료하는 데 허용되는 시간(밀리초)을 지정합니다. 지정된 시간 내에 연결이 완료되지 않으면 오류가 반환됩니다.

이 매개 변수는 PowerShell 7.2에서 도입되었습니다.

Type:Int32
Position:Named
Default value:unlimited
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ConnectionUri

세션의 연결 엔드포인트를 정의하는 URI를 지정합니다. URI는 정규화되어야 합니다. 이 문자열의 형식은 다음과 같습니다.

<Transport>://<ComputerName>:<Port>/<ApplicationName>

기본값은 다음과 같습니다.

http://localhost:5985/WSMAN

커넥트ionURI를 지정하지 않으면 UseSSL, ComputerName, PortApplicationName 매개 변수를 사용하여 커넥트ionURI 값을 지정할 있습니다.

URI의 전송 세그먼트에 유효한 값은 HTTP 및 HTTPS입니다. 전송 세그먼트를 사용하여 연결 URI를 지정하지만 포트를 지정하지 않으면 HTTP 및 443 HTTPS에 대한 표준 포트 80 를 사용하여 세션이 만들어집니다. PowerShell 원격에 기본 포트를 사용하려면 HTTP 또는 5986 HTTPS에 대한 포트 5985 를 지정합니다.

대상 컴퓨터가 연결을 다른 URI로 리디렉션하는 경우 명령에서 AllowRedirection 매개 변수를 사용하지 않는 한 PowerShell은 리디렉션을 방지합니다.

Type:Uri[]
Aliases:URI, CU
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-ContainerId

컨테이너 ID의 배열을 지정합니다. 이 cmdlet은 지정된 각 컨테이너를 사용하여 대화형 세션을 시작합니다. 명령을 docker ps 사용하여 컨테이너 ID 목록을 가져옵니다. 자세한 내용은 docker ps 명령에 대한 도움말을 참조하세요.

Type:String[]
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Credential

이 작업을 수행할 수 있는 권한이 있는 사용자 계정을 지정합니다. 기본값은 현재 사용자입니다.

사용자 이름(예: User01 또는)을 입력하거나 Domain01\User01cmdlet에서 생성된 PSCredential 개체를 Get-Credential 입력합니다. 사용자 이름을 입력하면 암호를 입력하라는 메시지가 표시됩니다.

자격 증명은 PSCredential 개체에 저장되고 암호는 SecureString으로 저장됩니다.

참고 항목

SecureString 데이터 보호에 대한 자세한 내용은 SecureString이 얼마나 안전한가요?를 참조하세요.

Type:PSCredential
Position:Named
Default value:Current user
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-EnableNetworkAccess

이 cmdlet은 루프백 세션에 대화형 보안 토큰을 추가한다는 것을 나타냅니다. 대화형 토큰을 사용하면 루프백 세션에서 다른 컴퓨터에서 데이터를 가져오는 명령을 실행할 수 있습니다. 예를 들어 원격 컴퓨터에서 로컬 컴퓨터로 XML 파일을 복사하는 명령을 세션에서 실행할 수 있습니다.

루프백 세션은 동일한 컴퓨터에서 시작되고 끝나는 PSSession 입니다. 루프백 세션을 만들려면 ComputerName 매개 변수를 생략하거나 해당 값을 점(.) localhost또는 로컬 컴퓨터의 이름으로 설정합니다.

기본적으로 이 cmdlet은 네트워크 토큰을 사용하여 루프백 세션을 만듭니다. 이 경우 원격 컴퓨터에 인증할 수 있는 충분한 권한이 제공되지 않을 수 있습니다.

EnableNetworkAccess 매개 변수는 루프백 세션에서만 유효합니다. 원격 컴퓨터에서 세션을 만들 때 EnableNetworkAccess를 사용하면 명령이 성공하지만 매개 변수는 무시됩니다.

세션 자격 증명을 다른 컴퓨터에 위임하는 Authentication 매개 변수 값을 사용하여 CredSSP 루프백 세션에서 원격 액세스를 사용하도록 설정할 수도 있습니다.

악의적인 액세스로부터 컴퓨터를 보호하기 위해 EnableNetworkAccess 매개 변수를 사용하여 만든 대화형 토큰이 있는 연결이 끊긴 루프백 세션은 세션이 만들어진 컴퓨터에서만 다시 연결할 수 있습니다. CredSSP 인증을 사용하는 연결이 끊긴 세션은 다른 컴퓨터에서 다시 연결할 수 있습니다. 자세한 내용은 Disconnect-PSSession를 참조하세요.

이 매개 변수는 PowerShell 3.0에서 도입되었습니다.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-HostName

SSH(Secure Shell) 기반 연결에 대한 컴퓨터 이름 배열을 지정합니다. 이는 원격 컴퓨터에 대한 연결이 Windows WinRM이 아닌 SSH를 사용하여 수행된다는 점을 제외하고 ComputerName 매개 변수와 유사합니다.

이 매개 변수는 PowerShell 6.0에서 도입되었습니다.

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-KeyFilePath

SSH(Secure Shell)에서 원격 컴퓨터에서 사용자를 인증하는 데 사용하는 키 파일 경로를 지정합니다.

SSH를 사용하면 기본 암호 인증 대신 프라이빗/퍼블릭 키를 통해 사용자 인증을 수행할 수 있습니다. 원격 컴퓨터가 키 인증을 위해 구성된 경우 이 매개 변수를 사용하여 사용자를 식별하는 키를 제공할 수 있습니다.

이 매개 변수는 PowerShell 6.0에서 도입되었습니다.

Type:String
Aliases:IdentityFilePath
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Name

PSSession이름을 지정합니다.

다음과 같은 Enter-PSSessionGet-PSSession 다른 cmdlet을 사용할 때 이 이름을 사용하여 PSSession을 참조할 수 있습니다. 이름은 컴퓨터 또는 현재 세션에 고유할 필요가 없습니다.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Options

원격 SSH 기반 세션에 연결할 때 사용되는 SSH 옵션의 해시 테이블을 지정합니다. 가능한 옵션은 Unix 기반 버전의 ssh 명령에서 지원하는 모든 값입니다.

매개 변수에 의해 명시적으로 전달된 모든 값이 Options hashtable에 전달된 값보다 우선합니다. 예를 들어 포트 매개 변수를 사용하면 Options hashtable에 전달된 키Port-값 쌍이 재정의됩니다.

Type:Hashtable
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Port

이 연결에 사용되는 원격 컴퓨터의 네트워크 포트를 지정합니다. 원격 컴퓨터에 연결하려면 원격 컴퓨터가 연결에서 사용하는 포트에서 수신 대기해야 합니다. 기본 포트는 5985HTTP용 WinRM 포트이고 5986HTTPS용 WinRM 포트입니다.

다른 포트를 사용하기 전에 원격 컴퓨터에서 WinRM 수신기를 구성하여 해당 포트에서 수신 대기해야 합니다. 다음 명령을 사용하여 수신기를 구성합니다.

  1. winrm delete winrm/config/listener?Address=*+Transport=HTTP
  2. winrm create winrm/config/listener?Address=*+Transport=HTTP @{Port="\<port-number\>"}

반드시 사용해야 하는 경우가 아니면 포트 매개 변수를 사용하지 마세요. 명령의 포트 설정은 명령이 실행되는 모든 컴퓨터 또는 세션에 적용됩니다. 대체 포트 설정을 사용하면 명령이 모든 컴퓨터에서 실행되지 않을 수 있습니다.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RunAsAdministrator

PSSession관리자 권한으로 실행됨을 나타냅니다.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Session

이 cmdlet이 새 PSSession의 모델로 사용하는 PSSession 개체의 배열을 지정합니다. 이 매개 변수는 지정된 PSSession 개체와 동일한 속성을 가진 새 PSSession 개체를 만듭니다.

PSSession 개체 또는 PSSession 개체를 만들거나 가져오는명령(예: 명령)이 포함된 변수를 New-PSSessionGet-PSSession 입력합니다.

결과 PSSession 개체는 컴퓨터 이름, 애플리케이션 이름, 연결 URI, 포트, 구성 이름, 제한 제한 및 SSL(Secure Sockets Layer) 값을 원본과 동일하지만 표시 이름, ID 및 GUID(인스턴스 ID)는 다릅니다.

Type:PSSession[]
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-SessionOption

세션에 대한 고급 옵션을 지정합니다. cmdlet을 사용하여 New-PSSessionOption 만든 개체와 같은 SessionOption 개체 또는 키가 세션 옵션 이름이고 값이 세션 옵션 값인 해시 테이블을 입력합니다.

옵션의 기본값은 설정된 경우 기본 설정 변수의 $PSSessionOption 값에 따라 결정됩니다. 그렇지 않으면 기본값은 세션 구성에 설정된 옵션에 의해 설정됩니다.

세션 옵션 값은 기본 설정 변수 및 세션 구성에서 설정된 세션의 $PSSessionOption 기본값보다 우선합니다. 그러나 세션 구성에 설정된 최대 값, 할당량 또는 제한보다 우선하지 않습니다.

기본값을 포함하는 세션 옵션에 대한 설명은 을 참조하세요 New-PSSessionOption. 기본 설정 변수에 $PSSessionOption 대한 자세한 내용은 about_Preference_Variables 참조하세요. 세션 구성에 대한 자세한 내용은 about_Session_Configurations를 참조하세요.

Type:PSSessionOption
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SSHConnection

이 매개 변수는 각 해시 테이블이 SSH(Secure Shell) 연결(HostName, Port, UserName, KeyFilePath)을 설정하는 데 필요한 하나 이상의 연결 매개 변수를 포함하는 해시 테이블 배열을 사용합니다.

해시 테이블 연결 매개 변수는 SSHHost 매개 변수 집합에 대해 정의된 것과 동일합니다.

SSH커넥트ion 매개 변수는 각 세션에 서로 다른 연결 정보가 필요한 여러 세션을 만드는 데 유용합니다.

이 매개 변수는 PowerShell 6.0에서 도입되었습니다.

Type:Hashtable[]
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-SSHTransport

SSH(Secure Shell)를 사용하여 원격 연결이 설정되었음을 나타냅니다.

기본적으로 PowerShell은 Windows WinRM을 사용하여 원격 컴퓨터에 연결합니다. 이 스위치는 PowerShell이 SSH 기반 원격 연결을 설정하기 위해 HostName 매개 변수 집합을 사용하도록 강제합니다.

이 매개 변수는 PowerShell 6.0에서 도입되었습니다.

Type:SwitchParameter
Accepted values:true
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Subsystem

PSSession에 사용되는 SSH 하위 시스템을 지정합니다.

이는 에 정의된 대로 대상에 사용할 하위 시스템을 지정합니다 sshd_config. 하위 시스템은 미리 정의된 매개 변수를 사용하여 특정 버전의 PowerShell을 시작합니다. 지정된 하위 시스템이 원격 컴퓨터에 없으면 명령이 실패합니다.

이 매개 변수를 사용하지 않으면 기본값은 하위 시스템입니다 powershell .

Type:String
Position:Named
Default value:powershell
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-ThrottleLimit

이 명령을 실행하도록 설정할 수 있는 최대 동시 연결 수를 지정합니다. 이 매개 변수를 생략하거나 값 0 (0)을 입력하면 기본값이 32사용됩니다.

제한 제한은 세션이나 컴퓨터가 아닌 현재 명령에만 적용됩니다.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UserName

원격 컴퓨터에서 세션을 만드는 데 사용되는 계정의 사용자 이름을 지정합니다. 사용자 인증 방법은 원격 컴퓨터에서 SSH(Secure Shell)를 구성하는 방법에 따라 달라집니다.

기본 암호 인증을 위해 SSH가 구성된 경우 사용자 암호를 묻는 메시지가 표시됩니다.

키 기반 사용자 인증을 위해 SSH가 구성된 경우 KeyFilePath 매개 변수를 통해 키 파일 경로를 제공할 수 있으며 암호를 묻는 메시지가 표시되지 않습니다. 클라이언트 사용자 키 파일이 SSH 알려진 위치에 있는 경우 키 기반 인증에 KeyFilePath 매개 변수가 필요하지 않으며 사용자 이름에 따라 사용자 인증이 자동으로 수행됩니다. 자세한 내용은 키 기반 사용자 인증에 대한 SSH 설명서를 참조하세요.

필수 매개 변수가 아닙니다. UserName 매개 변수가 지정되지 않은 경우 현재 로그온 사용자 이름이 연결에 사용됩니다.

이 매개 변수는 PowerShell 6.0에서 도입되었습니다.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UseSSL

이 cmdlet은 SSL 프로토콜을 사용하여 원격 컴퓨터에 대한 연결을 설정했음을 나타냅니다. 기본적으로 SSL은 사용되지 않습니다.

WS-Management는 네트워크를 통해 전송되는 모든 PowerShell 콘텐츠를 암호화합니다. UseSSL 매개 변수는 HTTP 연결 대신 HTTPS 연결을 통해 데이터를 보내는 추가 보호를 제공합니다.

이 매개 변수를 사용하지만 명령에 사용되는 포트에서 SSL을 사용할 수 없는 경우 명령이 실패합니다.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UseWindowsPowerShell

로컬 시스템의 새 Windows PowerShell Runspace에 대한 원격 연결을 만듭니다.

Type:SwitchParameter
Position:Named
Default value:False
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-VMId

가상 머신 ID의 배열을 지정합니다. 이 cmdlet은 지정된 각 가상 머신을 사용하여 PowerShell Direct 대화형 세션을 시작합니다. 자세한 내용은 PowerShell을 사용한 Virtual Machine 자동화 및 관리를 참조하세요.

Hyper-V 호스트에서 사용할 수 있는 가상 머신을 확인하는 데 사용합니다 Get-VM .

Type:Guid[]
Aliases:VMGuid
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-VMName

가상 머신의 이름 배열을 지정합니다. 이 cmdlet은 지정된 각 가상 머신을 사용하여 PowerShell Direct 대화형 세션을 시작합니다. 자세한 내용은 PowerShell을 사용한 Virtual Machine 자동화 및 관리를 참조하세요.

Hyper-V 호스트에서 사용할 수 있는 가상 머신을 확인하는 데 사용합니다 Get-VM .

Type:String[]
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

입력

String

이 cmdlet에 문자열을 파이프할 수 있습니다.

System.URI

이 cmdlet에 URI를 파이프할 수 있습니다.

PSSession

세션 개체를 이 cmdlet으로 파이프할 수 있습니다.

출력

PSSession

참고

PowerShell에는 다음 별칭이 포함됩니다.New-PSSession

  • 모든 플랫폼:

    • nsn
  • 이 cmdlet은 PowerShell 원격 인프라를 사용합니다. 이 cmdlet을 사용하려면 PowerShell 원격에 대해 로컬 컴퓨터와 원격 컴퓨터를 구성해야 합니다. 자세한 내용은 about_Remote_Requirements 참조하세요.

  • 로컬 컴퓨터에서 PSSession을 만들려면 관리자 권한으로 실행 옵션을 사용하여 PowerShell을 시작합니다.

  • PSSession마치면 cmdlet을 사용하여 Remove-PSSession PSSession삭제하고 해당 리소스를 해제합니다.

  • HostNameSSH커넥트ion 매개 변수 집합은 PowerShell 6.0부터 포함되었습니다. SSH(Secure Shell)를 기반으로 PowerShell 원격을 제공하기 위해 추가되었습니다. SSH와 PowerShell은 모두 여러 플랫폼(Windows, Linux, macOS)에서 지원되며 PowerShell 원격은 PowerShell 및 SSH가 설치 및 구성된 이러한 플랫폼에서 작동합니다. 이는 WinRM을 기반으로 하는 이전 Windows 전용 원격과는 별개이며 많은 WinRM 특정 기능 및 제한 사항은 적용되지 않습니다. 예를 들어 WinRM 기반 할당량, 세션 옵션, 사용자 지정 엔드포인트 구성 및 연결 끊기/다시 연결 기능은 지원되지 않습니다. PowerShell SSH 원격을 설정하는 방법에 대한 자세한 내용은 SSH를 통해 PowerShell 원격을 참조하세요.

실행 파일은 ssh 다음 순서대로 다음 원본에서 구성 데이터를 가져옵니다.

  1. 명령줄 옵션
  2. 사용자의 구성 파일(~/.ssh/config)
  3. 시스템 전체 구성 파일(/etc/ssh/ssh_config)

다음 cmdlet 매개 변수는 매개 변수 및 옵션에 ssh 매핑됩니다.

Cmdlet 매개 변수 ssh 매개 변수 동등한 ssh -o 옵션
-KeyFilePath -i <KeyFilePath> -o IdentityFile=<KeyFilePath>
-UserName -l <UserName> -o User=<UserName>
-Port -p <Port> -o Port=<Port>
-ComputerName -Subsystem -s <ComputerName> <Subsystem> -o Host=<ComputerName>

매개 변수에 의해 명시적으로 전달된 모든 값이 Options hashtable에 전달된 값보다 우선합니다. 파일에 대한 ssh_config 자세한 내용은 ssh_config(5)를 참조하세요.