私は vCenter 6.5 を研究しており、コミュニティのサンプルは大いに役立ちますが、この特定の状況では何が起こっているのかわかりません。スクリプト:
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()
コンソールで実行すると、ターゲット仮想マシンに正常に接続され、印刷されます
Program executed, PID is 2036
タスク マネージャーに、言及された PID を持つプロセスが表示されます。これは正しいユーザーによって作成されましたが、プロセス (calc.exe) の GUI はありません。RMB クリックでは、プロセスを「展開」できません。このプロセスは、おそらく別のセッションで、特別なパラメーターを使用して作成されたと思います。さらに、実際に実行されるかどうかを確認するためにバッチ ファイルを実行しようとしましたが、答えはノーです。バッチ ファイルは実行されません。
どんな助け、アドバイス、手がかりも素晴らしいでしょう。
PS他のスクリプトを試してみたところ、VMにファイルが正常に転送されました。
PPS私の英語でごめんなさい。
更新: このようなプロセスはすべてセッション 0 で開始されます。