Инвентаризация 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