#use warnings; use Win32::ODBC; use CGI; use VMware::VIM2Runtime; use VMware::VILib; use Data::Dumper; use IO::Handle; STDOUT->autoflush(1); my $service_url=""; my $username=""; my $password=""; Vim::login(service_url => $service_url, user_name => $username, password => $password); my $host_views = Vim::find_entity_views(view_type => 'HostSystem'); foreach my $the_host (@$host_views) { my $host_configMgr = ($the_host->configManager); my $host_storage_system = Vim::get_view(mo_ref => ($host_configMgr->storageSystem) ); # now rescan eval { $host_storage_system->RescanAllHba(); }; if ($@) { # failed - report and continue print "Rescan failed for host " . $the_host->name . ".\n"; print $@."\n"; } else { print "Rescanned " . $the_host->name . ".\n"; } # now rescan VMFS eval { $host_storage_system->RescanVmfs(); }; if ($@) { # failed - report and continue print "Rescan VMFS failed for host " . $the_host->name . ".\n"; } else { print "Rescanned VMFS on " . $the_host->name . ".\n"; } eval { $host_storage_system->RefreshStorageSystem(); }; if ($@) { # failed - report and continue print "Refresh failed for host " . $the_host->name . ".
\n"; print $@."\n"; } else { print "ReRefreshed " . $the_host->name . ".
\n"; } } Vim::logout(); print "Done";