Инвентаризация Windows с использованием Python

Я пытаюсь создать отчет об инвентаризации для набора серверов Windows, используя следующую функцию. Но эта функция всегда не проходит проверку на пинг для всех хостов, хотя я и хочу пинговать некоторые из них чисто из командной строки. пробовал множественную комбинацию, не в состоянии выяснить, что ограничивает его от попадания в блок 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 - содержит одно имя хоста на строку

1 ответ

Решение

Вы должны передать свою ценность в 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
Другие вопросы по тегам