旅游网站设计_长沙 网站建设_兰州app开发_建网站资料
import ssldef connect_to_vcenter(host, user, pwd):try:ssl_context = ssl.SSLContext(ssl.PROTOCOL_TLS)ssl_context.verify_mode = ssl.CERT_NONEservice_instance = SmartConnect(host=host, user=user, pwd=pwd, sslContext=ssl_context)return service_instanceexcept Exception as e:print(f"Error connecting to vCenter: {str(e)}")return Nonedef disconnect_from_vcenter(service_instance):try:if service_instance:Disconnect(service_instance)except Exception as e:print(f"Error disconnecting from vCenter: {str(e)}")def get_vm_info(service_instance):vm_info = []content = service_instance.RetrieveContent()container = content.rootFolder viewType = [vim.VirtualMachine] recursive = True containerView = content.viewManager.CreateContainerView(container, viewType, recursive)for vm in containerView.view:vm_object = {"虚拟机名": vm.name,"所属ESXi主机": vm.runtime.host.name,"虚拟机电源状态": vm.runtime.powerState,"虚拟机IP": vm.guest.ipAddress,"虚拟机操作系统": vm.summary.config.guestFullName,"虚拟机所属文件夹": vm.parent.name,"虚拟机备注": vm.config.annotation}vm_info.append(vm_object)containerView.Destroy()return vm_infodef export_to_excel(vm_info, file_path):wb = Workbook()ws = wb.activews.append(["虚拟机名", "所属ESXi主机", "虚拟机电源状态", "虚拟机IP", "虚拟机操作系统", "虚拟机所属文件夹", "虚拟机备注"])for vm in vm_info:ws.append([vm["虚拟机名"], vm["所属ESXi主机"], vm["虚拟机电源状态"], vm["虚拟机IP"], vm["虚拟机操作系统"], vm["虚拟机所属文件夹"], vm["虚拟机备注"]])wb.save(file_path)print(f"虚拟机信息已导出到 {file_path}")if __name__ == "__main__":vcenter_host = "192.168.x.x" vcenter_user = "test@vsphere.local"vcenter_pwd = "Ttttttt123_"output_file = "C:\Users\111\Desktop\rules\虚拟机信息.xlsx" service_instance = connect_to_vcenter(vcenter_host, vcenter_user, vcenter_pwd)if service_instance:vm_info = get_vm_info(service_instance)export_to_excel(vm_info, output_file)disconnect_from_vcenter(service_instance)else:print("Failed to connect to vCenter.")">