我想在csv文件中写入Windows用户名。我在Linux上编写了这个脚本,通过
如果我以管理员身份通过命令提示符运行它,则会按预期运行。但是,如果我以普通用户身份运行它并确认UAC为
如何作为普通用户运行此脚本,回答
krdc
和RDP协议连接到Win10 PC。我使用该远程桌面应用程序共享我的Linux驱动器,并在Win10中从该共享磁盘运行此脚本。如果我以管理员身份通过命令提示符运行它,则会按预期运行。但是,如果我以普通用户身份运行它并确认UAC为
Yes
,则不会创建输出文件。如何作为普通用户运行此脚本,回答
Yes
到UAC并将文件写入我在krdc远程应用程序中挂载的驱动器中,其中Win10将该驱动器视为\\TSCLIENT
?#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import ctypes
import sys
import subprocess
def is_admin():
try:
return ctypes.windll.shell32.IsUserAnAdmin()
except:
return False
if is_admin():
subprocess.call(['wmic', '/output:usracc.txt', 'useraccount', 'list', 'full', '/format:csv'])
else:
# Re-run the program with admin rights
ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, __file__, None, 1)
wmic
,而是关于每个需要提升权限的脚本。但是我想我找到了问题所在。我使用 Kubuntu 编写代码并在 Win10 上进行测试。我使用krdc
远程应用程序从 Kubuntu 访问 Win10。我将我的 Kubuntu 硬盘驱动器挂载到 Win10 上。Win10 将此驱动器视为\\TSCLIENT
。当我在 cmd 提示符中以管理员身份运行我的脚本时,一切正常。当我在启用 UAC 的\\TSCLIENT
挂载驱动器上以普通用户身份运行它时,脚本不会以提升的方式运行,即使回答 UAC 时选择“是”。之后,我将我的脚本复制到了 Win10 PC 上,并以普通用户身份运行,UAC 可以工作。 - Hrvoje TU:
驱动器)中以管理员身份打开cmd控制台时,它会将我放置在C:\Windows\system32
,显示“系统找不到指定的驱动器。”的消息,但使用普通用户进行相同的操作,我可以在远程位置打开控制台。 - Hrvoje T