2017-03-27 10 views
0

enter-pssessionを使用して、リモートサーバーでスクリプトを実行しています。だから私はサーバーに遠隔からログインすることができます。対話形式でコマンドを実行し、PowerShellコンソールを閉じ、後でセッションを再接続してコマンド出力を確認することができます。Powershellの "画面" - 接続が中断してもプロセスを実行し続ける?

powershellのようなLinux screenの機能はありますか?私はWindowsのリモートデスクトップを使用してサーバーを接続することはできません。

+0

「画面のような機能」を詳しく説明してください。 –

+0

質問を更新しました。 – ca9163d9

答えて

2

Invoke-Command-InDisconnectedSessionを使用すると、非同期モードでセッションが開始されます。このセッションに接続すると、そこからデータを取り出すことができます。この詳細についてはこちらを参照してください。here.

セッションを作成し、セッションを切断して接続し直すことができます。

あなたには役立ちます:New-PSSessionOption-IdleTimeoutです。

-IdleTimeout: リモートコンピュータがローカルコンピュータからの通信を受信しない場合、セッションが開いたままになる時間を指定します。これには、ハートビート信号が含まれます。インターバルが終了すると、セッションは終了します。 MSDN Link

+0

'new-pssession'に問題があります。 'invoke-sqlcmd'は、匿名ログイン(ダブルホップ)の問題を持っていますが、Windowsのリモートデスクトップはそれを持っていません。 – ca9163d9

+0

@ dc7a9163d9 CredSSPを使用する必要があります。これは、リモートデスクトップセッションではデフォルトで有効になっていますが、PowerShellセッションでは有効になっていません。 – PetSerAl

1

私は最近PSSessionsを使用してダブルホップの問題に遭遇しました。私が回避しようとしたのは、-RunAsパラメータを使用してリモートサーバー上のコマンドを実行する資格情報を設定するリモートサーバー上のセッション構成を作成することでした。次に、リモートサーバー上のそのセッション構成に接続すると、期待どおりに動作するはずです。

$MyCreds = Get-Credential '' 
Invoke-Command -ScriptBlock { 
    Set-PSSessionConfiguration -Name "My Remote Config" -RunAsCredential $using:MyCreds -Force 
} -ComputerName Server01 

一度セッション設定が行われると、その設定を使用してセッションを開始することができ、ダブルホップ全体の問題は無効です。

セキュリティを追加して、他の人がセッション設定を使用できないようにしておきます。その設定はサーバにキャッシュされた(暗号化された)クレデンシャルを持ち、私として欲しかった。したがって、私は自分のドメインアカウントSIDを取得し、SDDL行を生成し、自分のアカウントだけにセッション設定へのアクセスを制限することができます。

$Searcher = [adsisearcher]"(&(sAMAccountName=$($Creds.UserName.Split('\')[1]))(objectClass=user))" 
$Results=$Searcher.FindOne().GetDirectoryEntry() 
$MySID = new-object System.Security.Principal.SecurityIdentifier($Results.objectSid.value,0)|% value 
$SDDL = "O:NSG:BAD:P(A;;GR;;;BA)(A;;GR;;;IU)(A;;GA;;;$MySID)S:P(AU;FA;GA;;;WD)(AU;SA;GXGW;;;WD)" 
$FQDN = $Server.ServerName,$Server.Forest -join '.' 
$MySessionName = "DoubleHop-{0}" -f $MyCreds.UserName.Split('\')[1] 
Invoke-Command -ScriptBlock { 
    Register-PSSessionConfiguration -Name $using:MySessionName -RunAsCredential $using:MyCreds -Force -SecurityDescriptorSddl $using:SDDL 
} -ComputerName $FQDN -ea 4 
関連する問題