好友
阅读权限10
听众
最后登录1970-1-1
|
import subprocess
def change_computer_name(new_name, admin_password=None):
"""修改计算机名,需要管理员权限."""
if not new_name:
return False
try:
# 使用命令执行
if admin_password:
cmd = f'runas /u "{admin_password}" wmic computersystem where name="%COMPUTERNAME%" call rename name="{new_name}"'
else:
cmd = f'wmic computersystem where name="%COMPUTERNAME%" call rename name="{new_name}"'
# 运行命令,管理员权限下
result = subprocess.run(cmd, shell=True, check=False, capture_output=True)
if result.returncode == 0:
return True
else:
return False
except Exception as e:
return False
# 示例使用:
if __name__ == "__main__":
import sys
new_name = "新的计算机名"
if len(sys.argv) == 2 and sys.argv[1].strip() == new_name:
result = change_computer_name(new_name)
print("修改成功." if result else "修改失败.")
代码添加了管理员密码参数,支持通过 runas 提供权限。
使用 echo %COMPUTERNAME% 命令查看是否存在;
确认下 依赖存在 pip install pywin32 wmic
打包pyinstaller --onefile --noconsole --uac-admin --hidden-import=os,subprocess,pywin32,wmi --clean --upx-dir=c:\upx c:\client.py |
|