Windows 库存使用 python

Windows inventory using python

我正在尝试使用以下函数为 windows 组服务器创建清单报告。但是,这个函数总是无法对所有主机进行 ping 测试,尽管我很乐意从命令行干净地 ping 其中一些主机。 尝试了多种组合,无法弄清楚是什么限制了它击中 ping pass 块? 请建议,

def StartInvetoryCollection() :
    for eachline in open('HostList.txt', 'r') :
        RemoteHost = eachline.strip()
        print(RemoteHost, end='')
        if os.system('ping RemoteHost -c 4') == 0 :
            print('\t\tPING=PASS',end='')
            ReportFileName = RemoteHost + '_msinfo.txt'
            os.system('msinfo32 /computer Host /report ReportFileName')
            print('\tData Collection=PASS')
        else :
            print('\t\tPING=FAIL\tData Collection=SKIP')
            pass

Hostlist.txt - 每行包含一个主机名

您必须将您的值传递给 os.system:

def StartInvetoryCollection() :
    for eachline in open('HostList.txt', 'r') :
        RemoteHost = eachline.strip()
        print(RemoteHost, end='')
        if os.system('ping {} -n 4'.format(RemoteHost)) == 0 :
            print('\t\tPING=PASS',end='')
            ReportFileName = RemoteHost + '_msinfo.txt'
            os.system('msinfo32 /computer Host /report {}'.format(ReportFileName))
            print('\tData Collection=PASS')
        else :
            print('\t\tPING=FAIL\tData Collection=SKIP')
            pass