2017-02-03 19 views
0

vCenter 6.5를 학습 중이며 커뮤니티 샘플이 많이 도움이되지만이 특정 상황에서는 어떤 일이 발생하는지 파악할 수 없습니다. 스크립트 :pyvmomi를 통해 프로그램을 실행하면 프로세스가 생성되지만 그 이후에는 아무 것도 발생하지 않습니다.

from __future__ import with_statement 
import atexit 
from tools import cli 
from pyVim import connect 
from pyVmomi import vim, vmodl 


def get_args(): 
    *Boring args parsing works* 
    return args 

def main(): 
    args = get_args() 
    try: 
     service_instance = connect.SmartConnectNoSSL(host=args.host, 
               user=args.user, 
               pwd=args.password, 
               port=int(args.port)) 

     atexit.register(connect.Disconnect, service_instance) 
     content = service_instance.RetrieveContent() 

     vm = content.searchIndex.FindByUuid(None, args.vm_uuid, True) 

     creds = vim.vm.guest.NamePasswordAuthentication(
      username=args.vm_user, password=args.vm_pwd 
     ) 

     try: 
      pm = content.guestOperationsManager.processManager 
      ps = vim.vm.guest.ProcessManager.ProgramSpec(
       programPath=args.path_to_program, 
       arguments=args.program_arguments 
      ) 
      res = pm.StartProgramInGuest(vm, creds, ps) 
      if res > 0: 
       print "Program executed, PID is %d" % res 

     except IOError, e: 
      print e 
    except vmodl.MethodFault as error: 
     print "Caught vmodl fault : " + error.msg 
     return -1 

    return 0 

# Start program 
if __name__ == "__main__": 
    main() 

내가 콘솔에서 실행, 성공적 내가 언급 PID와 과정을 볼 작업 관리자에서

Program executed, PID is 2036 

, 그것은 올바른에 의해 생성 된 대상 가상 머신과 인쇄에 연결 사용자이지만 프로세스 (calc.exe)의 GUI가 없습니다. RMB 클릭으로 프로세스를 "확장"할 수 없습니다. 이 프로세스는 특수한 매개 변수를 사용하여 생성되었거나 다른 세션에서 생성 된 것 같습니다. 또한 배치 파일을 실행하여 실제로 실행되는지 확인하려고했으나 대답이 '아니오'일 때 배치 파일이 실행되지 않습니다.

어떤 도움, 조언, 단서도 좋을 것입니다.

P. 다른 스크립트를 시도하고 파일을 VM에 성공적으로 전송했습니다.

P.P.S. 미안해, 내 영어로.

업데이트 : 이러한 모든 프로세스는 세션 0에서 시작됩니다.

답변