You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

请求编写Synology NAS任务管理器脚本以重启局域网内电脑

请求编写Synology NAS任务管理器脚本以重启局域网内电脑

嘿,这个需求我太熟了!下面给你分步骤拆解,不管你的目标PC是Windows还是Linux,都能轻松搞定:

前提准备

首先得确保这几点到位:

  • 目标PC和NAS在同一个局域网,能互相ping通
  • 如果是Windows PC:开启了远程关机权限(可以通过组策略设置,或者右键「此电脑」→「属性」→「远程设置」里开启远程协助,同时给管理员账户设置好密码)
  • 如果是Linux PC:开启了SSH服务,最好提前配置NAS到Linux的免密SSH登录(更安全,不用在脚本里写密码)
  • NAS上先启用SSH(控制面板→终端机和SNMP→勾选「启用SSH服务」,方便先测试脚本)

针对Windows PC的脚本

Synology DSM自带net rpc工具,刚好能远程控制Windows的关机/重启。直接写个bash脚本就行:

#!/bin/bash
# 替换成你的目标PC的IP或主机名
TARGET_PC="192.168.3.10"
# 替换成Windows管理员账户的用户名和密码
WIN_USER="Admin"
WIN_PASS="YourStrongPassword"

# 执行重启命令:-r=重启,-f=强制关闭所有程序,-I指定目标IP,-U指定用户名密码
net rpc shutdown -r -f -I $TARGET_PC -U $WIN_USER%$WIN_PASS

测试脚本

用SSH连接到NAS,把脚本存成restart_win_pc.sh,给脚本加执行权限:chmod +x restart_win_pc.sh,然后运行./restart_win_pc.sh,看看目标PC会不会重启。如果报错,先检查用户名密码、远程权限、网络连通性。

添加到任务计划

  1. 打开DSM控制面板→任务计划
  2. 点击「创建」→「触发的任务」→「用户定义的脚本」
  3. 填写任务名称(比如「每日重启办公PC」),用户选择root(需要足够权限)
  4. 切换到「触发器」标签,设置你想要的触发时间(比如每天凌晨2点)
  5. 切换到「任务设置」标签,在「用户定义的脚本」里粘贴上面的脚本内容(记得替换参数)
  6. 保存就搞定啦,到时间NAS会自动执行脚本重启PC

针对Linux PC的脚本

如果目标是Linux机器,用SSH远程执行重启命令更靠谱:

#!/bin/bash
# 替换成Linux PC的IP或主机名
TARGET_PC="192.168.3.11"
# 替换成Linux的用户名(需要有sudo权限)
LINUX_USER="ubuntu"

# 执行重启命令,假设已配置NAS到Linux的免密SSH登录
ssh $LINUX_USER@$TARGET_PC "sudo shutdown -r now"

如果还没配置免密登录,先在NAS上生成SSH密钥:ssh-keygen(一路回车就行),然后把NAS的公钥复制到Linux PC的~/.ssh/authorized_keys文件里,这样就不用在脚本里写密码了,更安全。


注意事项

  • Windows密码里如果有特殊字符(比如!@#$%),记得用反斜杠转义,比如WIN_PASS="MyP\@ssw0rd"
  • 脚本文件权限最好设为700chmod 700 restart_pc.sh),避免其他用户看到明文密码
  • 测试的时候先手动运行脚本确认可行,再添加到任务计划,避免踩坑

备注:内容来源于stack exchange,提问作者JnB

火山引擎 最新活动