LAN上にWindowsおよびLinuxコンピューターのコレクションがある場合、Linuxシェルを使用して、特定のIPアドレスを持つコンピューターをシャットダウンできますか?
PCでsshまたはtelnetを実行していないとします。すべてのコンピューターのrootパスワードを持っています。
あなたの質問に基づいてあなたに答えを与えるためだけに:「IPアドレスだけに基づいてPCをシャットダウンすることは不可能です」
ネットワーク経由でデスクトップまたはシェルを使用できるようにすることで、これを実現できます。 RDP(windows)/ SSHまたはVNC(linux)で実行できます。
out-of-band カードを使用します(コンピューターにカードがない場合)。
それらは安価なカードではありませんが、各カードにIPアドレスを割り当てれば、リモートで電源を入れ直したり、接続したり、kvmで実際に何でもできます。
Windowsにはshutdown /m \\computername
コマンドが組み込まれていますが、Linuxの場合はおそらくsshをインストールしてssh root@computername /sbin/shutdown
を使用する必要があります。とにかく、LinuxボックスにSSHがインストールされていないのはなぜですか?
あなたの問題についてもう少しコンテキストが参考になります。一般的に、答えは「いいえ」です。
ランダムなコンピュータをリモートでシャットダウンすることは、通常、実行するのに適した方法ではありません。そのため、ほとんどのコンピュータは、そのような事態から保護するように設定されています。無効化またはファイアウォールのいずれかによってsshdアクセスがブロックされている場合、そのコンピューターは本来よりもさらに保護されており、そのコンピューターの前に立っていない限り、rootを使用しても何の効果もありません。
一方、管理システムを使用して、あなたが考えていることだけを行うコンピューティングセンターもあります。これらは、コンピュータで実行されている、sshdとは異なるネットワークポートでリッスンしている特別なデーモン、またはネットワークカードに組み込まれている低レベルのファームウェアユーティリティを使用してサポートされることがよくあります。これらのシナリオは少しの計画を必要とし、突然問題が発生した場合に役立ちません。
コンピュータとOSの古さによっては、クラッキングソフトウェアを使用してrootアクセスを取得する可能性のある既知の攻撃ベクトルが存在する可能性があります。このルートはお勧めしませんが、存在しています。
最後のアイデア-リモートで使用できる電源タップがあります。それがどのコンピュータで、どの電源タップとどのプラグが接続されているかがわかっている場合は、そのプラグの電源を切るだけです。繰り返しますが、これにはいくつかの事前計画が必要であり、誰かが人工呼吸器をそのコンセントに接続していないことを確認したいとします。
あなたはルータが何であるかを知る必要があります。見つけたら、コマンドプロンプトで次のように入力します。
shutdown -s -f -m \\"IP of remote machine" -t xx
前述のようにSSHサービスをインストールすると、次のようなsshコマンドを使用できます。
ssh [email protected] shutdown -hy 0
これをすべて自動化するには、鍵交換を行う必要があります。秘密鍵はデフォルトの〜/ .ssh/identityファイルにあり、公開部分はリモートホストの〜/ .ssh/authorized_keysファイルにあります。
SSHを見ると、すべてのオプションなどが表示されます。
shutdown -i
実行ウィンドウで。次のようなコマンドで可能です。
shutdown -s -f -m \\ "リモートマシンのIP" -t xx
しかし、このためにはシステムがLANにある必要があります... -t xx
は、指定する必要がある秒です。
リモートのWindowsマシンにリモートでコマンドを送信できるwinexeと呼ばれるLinux用のプログラムがあり、SambaがLinuxにインストールされている場合、それも動作する可能性があると思います。最も良いことは、Windowsに変更を加える必要がないことです。個
コマンドプロンプトで次のように入力します。
shutdown -ip
次に、IPアドレスを追加すると、シャットダウン、再起動などのさまざまなオプションがあります。