Python 网络-远程运行 WMI 可执行文件,并抓取文本结果

2024-04-23 09:26:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个名为“远程加密狗阅读器”的python项目。大约有200台机器连接了一个“加密狗”和一个名为“加密狗管理器”的相应的.exe文件。运行加密狗管理器会弹出一个包含加密狗信息的“Scan”.txt文件。在

我正在尝试编写一个脚本,它从一个中心位置运行,它具有对整个网络的管理域访问权限。它将读取主机名列表,检查每个主机名,并返回所有文件。一旦它带回所有文件,它将编译成csv。在

我让它在我的实验室/测试服务器上工作,但在生产系统中,它不能工作。我想知道这是否是某种登录问题,因为人们可能正在积极使用该系统。进程需要静默启动,并在后台执行所有操作。但是,由于我连接到管理员用户,我想知道是否存在冲突。在

我不确定除了tge应用程序之外还有什么在运行,直到我期望文件在那里。“加密狗管理器”进程启动,但它似乎不会在任何未以管理员身份登录的计算机(我正在使用的帐户)上弹出扫描结果。在

下面是代码的WMI部分的片段。这是一个非常快速的脚本,所以我为任何非Python式的声明道歉。在

        c = wmi.WMI(ip, user=username, password=password)

        process_startup = c.Win32_ProcessStartup.new()
        process_startup.ShowWindow = SW_SHOWNORMAL
        cmd = r'C:\Program Files\Avid\Utilities\DongleManager\DongleManager.exe'
        process_id, result = c.Win32_Process.Create(CommandLine=cmd,
                                                    ProcessStartupInformation=process_startup)
        if result == 0:
            print("Process started successfully: %d" % process_id)
        else:
            print("Problem creating process: %d" % result)
        while not os.path.exists(("A:/"+scan_folder)):
            time.sleep(1)
            counter += 1
            if counter > 20:
                failed.append(hostname)
                print("A:/"+scan_folder+"does not exist")
                return

        time.sleep(4)

        scan_list = os.listdir("A:/"+scan_folder)
        scan_list.sort(key=lambda x: os.stat(os.path.join("A:/"+scan_folder, x)).st_mtime, reverse=True)
        if scan_list is []:
            failed.append(hostname)
            return

        recursive_overwrite("A:/"+scan_folder+"/"+scan_list[0],
                            "C:\\AvidTemp\\Dongles\\"+hostname+".txt")

假设我有一个连接(计算机在上),它通常会在它等待创建文件夹,或者期望扫描文件夹列表中的某个位置失败。。。不管怎样,有东西阻止了扫描的创建,即使进程正在启动

编辑,我在代码的其他地方作为:/


Tags: 文件txt管理器scanif进程osresult
1条回答
网友
1楼 · 发布于 2024-04-23 09:26:32

问题是您请求显示应用程序窗口,但是没有登录的桌面来显示它。WMI示例经常使用SW_SHOWWINDOW,但这通常是错误的选择,因为使用WMI时,通常是在后台运行某些东西。在这种情况下,SW_HIDE(或者什么都没有)是更好的选择。在

相关问题 更多 >