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系統的關機功能