Connect-PSSession

切断されたセッションに再接続します。

構文

Connect-PSSession
       -Name <String[]>
       [-ThrottleLimit <Int32>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Connect-PSSession
       [-Session] <PSSession[]>
       [-ThrottleLimit <Int32>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Connect-PSSession
       [-ComputerName] <String[]>
       [-ApplicationName <String>]
       [-ConfigurationName <String>]
       [-Name <String[]>]
       [-Credential <PSCredential>]
       [-Authentication <AuthenticationMechanism>]
       [-CertificateThumbprint <String>]
       [-Port <Int32>]
       [-UseSSL]
       [-SessionOption <PSSessionOption>]
       [-ThrottleLimit <Int32>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Connect-PSSession
       [-ComputerName] <String[]>
       [-ApplicationName <String>]
       [-ConfigurationName <String>]
       -InstanceId <Guid[]>
       [-Credential <PSCredential>]
       [-Authentication <AuthenticationMechanism>]
       [-CertificateThumbprint <String>]
       [-Port <Int32>]
       [-UseSSL]
       [-SessionOption <PSSessionOption>]
       [-ThrottleLimit <Int32>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Connect-PSSession
       [-ConfigurationName <String>]
       [-ConnectionUri] <Uri[]>
       [-AllowRedirection]
       [-Name <String[]>]
       [-Credential <PSCredential>]
       [-Authentication <AuthenticationMechanism>]
       [-CertificateThumbprint <String>]
       [-SessionOption <PSSessionOption>]
       [-ThrottleLimit <Int32>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Connect-PSSession
       [-ConfigurationName <String>]
       [-ConnectionUri] <Uri[]>
       [-AllowRedirection]
       -InstanceId <Guid[]>
       [-Credential <PSCredential>]
       [-Authentication <AuthenticationMechanism>]
       [-CertificateThumbprint <String>]
       [-SessionOption <PSSessionOption>]
       [-ThrottleLimit <Int32>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Connect-PSSession
       -InstanceId <Guid[]>
       [-ThrottleLimit <Int32>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Connect-PSSession
       [-ThrottleLimit <Int32>]
       [-Id] <Int32[]>
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]

説明

Connect-PSSession コマンドレットは、切断されたユーザー管理の PowerShell セッション (PSSessions) に再接続します。 これは、Invoke-Command コマンドレットの Disconnect-PSSession コマンドレットまたは InDisconnectedSession パラメーターを使用するなど、意図的に切断されたセッションや、一時的なネットワーク停止などによって意図せずに切断されたセッションで機能します。

Connect-PSSession は、同じユーザーによって開始された切断されたセッションに接続できます。 これには、他のコンピューター上の他のセッションによって開始された、または他のセッションから切断されたものが含まれます。

ただし、 Connect-PSSession は、 Enter-PSSession コマンドレットを使用して開始された、壊れたセッションや閉じたセッション、または対話型セッションに接続できません。 このほか、別のユーザーが開始したセッションには接続できません。ただし、そのセッションを作成したユーザーの資格情報がある場合には、このコマンドレットを使用した再接続が可能です。

切断されたセッション機能の詳細については、「 about_Remote_Disconnected_Sessions」を参照してください。

このコマンドレットは、Windows PowerShell 3.0 で導入されました。

例 1: セッションに再接続する

Connect-PSSession -ComputerName Server01 -Name ITTask

Id Name            ComputerName    State         ConfigurationName     Availability
-- ----            ------------    -----         -----------------     ------------
 4 ITTask          Server01        Opened        ITTasks                  Available

このコマンドは、Server01 コンピューター上の ITTask セッションに再接続します。

出力は、コマンドが成功したことを示しています。 セッションの StateOpened され、 AvailabilityAvailableされます。これは、セッションでコマンドを実行できることを示します。

例 2: 切断と再接続の影響

Get-PSSession

Id Name            ComputerName    State         ConfigurationName     Availability
-- ----            ------------    -----         -----------------     ------------
 1 Backups         Localhost       Opened        Microsoft.PowerShell     Available

Get-PSSession | Disconnect-PSSession

Id Name            ComputerName    State         ConfigurationName     Availability
-- ----            ------------    -----         -----------------     ------------
 1 Backups         Localhost       Disconnected  Microsoft.PowerShell          None

Get-PSSession | Connect-PSSession

Id Name            ComputerName    State         ConfigurationName     Availability
-- ----            ------------    -----         -----------------     ------------
 1 Backups         Localhost       Opened        Microsoft.PowerShell     Available

この例では、セッションを切断した後で、改めて同じセッションに接続する効果を示しています。

最初のコマンドでは、 Get-PSSession コマンドレットを使用します。 ComputerName パラメーターがないと、コマンドは現在のセッションで作成されたセッションのみを取得します。

出力は、コマンドがローカル コンピューター上の Backups セッションを取得することを示しています。 セッションの StateOpened され、 AvailabilityAvailable

2 番目のコマンドでは、 Get-PSSession コマンドレットを使用して、現在のセッションで作成された PSSession オブジェクトとセッションを切断する Disconnect-PSSession コマンドレットを取得します。 出力は、 Backups セッションが切断されたことを示しています。 セッションの StateDisconnected され、 AvailabilityNone

3 番目のコマンドでは、 Get-PSSession コマンドレットを使用して、現在のセッションで作成された PSSession オブジェクトと、セッションを再接続するための Connect-PSSession コマンドレットを取得します。 出力は、 Backups セッションが再接続されたことを示しています。 セッションの StateOpened され、 AvailabilityAvailable

切断されていないセッションで Connect-PSSession コマンドレットを使用する場合、コマンドはセッションに影響せず、エラーも生成しません。

例 3: エンタープライズ シナリオでの一連のコマンド

この一連のコマンドは、エンタープライズ シナリオで Connect-PSSession コマンドレットがどのように使用されるかを示しています。 この例では、システム管理者がリモート コンピューター上のセッションで、実行時間の長いジョブを開始します。 管理者はジョブを開始した後、セッションを切断し、帰宅します。 その日の夕方、管理者はホーム コンピューターにログオンし、ジョブが完了するまで実行されたことを確認します。

管理者は、まずリモート コンピューターでセッションを作成し、セッションでスクリプトを実行します。最初のコマンドでは、 New-PSSession コマンドレットを使用して、Server01 リモート コンピューターに ITTask セッションを作成します。 このコマンドでは、 ConfigurationName パラメーターを使用して、 ITTasks セッション構成を指定します。 このコマンドは、セッションを $s 変数に保存します。

2 番目のコマンド Invoke-Command コマンドレットを使用して、 $s 変数内のセッションでバックグラウンド ジョブを開始します。 FilePath パラメーターを使用して、バックグラウンド ジョブでスクリプトを実行します。

3 番目のコマンドでは、 Disconnect-PSSession コマンドレットを使用して、 $s 変数内のセッションから切断します。 このコマンドでは、 OutputBufferingMode パラメーターと値が Drop を使用して、セッションに出力を配信する必要があるため、スクリプトがブロックされないようにします。 IdleTimeoutSec パラメーターを使用して、セッションタイムアウトを 15 時間に延長します。 コマンドが完了すると、管理者はコンピューターをロックし、夕方に家に帰ります。

その夜、管理者はホーム コンピューターを起動し、企業ネットワークにログオンして、PowerShell を起動します。 4 番目のコマンドでは、 Get-PSSession コマンドレットを使用して Server01 コンピューター上のセッションを取得します。 このコマンドは、 ITTask セッションを検索します。 5 番目のコマンドでは、 Connect-PSSession コマンドレットを使用して、 ITTask セッションに接続します。 このコマンドでは、セッションが $s 変数に保存されます。

6 番目のコマンドでは、Invoke-Command コマンドレットを使用して、$s変数内のセッションでGet-Job コマンドを実行します。 出力は、ジョブが正常に完了したことを示しています。7 番目のコマンドでは、Invoke-Command コマンドレットを使用して、セッション内の $s 変数のセッションでReceive-Job コマンドを実行します。 このコマンドは、結果を $BackupSpecs 変数に保存します。8 番目のコマンドでは、 Invoke-Command コマンドレットを使用してセッションで別のスクリプトを実行します。 このコマンドは、セッション内の $BackupSpecs 変数の値をスクリプトへの入力として使用します。

$s = New-PSSession -ComputerName Server01 -Name ITTask -ConfigurationName ITTasks
Invoke-Command -Session $s -ScriptBlock {Start-Job -FilePath \\Server30\Scripts\Backup-SQLDatabase.ps1}

Id     Name            State         HasMoreData     Location             Command
--     ----            -----         -----------     --------             -------
2      Job2            Running       True            Server01             \\Server30\Scripts\Backup...

Disconnect-PSSession -Session $s -OutputBufferingMode Drop -IdleTimeoutSec 60*60*15

Id Name            ComputerName    State         ConfigurationName     Availability
-- ----            ------------    -----         -----------------     ------------
 1 ITTask          Server01        Disconnected  ITTasks               None

Get-PSSession -ComputerName Server01 -Name ITTask

Id Name            ComputerName    State         ConfigurationName     Availability
-- ----            ------------    -----         -----------------     ------------
 1 ITTask          Server01        Disconnected  ITTasks               None

$s = Connect-PSSession -ComputerName Server01 -Name ITTask

Id Name            ComputerName    State         ConfigurationName     Availability
-- ----            ------------    -----         -----------------     ------------
 1 ITTask          Server01        Opened        ITTasks               Available

Invoke-Command -Session $s -ScriptBlock {Get-Job}

Id     Name            State         HasMoreData     Location             Command
--     ----            -----         -----------     --------             -------
2      Job2            Completed     True            Server01             \\Server30\Scripts\Backup...

Invoke-Command -Session $s -ScriptBlock {$BackupSpecs = Receive-Job -JobName Job2}
Invoke-Command -Session $s -ScriptBlock {\\Server30\Scripts\New-SQLDatabase.ps1 -InitData $BackupSpecs.Initialization}
Disconnect-PSSession -Session $s -OutputBufferingMode Drop -IdleTimeoutSec 60*60*15

Id Name            ComputerName    State         ConfigurationName     Availability
-- ----            ------------    -----         -----------------     ------------
 1 ITTask          Server01        Disconnected  ITTasks               None

9 番目のコマンドは、 $s 変数内のセッションから切断されます。管理者は PowerShell を閉じ、コンピューターを閉じます。 次の日にセッションに再接続し、作業コンピューターからスクリプトの状態を確認できます。

パラメーター

-AllowRedirection

このコマンドレットで、代替 URI へのこの接続のリダイレクトを許可することを示します。

ConnectionURI パラメーターを使用すると、リモート宛先は別の URI にリダイレクトする命令を返すことができます。 既定では、PowerShell は接続をリダイレクトしませんが、このパラメーターを使用して接続のリダイレクトを許可できます。

また、 MaximumConnectionRedirectionCount セッション オプション値を変更して、接続がリダイレクトされる回数を制限することもできます。 New-PSSessionOption コマンドレットの MaximumRedirection パラメーターを使用するか、$PSSessionOptionユーザー設定変数の MaximumConnectionRedirectionCount プロパティを設定します。 既定値は 5 です。

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-ApplicationName

アプリケーションの名前を指定します。 このコマンドレットは、指定されたアプリケーションを使用するセッションにのみ接続します。

接続 URI のアプリケーション名セグメントを入力します。 たとえば、次の接続 URI では、アプリケーション名は WSMan: http://localhost:5985/WSMANです。 セッションのアプリケーション名は、セッションの Runspace.ConnectionInfo.AppName プロパティに格納されます。

このパラメーター値は、セッションを選択してフィルター処理するために使用されます。 セッションが使用するアプリケーションが変更されることはありません。

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-Authentication

切断されたセッションに再接続するためにコマンドでユーザー資格情報を認証するために使用されるメカニズムを指定します。 このパラメーターの有効値は、次のとおりです。

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

既定値は Default です。

このパラメーターの値の詳細については、「 AuthenticationMechanism 列挙型を参照してください。

注意事項

ユーザーの資格情報が認証されるリモート コンピューターに渡される資格情報セキュリティ サポート プロバイダー (CredSSP) 認証は、リモート ネットワーク共有へのアクセスなど、複数のリソースで認証を必要とするコマンド用に設計されています。 このメカニズムを使用すると、リモート操作のセキュリティ リスクが高まります。 リモート コンピューターのセキュリティが低下している場合は、そのリモート コンピューターに渡される資格情報を使用してネットワーク セッションが制御される場合があります。

型:AuthenticationMechanism
指定可能な値:Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-CertificateThumbprint

切断されたセッションに接続するためのアクセス許可を持つユーザー アカウントのデジタル公開キー証明書 (X509) を指定します。 証明書の拇印を入力します。

証明書は、クライアント証明書ベースの認証で使用されます。 ローカル ユーザー アカウントにのみマップできます。 ドメイン アカウントでは機能しません。

証明書の拇印を取得するには、PowerShell Cert: ドライブで Get-Item または Get-ChildItem コマンドを使用します。

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-ComputerName

切断されたセッションが格納されているコンピューターを指定します。 セッションは、サーバー側または接続の受信側にあるコンピューターに格納されます。 既定値はローカル コンピューターです。

コンピューターの NetBIOS 名、IP アドレス、または完全修飾ドメイン名を入力します。 ワイルドカード文字は使用できません。 ローカル コンピューターを指定するには、コンピューター名、 localhost、またはドット (.) を入力します。

型:String[]
Aliases:Cn
配置:0
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-ConfigurationName

指定したセッション構成を使用するセッションにのみ接続します。

セッション構成の構成名または完全修飾リソース URI を入力します。 構成名のみを指定すると、次のスキーマ URI が先頭に付加されます: http://schemas.microsoft.com/powershell。 セッションの構成名は、セッションの ConfigurationName プロパティに格納されます。

このパラメーター値は、セッションを選択してフィルター処理するために使用されます。 セッションが使用するセッション構成が変更されることはありません。

セッション構成の詳細については、「 about_Session_Configurations」を参照してください。

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-Confirm

コマンドレットの実行前に確認を求めるメッセージが表示されます。

型:SwitchParameter
Aliases:cf
配置:Named
規定値:False
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-ConnectionUri

切断されたセッションの接続エンドポイントの URI を指定します。

URI は完全修飾名にする必要があります。 この文字列の形式は次のとおりです。

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

既定値は、次のとおりです。

http://localhost:5985/WSMAN

接続 URI を指定しない場合は、 UseSSL パラメーターと Port パラメーターを使用して接続 URI 値を指定できます。

URI の Transport セグメントの有効な値は HTTP と HTTPS です。 トランスポート セグメントで接続 URI を指定したが、ポートを指定しない場合、セッションは標準ポート (HTTP の場合は 80 、HTTPS の場合は 443 ) で作成されます。 PowerShell リモート処理に既定のポートを使用するには、HTTP のポート 5985 または HTTPS の 5986 を指定します。

宛先コンピューターが接続を別の URI にリダイレクトする場合、コマンドで AllowRedirection パラメーターを使用しない限り、PowerShell はリダイレクトを禁止します。

型:Uri[]
Aliases:URI, CU
配置:0
規定値:None
必須:True
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-Credential

切断されたセッションに接続するためのアクセス許可を持つユーザー アカウントを指定します。 既定値は現在のユーザーです。

User01Domain01\User01などのユーザー名を入力するか、Get-Credential コマンドレットによって生成されたPSCredential オブジェクトを入力します。 ユーザー名を入力すると、パスワードの入力を求められます。

資格情報は PSCredential オブジェクトに格納され、パスワードは SecureString として格納されます。

Note

SecureString データ保護の詳細については、「 SecureString のセキュリティ保護方法」を 参照してください。

型:PSCredential
配置:Named
規定値:Current user
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Id

切断されたセッションの ID を指定します。 Id パラメーターは、切断されたセッションが以前に現在のセッションに接続されている場合にのみ機能します。

このパラメーターは、セッションがローカル コンピューター上に保存されているものの、現在のセッションに接続されていなかった場合には、有効でありながら効力を発揮しません。

型:Int32[]
配置:0
規定値:None
必須:True
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-InstanceId

切断されたセッションのインスタンス ID を指定します。

インスタンス ID は、ローカル コンピューターまたはリモート コンピューター上の PSSession を一意に識別する GUID です。

インスタンス ID は、PSSessionInstanceID プロパティに格納されます。

型:Guid[]
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Name

切断されたセッションのフレンドリ名を指定します。

型:String[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Port

セッションに再接続するときに使用するリモート コンピューターのネットワーク ポートを指定します。 リモート コンピューターに接続するには、リモート コンピューターで、接続に使用されるポートをリッスンすることが必要です。 既定のポートは 5985(HTTP の WinRM ポート)、 5986 (HTTPS の WinRM ポート) です。

代替ポートを使用する前に、そのポートでリッスンするようにリモート コンピューター上の WinRM リスナーを構成する必要があります。 リスナーを構成するには、PowerShell プロンプトで次の 2 つのコマンドを入力します。

Remove-Item -Path WSMan:\Localhost\listener\listener* -Recurse

New-Item -Path WSMan:\Localhost\listener -Transport http -Address * -Port \<port-number\>

必要な場合を除き、 Port パラメーターは使用しないでください。 コマンドに設定されているポートは、コマンドが実行されるすべてのコンピューターまたはセッションに適用されます。 代替ポートの設定によっては、コマンドがすべてのコンピューターで実行されない場合があります。

型:Int32
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Session

切断されたセッションを指定します。 PSSessionオブジェクトを含む変数、またはPSSessionオブジェクトを作成または取得するコマンド (Get-PSSession コマンドなど) を入力します。

型:PSSession[]
配置:0
規定値:None
必須:True
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-SessionOption

セッションの詳細オプションを指定します。 SessionOptionオブジェクト (New-PSSessionOption コマンドレットを使用して作成するオブジェクトなど) を入力するか、キーがセッション オプション名で値がセッション オプション値であるハッシュ テーブルを入力します。

オプションの既定値は、 $PSSessionOption 設定変数の値 (設定されている場合) によって決まります。 それ以外の場合、既定値はセッション構成で設定されたオプションによって決まります。

セッション オプションの値は、 $PSSessionOption 基本設定変数およびセッション構成で設定されたセッションの既定値よりも優先されます。 ただし、セッション構成で設定された最大値、クォータ、または制限よりも優先されることはありません。

デフォルト値を含むセッション・オプションの説明については、 New-PSSessionOptionを参照してください。 $PSSessionOption基本設定変数の詳細については、about_Preference_Variablesを参照してください。 セッション構成の詳細については、「 about_Session_Configurations」を参照してください。

型:PSSessionOption
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-ThrottleLimit

このコマンドを実行するために確立できる最大コンカレント接続数を指定します。 このパラメーターを省略するか、 0の値を入力すると、既定値の 32 が使用されます。

スロットル制限は現在のコマンドのみに適用され、セッションまたはコンピューターには適用されません。

型:Int32
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-UseSSL

このコマンドレットが Ssl (Secure Sockets Layer) プロトコルを使用して切断されたセッションに接続することを示します。 既定では、SSL は使用されません。

WS-Management は、ネットワーク経由で送信されるすべての PowerShell コンテンツを暗号化します。 UseSSL パラメーターは、HTTP 接続ではなく HTTPS 接続を介してデータを送信する追加の保護です。

このパラメーターを使用しても、コマンドに使用されているポートで SSL を使用できない場合、コマンドは失敗します。

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-WhatIf

コマンドレットの実行時に発生する内容を示します。 このコマンドレットは実行されません。

型:SwitchParameter
Aliases:wi
配置:Named
規定値:False
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

入力

PSSession

セッション (PSSession) をこのコマンドレットにパイプできます。

出力

PSSession

このコマンドレットは、再接続先のセッションを表すオブジェクトを返します。

メモ

Windows PowerShell には、 Connect-PSSessionの次のエイリアスが含まれています。

  • cnsn

  • このコマンドレットは、Windows プラットフォームでのみ使用できます。

  • Connect-PSSession は、 State プロパティの値が Disconnected である、切断されたセッションにのみ再接続します。 Windows PowerShell 3.0 以降のバージョンを実行するコンピューターに接続されている、または終了するセッションのみを切断して再接続できます。

  • 切断されていないセッションで Connect-PSSession を使用した場合、コマンドはセッションに影響せず、エラーも生成しません。

  • EnableNetworkAccess パラメーターを使用して作成された対話型トークンを使用した切断されたループバック セッションは、セッションが作成されたコンピューターからのみ再接続できます。 この制約は、悪意のあるアクセスからコンピューターを保護するためのものです。

  • PSSessionState プロパティの値は、現在のセッションを基準にしています。 したがって、 Disconnected の値は、 PSSession が現在のセッションに接続されていないことを意味します。 ただし、 PSSession がすべてのセッションから切断されているわけではありません。 別のセッションに接続されている可能性があるためです。 セッションに接続できるか再接続できるかを判断するには、 Availability プロパティを使用します。

    Availability値 None は、セッションに接続できることを示します。 [ビジー] の値は、別のセッションに接続されているためPSSession に接続できないことを示します。

    セッションの State プロパティの値の詳細については、「 RunspaceState 列挙型を参照してください。

    セッションの Availability プロパティの値の詳細については、「 RunspaceAvailability 列挙型を参照してください。

  • PSSession に接続するときに、PSSessionのアイドル タイムアウト値を変更することはできません。 Connect-PSSessionSessionOption パラメーターは、IdleTimeout 値を持つ SessionOption オブジェクトを受け取ります。 ただし、SessionOption オブジェクトのIdleTimeout値と$PSSessionOption変数のIdleTimeout値は、PSSessionに接続するときに無視されます。

    PSSessionPSSession を作成する場合、New-PSSessionまたはInvoke-Commandコマンドレットを使用してPSSession から切断するときに、アイドルタイムアウトを設定および変更できます

    PSSessionIdleTimeout プロパティは、切断されたセッションがリモート コンピューターで維持される期間を決定するため、切断されたセッションにとって重要です。 セッションが切断されると、その時点からアイドル状態であると判断されます。これは、そのセッションでコマンドを実行している場合であっても同じです。