Clear-Host param ( [string]$VIserver, [string]$VILogin, [string]$VIMotdepasse, [string]$VMName, [string]$varErrorCount, [switch]$verbose, [switch]$debug ) Clear-Host #Definition de 2 variables globales $global:MyVar01 = "" $global:MyVar02 = "" $CheminFichierACopier = "C:\Test.txt" $VIserver = "Nom vCenter" $VILogin = "domaine\login" #Domaine\login avec droits de connexion au vCenter $VIMotdepasse = "YourPassword" #Mot de passe pour connexion au vCenter $VMLogin = "LoginCompteLocalDeLaVM" $VMMotdepasse = "MotDePasseLocalSurVM" function main() { asnp vmware* #Import modules VMWares $ErrorActionPreference = "Continue" if ($verbose) {$VerbosePreference = "Continue"} if ($debug) {$DebugPreference = "Continue"} $DebugPreference = "SilentlyContinue" CheckVIToolKit Connect-VIServer -Server $VIserver -User $VILogin -Password $VIMotdepasse Write-Host "Traitement de $VMName" $UneVM = Get-VM -Name $VMName Write-Host $UneVM.PowerState #Juste pour afficher si la VM est allumée ou non $Error.Clear() #Copie d'un fichier de votre poste de travail vers la VM Copy-VMGuestFile -Source $CheminFichierACopier -Destination c:\ -VM $UneVM -LocalToGuest -GuestUser $VMLogin -GuestPassword $VMMotdepasse if($Error.Count -ne 0) { Write-Host "Erreur : $error[0]" } #Récupération d'un fichier de la VM vers votre poste Copy-VMGuestFile -Source $CheminFichierACopier -Destination c:\ -VM $UneVM -GuestToLocal -GuestUser $VMLogin -GuestPassword $VMMotdepasse if($Error.Count -ne 0) { Write-Host "Erreur : $error[0]" } #Exécution d'une commande sur la VM Invoke-VMScript -ScriptText "dir *.* > c:\aeff.txt" -VM $UneVM -ScriptType Bat -GuestUser $VMLogin -GuestPassword $VMMotdepasse if($Error.Count -ne 0) { Write-Host "Erreur : $error[0]" } } function CheckVIToolKit() { ## Before we do anything we must check to see if the user has the VI toolkit installed. ## If user does not then we prompt the user and exit. $Error.Clear() Get-PSSnapin vmware* if($Error.Count -ne 0) { Clear-Host Write-Host "`n`n`t`t ERROR - To run this script, the VI Toolkit must be installed and registered with Powershell. If the VI Tollkit is installed," -foregroundcolor red -backgroundColor yellow Write-Host "`t`t go to the Settings menu in Powershell Plus and click on Manage Snapins." -foregroundcolor red -backgroundColor yellow # Read-Host "`n`n`t Press to continue." break } }## EOF: CheckVIToolKit() Function ParseCommand($oArgs){ #Parses the command line and fills the script variables #with the appropriate values. # $test = "-n,test" # $oArgs = $test.split(",") $ArgCount = 0 if (!$oArgs.length -gt 0){ write-host "No arguments specified." } While ($ArgCount -lt $oArgs.length){ switch ($oArgs[$ArgCount].ToLower()){ "-v"{ $global:MyVar01 = $oArgs[($ArgCount+1)] $ArgCount = ($ArgCount + 2) write-host "-v : $MyVar01" } default{ write-host "Invalid command." # Help exit } } } } #Parse commands ParseCommand($args) $VMName = $MyVar01 write-host "VMName : $VMName" ## Run Main main