python远程关闭window电脑

背景

公司的电脑机器太多,每次关闭的时候需要一台一台的关闭,比较麻烦,因此做一个批量关闭的功能

Windows电脑不想liunx有ssh工具,因此需要事前在Windows电脑上面安装一个ssh工具。

  • 1、Github上下载OpenSSH包

下载地址 https://github.com/PowerShell/Win32-OpenSSH/releases

  • 2、解压后将整个包拷贝到C:\Program Files文件夹下
  • 3、将路径加入系统变量

右键单击计算机 --> 属性 --> 高级系统设置 --> 环境变量–系统变量,在此框里面找到 Path 进行编辑,windows7系统编辑时候是以文本形式,所以就需要在最后先添加 “; ” 英文分号,再把你安装路径 如 C:\Program Files\OpenSSH-Win64 粘贴进去。windows 10系统添加比较方便,进到Path里面,点击-新建直接粘贴进去!

 

  • 4、检查安装结果

命令提示符cmd中输入ssh,查看输出结果如下

 

命令提示符cmd中输入scp,查看输出结果如下

 


到此: OpenSSH安装结束,客户端就可以正常使用。但是想要让本机成为ssh服务被远程访问的话,还需要后续操作。

  • 5、开启SSH服务

打开命令提示符,cd命令进入C:\Program Files\OpenSSH-Win64目录

  • 5.1 安装ssh服务

powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1

 

  • 5.2 将22号端口打开

netsh advfirewall firewall add rule name=sshd dir=in action=allow protocol=TCP localport=22

 

 
  • 5.3 使sshd服务开机自启动

sc config sshd start= auto

 

  • 5.4 开启sshd服务

net start sshd

  • 5.6 在其他系统连接本机

ssh 用户名@本机IP

例如作者的如下:

ssh Administrator@10.18.11.197

以上就是在Windows上面安装和启动ssh服务了,计算机中也有自带的ssh,可以安装自带的ssh。
  • 6 执行Python文件
import paramiko

# 创建 SSH 客户端
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())


with open(aa.csv','r') as file:
    text = file.read()
    lines = text.split('\n')
    for info in lines:
        server_info = info.split(',')[0]
        username = info.split(',')[1]
        password = info.split(',')[2]
        try:
            ssh.connect(server_info, username=username, password=password)
            #liunx关闭计算机命令
#             ssh.exec_command('sudo shutdown -h now')
#             ssh.exec_command('sudo reboot')

            # windowns关闭计算机命令
            ssh.exec_command('shutdown -s -t 0')
            # Windows重启命令
            ssh.exec_command('shutdown -r')
            ssh.close()
            print("test")
        except Exception as e:
            print(e)

  aa.csv文件内容

192.168.XX.XX,username,password

  以上就可以遠程控制Windows系統的關機功能

 

posted @ 2023-12-15 15:01  不刷牙的大虫子  阅读(155)  评论(0编辑  收藏  举报