2014-06-26 3 views
0

Это моя первая неделя с питоном, поэтому я хотел бы извиниться заранее, если мой вопрос звучит глупо.subprocess.popen (заменив параметр из списка и поместив его в команду)

В основном я писал этот код:

__author__ = 'houssam' 

import subprocess 
from subprocess import Popen, PIPE 

check = subprocess.Popen(["winexe", "--system", "-U","mydomain\\myusername%mypassword", "//computername", "cmd /C c:\\Windows\\System32\\inetsrv\\appcmd list site"],stderr=subprocess.PIPE, stdout=subprocess.PIPE) 
(stdout,stderr) = check.communicate() 

if check.returncode == 0: 
print 'IIS is installed on this system in the location below:' 
print stdout 


elif check.returncode == 1: 
print 'IIS is NOT installed on this system ' and stderr 

Поэтому в основном я могу запросить в IIS конкретного компьютера «// имя_компьютера», и это работает.

Однако у меня 20 компьютеров. Я хочу создать список list = [computer1, computer2, computer3], а затем выполнить функцию: для каждого списка c замените имя компьютера на единственный уникальный параметр «// computername» внутри subprocess.check_output, который вызывает команду winexe, поэтому мне не нужно писать команду для всех компьютеров, которые у меня есть.

Я ценю вашу помощь и предложения.

Спасибо,

Хусам

+0

Я хотел бы поблагодарить всех заранее, кто смотрит на обмен со мной своими знаниями. – user3780760

ответ

0

Я на самом деле нашел ответ:

Я создал список серверов

серверы = [// computer1" , "// computer2"]

затем я добавил заявление для заявления и поместил список внутри списка, как показано ниже:

for server in servers: 
    check= subprocess.Popen(["winexe", "--system", "-  
    U","mydomain\\myusername%mypassword",  
    server, "cmd /C c:\\Windows\\System32\\inetsrv\\appcmd list  
    site"],stderr=subprocess.PIPE, 
    stdout=subprocess.PIPE) 
    (stdout,stderr) = check.communicate() 

     if check.returncode == 0: 
     print 'IIS is installed on this system in the location below:' 
     print stdout 


     elif check.returncode == 1: 
     print 'IIS is NOT installed on this system ' and stderr 

Тогда я положил его в функцию следующим образом:

def iis_check(servers): 
    for server in servers: 

     check= subprocess.Popen(["winexe", "--system", "- 
     U","mydomain\\myusername%mypassword",  
     server, "cmd /C c:\\Windows\\System32\\inetsrv\\appcmd list  
     site"],stderr=subprocess.PIPE, 

     stdout=subprocess.PIPE) 
     (stdout,stderr) = check.communicate() 

     if check.returncode == 0: 
      print 'IIS is installed on this system in the location below:' 
      print stdout 


     elif check.returncode == 1: 
      print 'IIS is NOT installed on this system ' and stderr 
Смежные вопросы