リモートシステムの管理は、しばしば迷路を進むような感覚になります。サーバーの問題のトラブルシューティングで行き詰まった場合、インタラクティブセッションが答えになるかもしれません。適切なアプローチでリモートマシンに簡単に接続し、リアルタイムでやり取りし、さらに長期的な作業のための接続を維持できます。
このガイドでは、PowerShellセッションのフルポテンシャルを引き出す方法を学び、挫折から熟達へと進むことができます。
リモート管理ゲームを効率化し、面倒なタスクを楽にこなしましょう!
インタラクティブセッションを開く
時には、リアルタイムでリモートコンピューターのトラブルシューティングややり取りが必要なことがあります。たとえば、構成の問題の診断やサービスの確認などです。リモート管理ツールはしばしば接続を許可しますが、システム間を切り替えることは面倒です。
PowerShellのインタラクティブセッションは、ローカルコンソールで作業しているかのようにリモートマシンにシームレスに接続してコマンドを実行できるため、解決策を提供します。
インタラクティブセッションを開始する前に、リモートシステムでWindowsリモート管理(WinRM)が有効になっており、適切に構成されていることを確認してください。次のコマンドを使用してリモートシステムでWinRMを有効にします: Enable-PSRemoting -Force
インタラクティブセッションを開始するには、Enter-PSSession
コマンドを使用します:
Enter-PSSession -ComputerName SRV2
プロンプトには、リモートコンピューターの名前が表示され、アクティブな接続が示されます。
セッションがリモートマシンで実行されていることを確認します:
hostname
タスクを完了した後は、セッションを終了できます:
exit
Enter-PSSession
を使用すると、セッションを終了するとセッションも終了します。
次のコマンドでセッションを確認してください:
Get-PSSession
セッションは存在しないため、リストに表示されるべきではありません。
永続セッションの作成と管理
対話型セッションはリアルタイムのタスクに役立ちますが、閉じると消えてしまうため、継続的な作業の柔軟性が制限されます。いくつかのコマンドを自動化する必要があり、一時的に切断し、再接続して作業を再開する必要があると想像してください。
心配はいりません。永続セッションは、ローカルマシンとリモートコンピュータの間の接続を維持することでこのギャップを埋めます。コンソールを終了したり再起動したりしても接続が維持されます。
非対話型と対話型のユースケースを組み合わせるために、永続セッションを作成します:
$session = New-PSSession -ComputerName SRV2
作成後は、Session
パラメータを使用して新しいセッションと対話します:
Enter-PSSession -Session $session
セッションを終了し、再度オープンセッションを確認します:
exit Get-PSSession
New-PSSession
コマンドは、作成したセッションを利用可能に保ちます。
セッションを非対話的に使用することもできます:
Invoke-Command -Session $session -ScriptBlock {'Yay! I am in the remote computer!'}
セッションの切断と再接続
進行中の作業では、セッションを完全に終了せずに一時的に切断する必要があります。例えば、ローカルコンソールを再起動する必要がある場合、切断することでセッションの状態が保持され、後で再接続できます。
PowerShellは、リモートセッションから切断しながらもアクティブな状態を保ち、後で再接続することを可能にします。
セッションから切断するには:
Disconnect-PSSession -Session $session
セッションは今切断されました。
PowerShellコンソールを再起動してもセッションに再接続できます:
Connect-PSSession -ComputerName SRV2
このプロセスにより、同じセッション内でのタスクを再開できます。
最後に、すべてのセッションをクリーンアップして削除します:
Get-PSSession | Remove-PSSession
💡ヒント:永続セッションは強力ですが、不要になった場合はローカルまたはリモートマシンのシステムリソースを消費する可能性があります。最適なパフォーマンスを維持するためには、不要なときに常にセッションをクリーンアップしてください。
結論
対話型で永続的なPowerShellセッションは、リモートシステム管理に強力なツールを提供し、柔軟性と効率性を提供します。
リアルタイムでのトラブルシューティング、コマンドの自動化、または再起動時に作業を保持する場合、これらのテクニックによりリモートシステムをシームレスに制御できます。
マスターセッション管理をし、さまざまな管理タスクを効率的に処理するスキルを身につけましょう!
Source:
https://adamtheautomator.com/powershell-interactive-sessions/