1

Pythonを使用して、再起動、シャットダウン、および LAN での起動を可能にする一連のスクリプトを作成しましPythonた。wake on LANたとえば、スクリプトはネットワークを使用して、マシンの起動を初期化するパケットを送信します。問題は、いくつかのパフォーマンス テストを実行していて、1 つのデスクトップに 12 の異なるバージョンの Windows (7、8、および Blue、x86 と x64 の両方) がインストールされていることです。起動するマシン。この図を取得したら、ほとんど完了です。Python ライブラリ、またはPython起動するマシンを制御できる実行可能なものはありますか? たとえば、スタートアップ ブートで、インストールA、、およびBCD. たとえば、これらのオプションのリストを取得してから、ブートを選択Bして開始する方法はありますか? それ以外は、アプリケーション全体を把握しています。のスクリプトは次のWake on LANとおりです。

#!/usr/bin/env python
# wol.py

import socket
import struct

def wake_on_lan(macaddress):
    """ Switches on remote computers using WOL. """

    # Check macaddress format and try to compensate.
    if len(macaddress) == 12:
        pass
    elif len(macaddress) == 12 + 5:
        sep = macaddress[2]
        macaddress = macaddress.replace(sep, '')
    else:
        raise ValueError('Incorrect MAC address format')

    # Pad the synchronization stream.
    data = ''.join(['FFFFFFFFFFFF', macaddress * 20])
    send_data = '' 

    # Split up the hex values and pack.
    for i in range(0, len(data), 2):
        send_data = ''.join([send_data,
                             struct.pack('B', int(data[i: i + 2], 16))])

    # Broadcast it to the LAN.
    sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
    sock.sendto(send_data, ('<broadcast>', 7))


if __name__ == '__main__':
    # Use macaddresses with any seperators.
    wake_on_lan('0F:0F:DF:0F:BF:EF')
    wake_on_lan('0F-0F-DF-0F-BF-EF')
    # or without any seperators.
    wake_on_lan('0F0FDF0FBFEF')

ウォル

4

0 に答える 0