# VBoxManage

## Introduction

Comme brièvement indiqué au , VBoxManage est l'interface en ligne de commande de VirtualBox. Avec elle, vous pouvez contrôler complètement VirtualBox depuis la ligne de commandes de votre système d'exploitation hôte. VBoxManage supporte toutes les fonctionnalités auxquelles vous donne accès l'interface graphique, mais il supporte bien plus que ça. Il ouvre vraiment toutes les fonctions du moteur de virtualisation, même celles auxquelles on ne peut pas (encore) accéder en mode graphique.

Vous devrez utiliser la ligne de commande si vous voulez

- utiliser une autre interface que celle graphique (par exemple, VBoxSDL ou le serveur VBoxHeadless) ;

- contrôler certains paramètres de configuration plus avancés et expérimentaux d'une VM.

Il faut avoir en tête deux choses en utilisant `VBoxManage` : D'abord, `VBoxManage` doit toujours être utilisé avec des "sous-commandes" spécifiques telles que "list" ou "createvm" ou "startvm". Toutes les sous-commandes supportées par `VBoxManage` sont décrites en détail à la .

Ensuite, la plupart de ces sous-commandes exigent que vous spécifiez une machine virtuelle en particulier après la sous-commande. Il y a deux façons de faire cela :

- Vous pouvez spécifier le nom de la VM comme il s'affiche dans l'interface graphique de VirtualBox. Remarquez que si ce nom contient des espaces, vous devez l'entourer de guillemets), comme cela est toujours le cas avec les arguments d'une ligne de commande contenant des espaces).

  Par exemple :

      VBoxManage startvm "Windows XP"

- Vous pouvez spécifier l'UUID, qui est l'identifiant interne unique utilisé par VirtualBox pour parler de la machine virtuelle. En supposant que la VM précitée nommée "Windows XP" porte l'UUID affiché ci-dessous, la commande suivante a le même effet que celle précédente :

      VBoxManage startvm 670e746d-abea-4ba6-ad02-2a3b043810a5

Vous pouvez taper `VBoxManage list vms` pour voir toutes les VMs enregistrées ; listées avec leurs paramètres, y compris leurs noms respectifs et leurs UUIDs.

Des exemples classiques de la façon de contrôler VirtualBox depuis la ligne de commande apparaissent ci-dessous :

- Pour créer une nouvelle machine virtuelle en ligne de commandes et l'enregistrer immédiatement avec VirtualBox, utilisez `VBoxManage createvm` avec l'option `--register`, Pour des détails, voir . comme ceci :

      $ VBoxManage createvm --name "SUSE 10.2" --register
      VirtualBox Command Line Management Interface Version $VBOX_VERSION_MAJOR.$VBOX_VERSION_MINOR.$VBOX_VERSION_BUILD
      (C) 2005-$VBOX_C_YEAR $VBOX_VENDOR
      All rights reserved.

      Virtual machine 'SUSE 10.2' is created.
      UUID: c89fc351-8ec6-4f02-a048-57f4d25288e5
      Settings file: '/home/nomutilisateur/.config/VirtualBox/Machines/SUSE 10.2/SUSE 10.2.xml'

  Comme vous pouvez le voir dans la sortie ci-dessus, une nouvelle machine virtuelle a été créée avec le nouvel UUID et un nouveau fichier XML de paramètres.

- Pour afficher la configuration d'une VM en particulier, utilisez `VBoxManage showvminfo` ; voir pour des détails et un exemple.

- Pour modifier les paramètres pendant qu'une VM est éteinte, utilisez `VBoxManage modifyvm`, comme ceci :

      VBoxManage modifyvm "Windows XP" --memory "512MB"

  Pour des détails,voir .

- Pour modifier la configuration du stockage (par exemple pour ajouter un contrôleur de stockage et ensuite un disque virtuel), utilisez `VBoxManage storagectl` et `VBoxManage storageattach` ; voir et pour les détails.

- Pour contrôler le comportement de la VM, utilisez :

  - Pour démarrer une VM éteinte, utilisez `VBoxManage startvm` ; voir pour les détails.

  - Pour mettre en pause ou sauvegarder une VM en fonction, ou pour modifier certains de ses paramètres, utilisez `VBoxManage controlvm` ; voir pour les détails.

## Aperçu des commandes

Quand vous lancez VBoxManage sans paramètres ou si vous entrez une ligne de commande invalide, le diagramme de syntaxe ci-dessous s'affichera. Remarquez que la sortie sera légèrement différente selon la plateforme hôte ; en cas de doute, vérifiez la sortie de `VBoxManage` pour voir les commandes disponibles sur votre hôte en particulier.

    $VBOX_MANAGE_OUTPUT

À chaque fois que vous appelez VBoxManage, une seule commande peut être exécutée. Toutefois, une commande peut supporter plusieurs sous-commandes que vous pouvez appeler en une seule fois. Les sections suivantes fournissent des informations de référence détaillées sur les différentes commandes.

## Options générales

- `--version` : affiche la version de cet outil et quitte.

- `--nologo` : supprime l'affichage des informations de logo (utile pour les scripts)

- `--settingspw` : spécifiie un mot de passe pour les paramètres

- `--settingspwfile` : spécifie un fichier contenant le mot de passe des paramètres

Le mot de passe des paramètres est utilisé pour certains paramètres ayant besoin d'être stockés et chiffrés pour des raisons de sécurité. Pour le moment, le seul paramètre chiffré est l'initateur secret iSCSI (voir pour les détails). Tant qu'aucun mot de passe des paramètres n'a été spécifié, ces informations sont stockées en texte brut. Après avoir utilisé l'option `--settingspw|--settingspwfile` une fois, il faut toujours l'utiliser, sans quoi le paramètre chiffré ne peut pas être chiffré.

## VBoxManage list

La commande `list` donne des informations pertinentes sur votre système et sur les paramètres actuels de VirtualBox.

Les sous-commandes suivantes sont disponibles avec `VBoxManage list` :

- `vms` liste toutes les machines virtuelles actuellement enregistrées avec VirtualBox. Par défaut, elle affiche une liste compacte aavec le nom et l'UUID de chaque VM ; si vous spécifiez en plus `--long` ou `-l`, cela affichera une liste détaillée comme avec la commande`showvminfo` (voir ci-dessous).

- `runningvms` liste toutes les machines virtuelles actuellement en fonction avec leurs identifiants uniques (UUIDs) sous la même forme qu'avec `vms`.

- `ostypes` liste les systèmes d'exploitation invités connus aujourd'hui de VirtualBox, ainsi que les identifiants utilisés pour s'y référer avec la commande `modifyvm`.

- `hostdvds`, `hostfloppies`, listent respectivement les lecteurs DVD, amovibles, les interfaces réseaux bridgées et host-only sur l'hôte, ainsi que le nom utilisé pour y accéder depuis VirtualBox.

- `bridgedifs`, `hostonlyifs` aet `dhcpservers`, listent respectivement les interfaces réseaux bridgées, host-only et les serveurs DHCP disponibles sur l'hôte. Merci de voir pour les détails à leur sujet.

- `hostinfo` affiche des informations sur le système hôte telles que les processeurs, la taille de la mémoire et la version du système d'exploitation.

- `hostcpuids` affiche les paramètres CPUID aux processeurs de l'hôte. Cela peut servir à une analyse plus fine des possibilités de virtualisation de l'hôte.

- `hddbackends` liste les fondations de disque virtuel connues de VirtualBox. Pour chaque format (tels que VDI, VMDK ou RAW), ceci liste les possibilités de la fondation et sa configuration.

- `hdds`, `dvds` et `floppies` vous donnent des informations sur les images de disque virtuel actuellement utilisées par VirtualBox, y compris leurs paramètres, leurs identifiants uniques (UUIDs) associés par VirtualBox et tous leurs fichiers associés. C'est l'équivalent ligne de commandes du gestionnaire de médias virtuels ; voir .

- `usbhost` donne des informations sur les périphériques USB attachés à l'hôte, en particulier des informations utiles pour construire des filtres USB et s'ils sont actuellement utilisés par l'hôte.

- `usbfilters` liste les filtres USB globaux enregistrés avec VirtualBox -- c'est-à-dire les filtres des périphériques accessibles à toutes les machinc( virtuelles -- et il affiche les paramètres du filtre.

- `systemproperties` affiche des paramètres globaux de VirtualBox, tels que la RAM minimum et maximum de l'invité et la taille du disque dur virtuel, les paramètres du dossier et la bibliothèque d'authentification actuellement utilisée.

- `extpacks` affiche les packs d'extension de VirtualBox actuellement installés ; voir et pour plus d'informations.

## VBoxManage showvminfo

La commande `showvminfo` affiche des informations sur une machine en particulier. Ce sont les mêmes informations qu'afficherait `VBoxManage list vms --long` pour toutes les machines virtuelles.

Vous aurez des informations ressemblant à ce qui suit :

    $ VBoxManage showvminfo "Windows XP"
    VirtualBox Command Line Management Interface Version $VBOX_VERSION_MAJOR.$VBOX_VERSION_MINOR.$VBOX_VERSION_BUILD
    (C) 2005-$VBOX_C_YEAR $VBOX_VENDOR
    All rights reserved.

    Name:            Windows XP
    Guest OS:        Other/Unknown
    UUID:            1bf3464d-57c6-4d49-92a9-a5cc3816b7e7
    Config file:     /home/nomutilisateur/.config/VirtualBox/Machines/Windows XP/Windows XP.xml
    Memory size:     512MB
    VRAM size:       12MB
    Number of CPUs:  2
    Synthetic Cpu:   off
    Boot menu mode:  message and menu
    Boot Device (1): DVD
    Boot Device (2): HardDisk
    Boot Device (3): Not Assigned
    Boot Device (4): Not Assigned
    ACPI:            on
    IOAPIC:          on
    PAE:             on
    Time offset:     0 ms
    Hardw. virt.ext: on
    Nested Paging:   on
    VT-x VPID:       off
    State:           powered off (since 2009-10-20T14:52:19.000000000)
    Monitor count:   1
    3D Acceleration: off
    2D Video Acceleration: off
    Teleporter Enabled: off
    Teleporter Port: 0
    Teleporter Address:
    Teleporter Password:
    Storage Controller      (0): IDE Controller
    Storage Controller Type (0): PIIX4
    Storage Controller      (1): Floppy Controller 1
    Storage Controller Type (1): I82078
    IDE Controller (0, 0): /home/user/windows.vdi (UUID: 46f6e53a-4557-460a-9b95-68b0f17d744b)
    IDE Controller (0, 1): /home/user/openbsd-cd46.iso (UUID: 4335e162-59d3-4512-91d5-b63e94eebe0b)
    Floppy Controller 1 (0, 0): /home/user/floppy.img (UUID: 62ac6ccb-df36-42f2-972e-22f836368137)
    NIC 1:           disabled
    NIC 2:           disabled
    NIC 3:           disabled
    NIC 4:           disabled
    NIC 5:           disabled
    NIC 6:           disabled
    NIC 7:           disabled
    NIC 8:           disabled
    UART 1:          disabled
    UART 2:          disabled
    Audio:           disabled (Driver: Unknown)
    Clipboard Mode:  Bidirectional
    VRDE:            disabled
    USB:             disabled

    USB Device Filters:
    <none>

    Shared folders:
    <none>

    Statistics update:  disabled

## VBoxManage registervm / unregistervm

La commande `registervm` vous permet d'importer la définition d'une machine virtuelle dans VirtualBox via un fichier XML. La machine ne doit pas entrer en conflit avec une autre déjà enregistrée dans VirtualBox et elle ne peut pas avoir de disques durs ou amovibles attachés. Il est recommandé de mettre le fichier de définition dans le répertoire des machines avant de l'enregistrer.

Lors de la création d'une nouvelle machine virtuelle avec `VBoxManage createvm` (voir ci-dessous), vous pouvez spécifier directement l'option `--register` pour éviter de devoir l'enregistrer séparément.

La commande `unregistervm` désenregistre une machine virtuelle. Si vous spécifiez également `--delete`, les fichiers suivants seront eux aussi automatiquement effacés :

1. tous les fichiers images de disque dur, y compris les fichiers de différenciation, utilisés par la machine et non partagés avec d'autres machines ;

2. les fichiers de l'état sauvegardé créés par la machine s'il y en a (un si la machine était en état "sauvegardé" et un pour chaque instantané en ligne) ;

3. le fichier XML de la machine et ses sauvegardes ;

4. les fichiers journaux de la machine s'il y en a ;

5. le répertoire de la machine s'il est vide après l'effacement de tout ce qui précède.

## VBoxManage createvm

Cette commande crée un nouveau fichier de définition de machine virtuelle XML.

Le paramètre `--name <name>` est requis et doit spécifier le nom de la machine. Ce nom étant utilisé par défaut pour nommer le fichier des paramètres (avec l'extension `.xml`) et le dossier machine (un sous-dossier du dossier `.config/VirtualBox/Machines`), il doit respecter les exigences de votre système d'exploitation hôte en matière de spécifications d'un nom de fichier. Si vous renommez plus tard la VM, le nom du fichier et du dossier seront modifiés automatiquement.

Néanmoins, si vous utilisez l'option `--basefolder <path>`, le dossier de la machine sera appelé `<path>`. Dans ce cas, les noms du fichier et du dossier ne seront pas modifiés si la machine virtuelle est renommée.

Par défaut, cette commande ne fait que créer le fichier XML, sans enregistrer automatiquement la VM avec votre installation de VirtualBox. Pour enregistrer instantanément la VM, utilisez l'option `--register`, ou lancez `VBoxManage registervm` séparément a posteriori.

## VBoxManage modifyvm

Cette commande modifie les propriétés d'une machine virtuelle enregistrée et non en fonction. La plupart des propriétés disponibles avec cette commande correspondent aux paramètres de la VM affichés dans l'interface graphique de VirtualBox dans la boîte de dialogue "Paramètres" de chaque VM ; celles-ci ont été décrites en . Néanmoins, certains des paramètres les plus avancés ne sont disponibles que via l'interface `VBoxManage`.

Ces commandes exigent que la machine soit éteinte (ni en fonction ni en état "sauvegardé"). Certains paramètres de la machine peuvent être aussi modifiés pendant qu'une machine est en fonction ; ces paramètres auront alors une sous-commande correspondante avec la sous-commande `VBoxManage controlvm` (voir ).

### Paramètres généraux

Les paramètres généraux suivants sont disponibles via `VBoxManage modifyvm` :

- `--name <nom>` : Ceci modifie le nom de la VM et renomme éventuellement les fichiers internes virtuels, comme décrit avec `VBoxManage createvm` ci-dessus.

- `--ostype <ostype>` : Ceci spécifie le système d'exploitation supposé fonctionner dans la VM. Pour en apprendre davantage sur les différents identifiants utilisables, utilisez `VBoxManage list ostypes`.

- `--memory <taillemémoire>` : Ceci définit la quantité de RAM, en Mo, que devrait s'affecter à elle-même la machine virtuelle sur l'hîte. Voir les remarques au pour plus d'informations.

- `--vram <taillevram>` : Ceci définit la quantité de RAM de la carte graphique. Voir pour des détails.

- `--acpi on|off` ; `--ioapic on|off` : Ces deux éléments déterminent si la VM devrait supporter respectivement l'ACPI et l'APIC I/O ; voir pour des détails.

- `--hardwareuuid <uuid>` : L'UUID présentée à l'invité via les tables mémoire (DMI/SMBIOS), les propriétés matérielles et invité. Par défaut, c'est le même que l'uuid de la VM. Utile quand vous clonez une VM. La téléportation en tient compte automatiquement.

- `--cpus <nombreprocesseur>` : Ceci définit le nombre de processeurs virtuels de la machine virtuelle (voir ). Si le branchement à chaud des processaurs est activé (voir ci-dessous), ceci définit le nombre maximum de processeurs virtuels qu'on peut brancher dans les machines virtuelles.

- `--rtcuseutc on|off` : Cette option fait tourner l'horloge en temps réel (RTC) en temps UTC (voir ).

- `--cpuhotplug on|off` : Ceci active le branchement à chaud du processeur. Quand vous l'activez, les processeurs virtuels peuvent être ajoutés et supprimés d'une machine virtuelle pendant qu'elle est en fonction. Voir pour plus d'informations.

- `--plugcpu|unplugcpu <id>` : Si vous avez activé le branchement des processeurs à chaud (voir ci-dessus), ceci ajoute un processeur virtuel aux machines virtuelles (ou en supprime un). `<id>` spécifie l'index du processeur virtuel à ajouter ou supprimer et doit être un numéro entre 0 et le nombre maximum de processeurs configurés avec l'option `--cpus`. Le processeur 0 ne peut jamais être supprimé.

- `--cpuexecutioncap <1-100>` : Ce paramètre contrôle le nombre de temps processeur utilisable par un processeur. La valeur 50 implique qu'un seul processeur virtuel peut utiliser jusqu'à 50% d'un seul processeur de l'hôte.

- `--pae on|off` : Ceci active/désactive la PAE (voir ).

- `--longmode on|off` : Ceci active/désactive le mode long (voir ).

- `--synthcpu on|off` : Ce paramètre détermine si VirtualBox présente ou non un processeur synthétique à l'invité pour permettre une migration en direct entre les systèmes hôtes qui diffèrent de manière significative.

- `--hpet on|off` : Ceci active/désactive un High Precision Event Timer (HPET) qui peut remplacer les timers du système primitif. C'est désactivé par défaut. Remarquez que Windows ne supporte un HPET qu'à partir de Vista.

- `--hwvirtex on|off` : Ceci active ou désactive l'utilisation des extensions du matériel de virtualisation (Intel VT-x ou AMD-V) dans le processeur de votre système hôte ; voir .

- `--triplefaultreset on|off` : ce paramètre permet de relancer l'invité au lieu de récupérer une Guru Meditation. Certains invités échouent par une triple erreur lors de la réinitialisation du processeur, donc on peut parfois souhaiter ce comportement. Cela ne fonctionne que sur les invités non SMP.

- `--nestedpaging on|off` : Si la virtualisation matérielle est activée, ce paramètre supplémentaire active ou désactive l'utilisation de la fonction de pagination nested du processeur de votre système hôte ; voir .

- `--largepages on|off` : Si la virtualisation matérielle et la pagination nested sont activées, pour Intel VT-x seulement, vous pouvez obtenir un gain de performances jusqu'à 5% en activant ce paramètre. Il fait utiliser à l'hyperviseur les grandes pages pour réduire l'utilisation du TLB et l'overhead.

- `--vtxvpid on|off` : Si la virtualisation matérielle est activée, pour Intel VT-x seulement, ce paramètre supplémentaire active ou désactive l'utilisation de la fonction TLB taggçe (VPID) du processeur de votre système hôte ; voir see .

- `--vtxux on|off` : Si vous avez activé la virtualisation matérielle, seulement pour VT-x d'Intel, ce paramètre active ou désactive l'utilisation de la fonction mode invité sans restriction pour faire tourner votre invité.

- `--accelerate3d on|off` : Ceci active, si vous avez installé les suppléments invité, la disponibilité de l'accélération 3D ; voir .

- Vous pouvez influencer le logo du BIOS affiché quand une machine virtuelle démarre avec un certain nombre de paramçtres. Par défaut, un logo VirtualBox est affiché.

  Avec `--bioslogofadein on|off` et `--bioslogofadeout on|off`, you pouvez déterminer si le logo devrait fade in and out.

  Avec `--bioslogodisplaytime <msec>` vous pouvez définir la durée d'affichage du logo en millisecondes.

  Avec `--bioslogoimagepath <cheminimage>` vous pouvez, si vous le souhaitez, remplacer l'image affichée par votre propre logo. L'image doit être un fichier BMP décompressé 256 couleurs avec des informations sur la zone des couleurs (au format Windows 3.0). La taille de l'image ne doit pas excéder 640 x 480.

- `--biosbootmenu disabled|menuonly|messageandmenu` : Ceci spécifie si le BIOS permet à l'utilisateur de sélectionner un périphérique de démarrage temporaire. `menuonly` supprime le message, mais l'utilisateur peut encore appuyer sur F12 pour sélectionner un périphérique de démarrage temporaire.

- `--nicbootprio<1-N> <priorité>` : Ceci spécifie l'ordre dans lequel les NICs sont essayés pour démarrer par le réseau (en utilisant PXE). La priorité est un entier entre 0 à 4. La priorité 1 est la plus élevée, la priorité 4 est la plus faible. La priorité 0, qui est celle par défaut sauf autrement spécifié, est la plus faible.

  Remarquez que cette option n'a d'effet que quand le démarrage Intel PXE ROM est utilisé.

- `--boot<1-4> none|floppy|dvd|disk|net` : Ceci spécifie l'ordre d'amorçage pour la machine virtuelle. Il y a quatre "slots", auxquels essaiera d'accéder la VM de 1 à 4, et pour chacun d'eux, vous pouvez définir un périphérique sur lequel la VM devrait essayer de démarrer.

- `--snapshotfolder default|<path>` : Ceci vous permet de spécifier le dossier dans lequel seront stockés les instantanés d'une machine virtuelle.

- `--firmware efi|bios` : Spécifie le firmware utilisé pour démarrer une machine virtuelle en particulier : EFI ou BIOS. N'utilisez EFI que si vous comprenez bien ce que vous faites.

- `--guestmemoryballoon <taille>` définit la taille par défaut de la mémoire du ballon de l'invité c'est-à-dire la mémoire affectée par les suppléments invité de VirtualBox à partir du szstème d'exploitation invité et rendue à l'hyperviseur pour être réutilisée par d'autres machines virtuelles. <taille> doit être spécifiée en mégaoctets. La taille par défaut est de 0 mégaoctets. Pour les détails, voir .

- `--lptmode<1-N> <Périphérique>` Spécifie le nom du périphérique du port parallèle utilisé par la fonction Pert parallèle. Utilisez ceci avant `--lpt`. Cette fonction est spécifique au système d'exploitation.

- `--lpt<1-N> <base E/S> <IRQ>` Spécifie l'adresse E/S du port parallèle et le numéro IRQ utilisés par la fonction Port parallèle. Utilisez ceci après `--lptmod`. L'adresse de base E/S et le numéro IRQ sont les valeurs vues par l'invité, c'est-à-dire les valeurs disponibles dans le gestionnaire de périphériques de l'invité.

- `--defaultfrontend default|<nom>` : Ceci vous permet de spécifier l'interface par défaut qui sera utilisée au démarrage de cette VM voir pour des détails.

### Paramètres réseaux

Les paramètres réseaux suivants sont disponibles avec `VBoxManage modifyvm`. Avec tous ces paramètres, le numéro décimal suivant directement le nom de l'option ("1-N" dans la in liste ci-dessous) spécifie l'adaptateur réseau virtuel dont vous modifiez les paramètres.

- `--nic<1-N> none|null|nat|bridged|intnet|hostonly|generic` : Avec cela, vous pouvez définir, pour chacune des cartes réseaux virtuelles de la VM, le type de réseau qui devrait être disponible. Ils peuvent ne pas être présents (`none`), non connectés à l'hôte (`null`), utiliser le network address translation (`nat`), le réseau bridgé (`bridged`) ou communiquer avec d'autres machines virtuelles en utilisant le réseau internal (`intnet`), le réseau host-only (`hostonly`), ou accéder à des sous-modes rarement utilisés (`generic`). Ces options correspondent aux modes décrits en détail au .

- `--nictype<1-N> Am79C970A|Am79C973|82540EM|82543GC|82545EM|virtio` : Cela vous permet, pour chacune des cartes réseaux virtuelles de la VM, de spécifier le matériel réseau que VirtualBox présente à l'invité ; voir .

- `--cableconnected<1-N> on|off` : Cela vous permet de déconnecter temporairement une interface réseau virtuelle comme si vous débranchiez un câble réseau d'une vraie carte réseau. Cela pourrait être utile pour reparamétrer certains composants logiciels dans la VM.

- Avec l'option "nictrace", vous pouvez éventuellement tracer le trafic réseau en l'envoyant vers un fichier pour faire du débogage.

  Avec `--nictrace<1-N> on|off`, vous pouvez activer un traçage réseau pour des cartes réseaux en particulier.

  Si vous l'activez, vous devez spécifier avec `--nictracefile<1-N> <nomfichier>` le fichier où devrait être journalisée la trace.

- `--bridgeadapter<1-N> none|<nompériphérique>` : Si le réseau bridgé est activé pour une carte réseau virtuelle (voir l'option `--nic` ci-dessus ; sinon ce paramètre n'a aucun effet),, utilisez cette option pour spécifier l'interface de l'hôte qu'utilisera l'interface réseau virtuelle donnée. Pour des détails, merci de voir .

- `--hostonlyadapter<1-N> none|<nompériphérique>` : Si le réseau host-only a été activé pour une carte réseau virtuelle (voir l'option --nic ci-dessus ; sinon ce paramètre n'a aucun effet), utilisez cette option spécifier l'interface réseau host-only qu'utilisera l'interface réseau donnée. Pour des détails, merci de voir .

- `--intnet<1-N> network` : Si le réseau interne a été activé pour une carte réseau virtuelle (voir l'option `--nic` ci-dessus ; sinon ce paramètre n'a aucun effet), utilisez cette option pour spécifier le nom du réseau interne (voir ).

- `--macaddress<1-N> auto|<mac>` : Avec cette option, vous pouvez définir l'adresse MAC de la carte réseau virtuelle. Normalement, chaque carte réseau virtuel se voit affecter une adresse aléatoire par VirtualBox Lors de la création de la VM.

- `--nicgenericdrv<1-N> <pilote fondation>` : Si le réseau générique a été activée pour une carte réseau virtuelle (voir l'option `--nic` ci-dessus ; sinon ce paramètre n'a aucun effet), ce mode vous permet d'accéder à des sous-modes réseaux rarement utilisés, tels que le réseau VDE ou le tunnel UDP.

- `--nicproperty<1-N> <nomparam>="paramvaleur"` : Cette option, associée avec "nicgenericdrv", vous permet de passer des paramètres aux fondations réseaux rarement utilisées.

  Ces paramètres sont des fondations spécifiques au moteur et sont différentes entre les pilotes de la foncation du tunnel UDP et du VDE. Par exemple,merci de voir .

#### Paramètres du réseau NAT.

Les paramètres de réseau NAT suivants sont disponibles via `VBoxManage modifyvm`. Avec tous ces paramètres, le numéro décimale suivant le nom de l'option ("1-N" dans la liste ci-dessous) spécifie l'adaptateur réseau virtuel que devrait modifier ces paramètres.

- `--natpf<1-N> [<nom>],tcp|udp,[<hostip>],<porthôte>,[<ipinvité>], <portinvité>` : Cette option définit une règle de redirection de port NAT (merci de voir pour des détails).

- `--natpf<1-N> delete <nom>` : Cette option supprime une règle de redirection de port NAT (merci de voir pour les détails).

- `--nattftpprefix<1-N> <préfixe>` : Cette option définit un préfixe pour le serveur TFTP intégré, à savoir là où se trouve le fichier de démarrage (merci de voir and pour les détails).

- `--nattftpfile<1-N> <fichierdémarrage>` : Cette option définit le fichier de démarrage TFT (merci de voir pour des détails).

- `--nattftpserver<1-N> <serveurtftp>` : Cette option définit l'adresse du serveur TFTP sur lequel démarrer (voir pour les détails).

- `--natdnspassdomain<1-N> on|off` : Cette option spécifie si le serveur DHCP passe le nom de domaine pour la résolution du nom du réseau.

- `--natdnsproxy<1-N> on|off` : Cette option fait faire du proxy au moteur NAT pour toutes les requêtes DNS de l'invité adressées au serveur DNS de l'hôte (merci de voir pour des détails).

- `--natdnshostresolver<1-N> on|off` : Cette option fait utiliser par le moteur NAT le mécanismes de résolveur de l'hôte pour gérer les requêtes DNS (merci de voir pour les détails).

- `--natnatsettings<1-N> [<mtu>],[<socksnd>],[<sockrcv>],[<tcpsnd>], [<tcprcv>]` : Cette option contrôle plusieurs paramètres NAT (merci de voir pour les détails).

- `--nataliasmode<1-N> default|[log],[proxyonly],[sameports]` : Cette option définit le comportement du cœur du moteur NAT : log - active la journalisation, proxyonly - switch les modes d'alias pour rendre NAT transparent, sameports renforce le moteur NAT pour envoyer des paquets via le même port qu'ils arrivent, default - désactive tous les modes mentionnés ci-dessus. (merci de voir pour des détails).

### Options du port série, du son, du presse-papier et de l'USB

Les autres paramètres matériels suivants sont disponibles avec `VBoxManage modifyvm` :

- `--uart<1-N> off|<I/O base> <IRQ>` : Avec cette option, vous pouvez configurer les ports série virtuels de la VM (voir pour une introduction.

- `--uartmode<1-N> <arg>` : Ce paramètre contrôle la façon dont VirtualBox se connecte à un port série virtuel donné (on la configurait jadis avec l'option `--uartX`, voir ci-dessus) sur l'hôte sur lequel fonctionne la machine virtuelle. Comme décrit en détail au , pour chaque port, vous pouvez spécifier `<arg>` comme une des options suivantes :

  - `disconnected` : Même si le port série apparaît dans l'invité, il ne sert à rien -- comme un vrai port COM sans câble.

  - `server <pipename>` : Sur un hôte Windows, ceci dit à VirtualBox de créer un tuyau nommé sur l'hôte, appelé `<pipename>` et de connecter le port série virtuel dessus. Remarquez que Windows exige que le nom d'un tuyau nommé commence par `\\.\pipe\`.

    Sur un hôte Linux, plutôt qu'un tuyau nommé, une socket de domaine local est utilisée.

  - `client <pipename>` : Ceci agit comme `server ...`, sauf que le tuyau (ou la socket de domaine local) n'est pas créée par VirtualBox, mais est supposée déjà exister.

  - `<devicename>` : Si, au lieu de celui ci-dessus, le nom du périphérique du port série matériel de l'hôte est spécifié, le port série virtuel est connecté à ce port matériel. Sur un hôte Windows, le nom du périphérique sera un port COM tel que `COM1` ; sur un hôte Linux, le nom du périphérique ressemblera à `/dev/ttyS0`. Cela vous permet de "brancher" un vrai port série à une machine virtuelle.

- `--audio none|null|oss` : Avec cette option, vous pouvez définir si la VM supporte le son.

- `--clipboard disabled|hosttoguest|guesttohost|bidirectional` : Avec ce paramètre, vous pouvez sélectionner si le presse-papier du système d'exploitation invité doit être partagé avec l'hôte ; voir . Cela exige que les suppléments invité soient installés dans la machine virtuelle.

- `--monitorcount <nombre>` : Cela active le support multi-monitoeurs ; voir .

- `--usb on|off` : Cette option active ou désactive le contrôleur virtuel USB de la VM ; voir pour les détails.

- `--usbehci on|off` : Cette option active ou désactive le contrôleur USB 2.0 virtuel de la VM ; voir pour des détails.

### Paramètres de la machine distante

Les paramètres suivants concernant le comportement de la machine distante sont disponibles avec `VBoxManage modifyvm` :

- `--vrde on|off` : Avec l'interface graphique de VirtualBox, ceci active ou désactive le serveur VirtualBox remote desktop extension (VRDE). Remarquez que si vous utilisez `VBoxHeadless` (voir ), VRDE est activé par défaut.

- `--vrdeport default|<ports>` : Un port ou une plage deports que le serveur VRDE peut sonder ; "default" ou "0" signifient le port 3389, le port RDP standard. Vous pouvez spécifier une liste de ports ou de plages de ports séparée par des virgules. Utilisez un tiret entre de numéros de ports pour spécifier une plage. Le serveur VRDE sondera un des ports disponibles dans la liste spécifiée. Une seule machine peut utiliser un port donné en même temps. Par exemple, l'option `--vrdeport 5000,5010-5012` dira au serveur de sonder un des ports suivants : 5000, 5010, 5011 ou 5012.

- `--vrdeaddress <adresse IP >` : L'adresse IP de l'interface réseau de l'hôte que sondera le serveur VRDE. Si vous la spécifiez, leserveur n'acceptra les connexions que sur l'interface de l'hôte spécifiée.

  On peut utiliser ce paramètre pour indiquer si le serveur VRDP devrait accepter des donnexions IPv4, IPv6 ou les deux :

  - IPv4 seulement : `--vrdeaddress "0.0.0.0"`

  - IPv6 seulement : `--vrdeaddress "::"`

  - IPv6 et IPv4 (par défaut) : `--vrdeaddress ""`

- `--vrdeauthtype null|external|guest` : Cela vous permet de choisir s'il faut une autorisation et sous quelle forme ; voir pour des détails.

- `--vrdemulticon on|off` : Ceci active la multiconnexions au même serveur VRDE si le serveur supporte cette fonction ; voir .

- `--vrdereusecon on|off` : Ceci spécifie le comportement du serveur VRDE quand plusieurs connexions sont désactivées. Quand on active cette option, le serveur autorisera un nouveau client à se connecter et il fermera la connexion existante. Quand cette option est désactivée (c'est le réglage par défaut), une nouvelle connexion ne sera pas acceptée si un client est déjà connecté au serveur.

- `--vrdevideochannel on|off` : Ceci active la redirection graphique, si elle est supportée par le serveur VRDE ; voir .

- `--vrdevideochannelquality <pourcent>` : Définit la qualité de l'image dans la redirection graphique ; voir .

### Paramètres de téléportation

Avec les commandes suivantes pour `VBoxManage modifyvm`, vous pouvez configurer une machine pour qu'elle soit une cible de téléportation. Voir pour une introduction détaillée.

- `--teleporter on|off` : Avec ce paramètre, vous activez ou désactivez l'attente par une machine d'une requête de téléportation venant du réseau lorsqu'elle est démarrée. Si elle est activée, quand on démarre la machine, cela ne démarre pas la machine virtuelle comme cela est normalement le cas, mais cela attend qu'une requête de téléportation n'arrive à l'adresse listée avec les deux options suivantes.

- `--teleporterport <port>`, `--teleporteraddress <adresse>` : il faut les utiliser avec --teleporter et elle dit à une machine virtuelle le port et l'adresse sur lesquelles elle doit écouter les demandes de téléportation d'une autre machine virtuelle. `<port>` peut être n'importe quel numéro de port TCP/IP libre (comme 6000) ; `<adresse>` peut être n'importe quelle adresse IP ou nom d'hôte et il spécifie une socket TCP/IP à sonder. Par défaut, c'est "0.0.0.0", ce qui signifie toutes les adresses.

- `--teleporterpassword <mot_de_passe>` : si vous donnez cet argument facultatif, la requête de téléportation ne réussira que si la machine source spécifie le même mot de passe que celui donné avec cette commande.

- `--teleporterfichier_mot_de_passe <mot_de_passe>` : si vous donnez cet argument facultatif, la requête de téléportation ne réussira que si la machine source spécifie le même mot de passe que celui spécifié dans le fichier donné avec cette commande. Utilisez `stdin` pour lire le mot de passe à partir de l'entrée standard.

- `--cpuid <leaf> <eax> <ebx> <ecx> <edx>` : Les utilisateurs avancés peuvent utiliser cette commande avant une opération de téléportation pour restreindre les possibilités du processeur virtuel présenté par VirtualBox au système d'exploitation invité. Il faut l'exécuter à la fois sur la machine source et cible. impliquées dans la téléportation et cela modifiera ce que l'invité verra quand il exécutera l'instruction machine `CPUID`. Cel pourrait aider les applications se comportant mal à cause d'un mauvais présupposé sur la présence de certaines capacités du processeur. La signification des paramètres dépend do matériel ; merci de vous reporter aux manuels des processeurs AMD ou Intel.

## VBoxManage clonevm

Cette commande crée une copie complète ou liée d'une machine virtuelle existante.

La sous-commande `clonevm` prend au moins en argument le nom de la machine virtuelle à cloner. Vous pouvez utiliser les paramètres supplémentaires suivants pour configurer davantage la procédure de clonage de la VM :

- `--snapshot <uuid>|<nom>` : Sélectionne un instantané spécifique auquel se reporte le processus de clonage. Par défaut, c'est à l'état courant qu'il se réfère.

- `--mode machine|machineandchildren|all` : Sélectionne le mode de clonage. Si `machine` est sélectionnée (comme par défaut), l'état actuel de la VM sans instantanés est cloné. En mode `machineandchildren`, l'instantané fourni par `--snapshot` et tous les instantanés fils sont clonés. Si vous sélectionnez le mode `all`, tous les instantanés de l'état actuel seront clonés.

- `--options link|keepallmacs|keepnatmacs|keepdisknames` : Permet de peaufiner encore davantage l'opération de clonage. La première dit de créer un clone lié, ce qui n'est possible que pour le clonage d'une machine à partir d'un instantané. Les deux options suivantes permettent de définir la façon dont les adresses MAC de chaque carte réseau virtuel seront gérées. Elles peuvent être soit réinitialisées (comme par défaut), soit inchangées (`keepallmacs`), soit inchangées quand le type de réseau est NAT (`keepnatmacs`). Si vous ajoutez `keepdisknames`, toutes les nouvelles images de disque dur s'appellent comme celles d'origine, sinon elles sont renommées.

- `--name <name>` : Sélectionne un nouveau nom pour la nouvelle machine virtuelle. Par défaut, il s'agit de "Nom d'origine Clone".

- `--basefolder <basefolder>` : Sélectionne le dossier où devrait être sauvegardée la configuration.

- `--uuid <uuid>` : Sélectionne l'UUID de la nouvelle VM. Cette id doit être unique dans l'instance de VirtualBox où ce clone doit être enregistré. Par défaut, un nouvel UUID est créé.

- `--register` : Enregistre automatiquement le nouveau clone dans l'installation de VirtualBox. Si vous voulez enregistrer la nouvelle VM plus tard à la main, voir pour les instructions pour faire cela.

## VBoxManage import

Cette commande importe un applicatif virtuel au format OVF en copiant les images de disque virtuelles et en créant les machines virtuelles dans VirtualBox. Voir pour une présentation des applicatifs.

La commande `import` prend comme argument au moins le chemin d'un fichier OVF en entrée et elle attend que les images de disque, s'il en faut, soient dans le même répertoire que le fichier OVF. Beaucoup d'autres options en ligne de commande sont supportées pour contrôler en détails ce qui est importé et pour modifier les paramètres d'importation, mais les détails dépendent du contenu du fichier OVF.

Il est donc recommandé de lancer d'abord la sous-commande import avec l'option `--dry-run` ou `-n`. Cela affichera alors à l'écran le contenu d'un applicatif et la façon de l'importer dans VirtualBox, ainsi que les options facultatives en ligne de commandes pour influencer le comportement de l'importation.

Par exemple, voilà l'écran qui s'afficherait pour un applicatif modèle contenant un invité Windows XP :

    VBoxManage import WindowsXp.ovf --dry-run
    Interpreting WindowsXp.ovf...
    OK.
    Virtual system 0:
     0: Suggested OS type: "WindowsXP"
        (change with "--vsys 0 --ostype <type>"; use "list ostypes" to list all)
     1: Suggested VM name "Windows XP Professional_1"
        (change with "--vsys 0 --nomvm <name>")
     3: Number of CPUs: 1
        (change with "--vsys 0 --cpus <n>")
     4: Guest memory: 956 MB (change with "--vsys 0 --memory <MB>")
     5: Sound card (appliance expects "ensoniq1371", can change on import)
        (disable with "--vsys 0 --unit 5 --ignore")
     6: USB controller
        (disable with "--vsys 0 --unit 6 --ignore")
     7: Network adapter: orig bridged, config 2, extra type=bridged
     8: Floppy
        (disable with "--vsys 0 --unit 8 --ignore")
     9: SCSI controller, type BusLogic
        (change with "--vsys 0 --unit 9 --scsitype {BusLogic|LsiLogic}";
        disable with "--vsys 0 --unit 9 --ignore")
    10: IDE controller, type PIIX4
        (disable with "--vsys 0 --unit 10 --ignore")
    11: Hard disk image: source image=WindowsXp.vmdk,
          target path=/home/user/disks/WindowsXp.vmdk, controller=9;channel=0
        (change controller with "--vsys 0 --unit 11 --controller <id>";
        disable with "--vsys 0 --unit 11 --ignore")

Comme vous pouvez le voir, les éléments de configuration individuelle sont numérotés et en fonction de leur type de support, les options en ligne de commande. La sous-commande import peut être redirigée pour ignorer de nombreux éléments tels que ceux avec des options `--vsys X --unit Y --ignore`, où X est le numéro du système virtuel (zéro sauf s'il y a plusieurs descriptions de système virtuel dans l'applicatif) et Y le numéro de l'élément, tel qu'affiché à l'écran.

Dans l'exemple ci-dessus, Item #1 spécifie le nom de la machine cible dans VirtualBox. Items #9 et #10 spécifient respectivement les contrôleurs de disque. Item #11 décrit une image de disque dur ; dans ce cas, l'option supplémentaire `--controller` indique l'élément auquel devrait être connectée l'image de disque, avec le fichier OVF d'origine par défaut.

Vous pouvez associer plusieurs éléments pour un même système virtuel derrière une même option `--vsys`. Par exemple, pour importer une machine comme décrit dans l'OVF mais sans la carte son ni le contrôleur USB, mais avec l'image de disque connectée au contrôleur IDE au lieu du contrôleur SCSI, utilisez ceci :

    VBoxManage import WindowsXp.ovf
          --vsys 0 --unit 5 --ignore --unit 6 --ignore --unit 11 --controller 10

## VBoxManage export

Cette commande exporte une ou plusieurs machines virtuelles à partir de VirtualBox vers un applicatif virtuel au format OVF, ce qui inclut la copie de leurs images de disque virtuel en VMDK compressé. Voir pour une présentation des applicatifs.

La commande `export` est simple à utiliser : affichez la machine (ou les machines) que vous voulez exporter dans un même fichier OVF et spécifiez le fichier OVF cible après l'option facultative `--output` ou `-o`. Remarquez que le répertoire du fichier cible OVF recevra également les images de disques exportés au format VNDK compressé (quel que soit le format d'origine) et vous devriez leur laisser assez d'espace disque.

Derrière une simple exportation d'une machine virtuelle donnée, vous pouvez ajouter diverses informations produit dans le fichier applicatif. Utilisez `--product`, `--producturl`, `--vendor`, `--vendorurl` et `--version` pokr spécifier les informations supplémentaires. Pour des raisons légales, vous pouvez ajouter un texte de licence ou le contenu d'un fichier de licence en utilisant respectivement les options `--eula` et `--eulafile`. Comme avec l'importation OVF, vous devez utiliser l'option `--vsys X` pour adresser les options précitées à la bonne machine virtuelle.

Pour les produits de virtualisation non pleinement compatibles avec le standard OVF 1.0, vous pouvez activer un mode OVF 0.9 basique avec l'option `--legacy09`.

## VBoxManage startvm

Cette commande démarre une machine virtuelle qui est en état "Éteinte" ou "Sauvegardée".

Le paramètre facultatif `--type` détermine si la machine sera démarrée dans une fenêtre ou si la sortie devrait passer par `VBoxHeadless`, en activant ou pas VRDE ; voir pour plus d'informations. La liste des types peut changer et il n'est pas garanti que tous les types sont acceptés par la variante d'un produit.

La valeur par défaut, globale ou individuelle à une VM, du type d'interface d'une VM sera utilisée si vous ne spécifiez pas explicitement le type. Si aucune n'est définie, c'est la variante GUI qui sera démarrée.

Les valeurs suivantes sont autorisées :

`gui`

  Démarre une VM en affichant une fenêtre graphique. C'est le cas par défaut.

`headless`

  Démarre une VM sans fenêtre pour un affichage distant.

`sdl`

  Démarre une VM avec une GUI minimale et limitée dans ses fonctionnalités.

Si vous rencontrez des problèmes en démarrant des machines virtuelles avec certaines interfaces et s'il n'y a pas d'informations d'erreur convaincantes, essayez de démarrer les machines virtuelles en lançant directement leur interface respective, car cela peut donner des informations supplémentaires sur l'erreur.

## VBoxManage controlvm

La sous-commande `controlvm` vous permet modifier l'état d'une machine virtuelle en fonction. Vous pouvez spécifiar ce qui suit :

- `VBoxManage controlvm <vm> pause` met temporairement une machine virtuelle en attente, sans vraiment changer son état. La fenêtre de la VM sera grisée pour indiquer que la VM est actuellement en pause. (Cela revient à sélectionner l'élément "Pause" dans le menu "Machine" de l'interface graphique.)

- Utilisez `VBoxManage controlvm <vm> resume` pour inverser une commande `pause` précédente. (Cela revient à sélectionner l'élément "Reprendre" du menu "Machine" de l'interface graphique.)

- `VBoxManage controlvm <vm> reset` a le même effet sur une machine virtuelle que l'appui sur le bouton "Reset" d'un vrai ordinateur : un redémarrage à froid de la machine virtuelle, ce qui redémarrera le système d'exploitation invité immédiatement. L'état de la VM n'est pas sauvegardé et des données peuvent être perdues. (Cela revient à sélectionner l'élément "Réinitialiser" du menu "Machine" de l'interface graphique.)

- `VBoxManage controlvm <vm> poweroff` a le même effet sur une machine virtuelle que de débrancher le câble d'alimentation d'un vrai ordinateur. Là encore, l'état de la VM n'est pas sauvegardé et il se peut que des données soient perdues. (Cela revient à sélectionner l'élément "Couper" de l'interface graphique ou à appuyer sur le bouton Fermer de la fenêtre puis sélectionner "Couper la machine" dans la boîte de dialogue.)

  Après cela, l'état de la VM sera "éteint". À partir de là, vous pouvez la relancer ; voir .

- `VBoxManage controlvm <vm> savestate` sauvegardera l'état actuel de la VM sur le disque et arrêtera la VM. (Cela revient à sélectionner l'élément "Fermer" du menu "Machine" de l'interface graphique ou à appuyer sur le bouton fermer de la fenêtre et sélectionner "Sauvegarder l'état de la machine" dans la boîte de dialogue.)

  Après cela, l'çtat de la machine sera "Sauveegardé". À partir de là, vous pouvez la relancer ; voir .

- `VBoxManage controlvm <vm> teleport --hostname <nom> --port <port> [--passwordfile <fichier> | --password <mot_de_passe>]` passe la machine en source de téléportation et engage une téléportation sur la cible donnée. Voir pour une présentation. Si vous spécifiez le mot de passe facultatif, il doit correspondre à celui donné avec la commande `modifyvm` pour la machine cible ; voir pour des détails.

Quelques options supplémentaires sont disponibles avec `controlvm`, ne modifiant pas directement l'état de la VM en fonction :

- L'opération `setlinkstate<1-N>` connecte ou déconnecte les câbles réseaux virtuels à leurs interfaces réseaux.

- `nic<1-N> null|nat|bridged|intnet|hostonly|generic` : Avec ceci, vous pouvez définir, pour chaque carte réseau virtuelle de la VM, le type de réseau qui devrait être disponible. Elles peuvent ne pas être connectées à l'hôte (`null`), utiliser network address translation (`nat`), le résaeau bridgé (`bridged`) ou communiquer avec d'autres machines virtuelles en utilisant le réseau interne (`intnet`) ou host-only (`hostonly`) ou accéder à des sous-modes rarement utilisés (`generic`). Ces options correspondent aux modes décrits en détails au .

- `usbattach` et `usbdettach` rendent les pçriphériques USB de l'hôte, à la volée, visibles pour la machine virtuelle sans besoin de créer des filtres préalablement. Les périphériques USB peuvent être désignés par leur UUID (identifiant unique) ou leur adresse sur le système hôte.

  Vous pouvez utiliser `VBoxManage list usbhost` pour trouver ces informations.

- `vrde on|off` vous permet d'activer ou de désactiver le serveur VRDP s'il est installé.

- `vrdeport default|<ports>` modifie le port ou la plage de ports que peut sonder le serveur VRDP ; "default" ou "0" signifient le port 3389, celui standard pour RDP. Pour des détails, voir la description de l'option `--vrdeport` au .

- `setvideomodehint` demande que le système invité passe dans un mode graphique particulier. Cela exige l'installation des suppléments invité et ne fonctionner pas pour tous les systèmes invités.

- `screenshotpng` prend une impression écran de l'affichage invité et le sauvegarde au format PNG.

- L'opération `setcredentials` est utilisé pour les identifications distantes dans les invités Windows. Pour des détails, merci de vous reporter au .

- L'opération `guestmemoryballoon` modifie la taille du ballon de la mémoire de l'invité, c'est-à-dire la mémoire affectée par les suppléments invité de VirtualBox au système d'exploitation invité et rendue à l'hyperviseur pour être réutilisée par d'autres machines virtuelles. Elle doit être spécifiée en mégaoctets. Pour des détails, voir .

- `cpuexecutioncap <1-100>` : Cette opération contrôle la quantité de temps processeur que peut utiliser un processeur virtuel. Une valeur de 50 implique qu'un seul processeur virtuel peut utiliser jusqu'à 50% d'un seul processeur de l'hôte.

## VBoxManage discardstate

Cette commande désactive l'état sauvegardé d'une machine virtuelle qui n'est pas en fonction, ce qui fera redémarrer son système d'exploitation la prochaine fois que vous démarrerez. Cela revient à débrancher le câble d'alimentation d'une machine physique et vous devrieu l'éviter si possible.

## VBoxManage adoptstate

Si vous avez un fichier d'çtat sauvegardé (`.sav`), c'est-à-dire séparé de la configuration de la VM, vous pouvez "adopter" le fichier. Cela passera la VM en état sauvegardé et quand vous la démarrerez, VirtualBox essaiera de la restaurer à partir du fichier d'état sauvegardé que vous avez indiqué. Cette commande ne devrait être utilisée que dans des configurations spéciales.

## VBoxManage snapshot

Cette commande est utilisée pour contrôler les instantanés en ligne de commande. Un instantané consiste en une copie complète des paramètres de la machine virtuelle, copiés à un moment où l'instantané a été pris, et éventuellement un fichier d'état sauvegardé de la machine virtuelle si l'instantané a été pris alors que la machine était en fonction. Après qu'un instantné a été pris, VirtualBox cre un disque dur de différenciatin pour chaque disque dur normal associé à la machine pour que, quand on restaure un instantané, les disques durs virtuels de la machine virtuelle puissent être rapidement réinitialisés en reabandonnant simplement les fichiers de différenciation.

L'opération `take` prend un instantané de l'état actuel de la machne viruelle. Vous devez fournir un nom pour l'instantané et vous pouvez éventuellement entrer une description. Le nouvel instantané est inséré à l'arborescence des instantanés comme un fichier de l'instantané actuel et il devient le nouvel instantané actuel. Le paramètre `--description` permet de décrire l'instantané. Si vous spécifiez `--live`, la VM ne s'arrêtera pas pendant la créqation de l'instantané.

L'opération `delete` efface un instantané (spécifié par son nom ou son UUID). Cela peut être long à se terminer car les images de différenciation associées à l'instantané pourraient devoir être synchronisées avec leurs images de différenciation filles.

L'opération `restore` restaurera l'instantané donné (spécifié par son nom ou son UUID) en réinitialisant les paramètres de la machine virtuelle et l'état actuel à ceux de l'instantané. L'état actuel précédent de la machine sera perdu. Après cela, l'instantané donné devient le nouvel instantané "actuel" pour que les instantanés consécutifs s'insèrent sous l'instantané à partir duquel on a restauré.

L'opération `restorecurrent` est un raccourci pour restaurer l'instantané actuel (donc l'instantané d'où provient l'état actuel). Cette sous-commande revient à utiliser la sous-commande "restore" avec le nom ou l'UUID de l'instantané actuel, sauf qu'elle évite l'étape supplémentaire de déterminer ce nom ou cet UUID.

Avec l'opération `edit`, vous pouvez modifier le nom ou la description d'un instantané existant.

Avec l'opération `showvminfo`, vous pouvez voir les paramètres de la machine virtuelle stockées dans un instantané existant.

## VBoxManage closemedium

Cette commande supprime un fichier image de disque dur, de DVD ou disquette, d'un registre de médias VirtualBox. Avant VirtualBox 4.0, il fallait appeler VBoxManage openmedium avant de pouvoir attacher à média à une machine virtuelle ; cet appel "enregistrait" le média avec le registre des médias global de VirtualBox. Avec VirtualBox 4.0, ce n'est plus nécessaire ; les médias sont ajoutés aux registres des médias automatiquement. L'appel "closemedium" a cependant été conservé pour permettre de supprimer explicitement un média du registre.

Éventuellement, vous pouvez demander que l'image seit effacée. Vous aurez les retours circonstanciés selon lesquels la suppression a échoué, mais l'image ne sera pas enregistrée.

## VBoxManage storageattach

Cette commande attache/modifie/supprime un média de stockage connecté à un contrôleur de stockage précédemment ajouté avec la commande `storagectl` command (voir la section précédente). La syntaxe est ainsi :

    VBoxManage storageattach    <uuid|nomvm>
                                --storagectl <name>
                                [--port <number>]
                                [--device <number>]
                                [--type dvddrive|hdd|fdd]
                                [--medium none|emptydrive|
                                          <uuid>|<filename>|host:<drive>|iscsi]
                                [--mtype normal|writethrough|immutable|shareable]
                                [--comment <text>]
                                [--setuuid <uuid>]
                                [--setparentuuid <uuid>]
                                [--passthrough on|off]
                                [--tempeject on|off]
                                [--nonrotational on|off]
                                [--discard on|off]
                                [--bandwidthgroup name|none]
                                [--forceunmount]
                                [--server <name>|<ip>]
                                [--target <target>]
                                [--tport <port>]
                                [--lun <lun>]
                                [--encodedlun <lun>]
                                [--username <username>]
                                [--password <password>]
                                [--initiator <initiator>]
                                [--intnet]

Un certain nombre de paramètres sont requis classiquement ; ceux à la fin de la liste ne sont requis que pour les cibles iSCSI (voir ci-dessous).

Les paramètres classiques sont :

`uuid|nomvm`

  Le nom ou l'UUID de la VM. Obligatoire.

`storagectl`

  Nom du contrôleur de stockage. Obligatoire. Vous pouvez obtenir la liste des contrôleurs de stockage actuellement attachés à une VM avec `VBoxManage showvminfo` ; voir .

port

  Le numéro du port du contrôleur de stockage qui doit être modifié. Obligatoire, sauf si le contrôleur de stockage n'a qu'un seul port.

device

  Le numéro du périphérique du port à modifier. Obligatoire, sauf si le contrôleur de stockage n'a qu'un périphérique par port.

type

  Définit le type de lecteur auquel doit être attaché/détaché/modifié un média. On ne peut se passer de cet argument que si le type de média peut être déterminé par le média donné avec l'argument `--medium` argument ou à partir de précédents rattachements de médias

medium

  Spécifie ce qu'il faut attacher. Les valeurs suivantes sont supportées :

  - "none" : Tout périphérique existant serait supprimé du slot donné.

  - "emptydrive" : Pour un lecteur amovible ou de DVD virtuel, cela fait se comporter le périphérique comme un lecteur amovible dans lequel on n'a inséré aucun média.

  - "additions" : Seulement pour un lecteur DVD virtuel, ceci connecte l'image des Suppléments invité de VirtualBox au slot de périphérique donné.

  - Si vous spécifiez un UUID, il doit s'agir de l'UUID d'un média de stockage déjà connu de VirtualBox (par exemple car il a été attaché à une autre machine virtuelle). Voir pour la façon de lister les médias connus. Ce média est alors attaché au slot du périphérique donné.

  - Si vous spécifiez un nom de fichier, il doit s'agir du chemin complet vers une image de disque existante (ISO, RAW, VDI, VMDK ou autre), qui est donc attaché au slot du périphérique donné.

  - "host:<lecteur>": Pour un lecteur amovible ou de DVD virtuel seulement, ceci connecte le slot du périphérique donné au lecteur amovible ou de DVD spécifié sur l'ordinateur hôte.

  - "iscsi" : Pour les disques durs virtuels seulement, cela permet de spécifier une cible iSCSI. Dans ce cas, vous devez donner davantage de paramètres ; voir ci-dessous.

  Certaines modifications ci-dessus, en particulier concernant les médias amovibles (disquettes ou CDs/DVDs), peuvent prendre effet pendant que la VM est en fonction. Les autres (changement de périphérique ou dans les slots des disques durs) exigent que la VM soit éteinte.

mtype

  Définit la façon dont ce média se comporte vis-à-vis des instantanés et des opérations d'écriture. Voir pour des détails.

comment

  Une description que vous souhaitez stocker avec ce média (facultative ; par exemple pour une cible iSCSI, "Gros serveur de stockage de l'étage inférieur"). C'est purement descriptif et facultatif pour que le média fonctionne correctement.

setuuid, setparentuuid

  Modifie l'UUID ou l'UUID parent d'un média avant de l'attacher à une VM. C'est une option pour experts. Une utilisation impropre peut rendre le média inutilisable ou donner des configurations de VM cassées si une autre VM se réfère déjà au même média. La variante la plus fréquemment utilisée est `--setuuid ""`, qui affecte un nouvel UUID (aléatoire) à une image. Cela sert à résoudre des erreurs d'UUID dupliqués si on a dupliqué une image par les outils de copie de fichiers..

passthrough

  Seulement pour un lecteur DVD virtuel, vous pouvez activer le support de gravure sur DVD (actuellement expérimental ; voir ).

tempeject

  Seulement pour un lecteur DVD virtuel, vous pouvez configurer le comportement pour avoir l'éjection du média synchrnmiùe avec l'invité. Si vous l'activez, l'éjection n'a qu'un effet temporaire. Si vous éteignez puis redémarrez la VM, le média configuré au départ sera toujours dans le lecteur.

nonrotational

  Ce paramètre permet d'activer le drapeau non-rotational pour les disques durs virtuels. Certains invités (comme Windows 7+) gèrent de tels disques comme des SSDs et ne fragmentent pas de tels médias.

bandwidthgroup

  Définit le groupe de bande passante à utiliser pour le périphérique donné ; voir .

forceunmount

  Seulement pour un lecteur DVD ou amovible virtuel, cela démonte de force le DVD/CD/disquette ou monte un nouveau DVD/CD/disquette même si celui précédent est verrouillé en lecture par l'invité. De nouveau, voir pour des détails.

Quand on utilise "iscsi" avec le paramètre `--medium` pour le support iSCSI -- see --, vous pouvez ou devez utiliser des paramètres supplémentaires :

server

  Le nom de l'hôte ou l'adresse IP de la cible iSCSI ; requis.

target

  La chaîne du nom de la cible. Il est déterminé par la cible iSCSI et il est utilisé pour identifier la ressource de stockage ; requis.

tport

  Numéro de port TCP/IP du service iSCSI sur la cible (facultatif).

lun

  Numéro d'unité logique de la ressource cible (facultatif). Souvent, cette valeur vaut zéro.

username, password

  Nom d'utilisateur et mot de passe (initiator secret) pour l'authentification sur la cible si nécessaire (facultatif).

  Le nom d'utilisateur et le mot de passe sont stockés sans chiffrement (donc en clair) dans le fichier XML de configuration de la VM si vous ne fournissez aucun paramètre de mot de passe. Quand vous spécifiez pour la première fois un paramètre de mot de passe, le mot de passe est stocké et chiffré.

intnet

  Si vous le spécifiez, connecte à la cible iSCSI via le réseau interne. Cela nécessite une configuration supplémentaire décrite au .

## VBoxManage storagectl

Cette commande attache/modifie/supprime un contrôleur de stockage. Après elle, on peut attacher des médias virtuels au contrôleur avec la commande `storageattach` (voir la prochaine section).

La syntaxe est comme suit :

    VBoxManage storagectl       <uuid|nomvm>
                                --name <nom>
                                [--add <ide/sata/scsi/floppy>]
                                [--controller <LsiLogic|LSILogicSAS|BusLogic|
                                              IntelAhci|PIIX3|PIIX4|ICH6|I82078>]
                                [--portcount <1-30>]
                                [--hostiocache on|off]
                                [--bootable on|off]
                                [--remove]

où les paramètres signifient :

uuid|nomvm

  Nom ou UUID de la VM. Obligatoire.

nom

  Nom du contrôleur de stockage. Obligatoire.

add

  Définit le type de bus système auquel doit être connecté le contrôleur de stockage.

controller

  Permet de choisir le type de chipset à émuler pour le contrôleur de stockage donné.

--portcount

  Ceci détermine le nombre de ports que le contrôleur SATA devrait supporter.

hostiocache

  Configure l'utilisation du cache E/S de l'hîte pour toutes les images de disque attachées à ce contrôleur de stockage. Pour des détails, merci de voir .

bootable

  Sélectionne si ce contrôleur est amorçable.

remove

  Supprime le contrôleur de stockage de la config de la VM.

## VBoxManage bandwidthctl

Cette commande crée/efface/modifie/affiche les groupes de bande passante de la machine virtuelle donnée :

    VBoxManage bandwidthctl    <uuid|nomvm>
                                add <nom> --type disk|network --limit <megabytes per second>[k|m|g|K|M|G] |
                                set <nom> --limit <megabytes per second>[k|m|g|K|M|G] |
                                remove <nom> |
                                list [--machinereadable]

Les sous-commandes suivantes sont disponibles :

- `add`, crée un nouveau groupe de dande passante d'un type doné.

- `set`, modifie la limite d'un groupe de bande passante existante.

- `remove`, détruit un groupe de bande passante.

- `list`, affiche tous les groupes de bande passante définis pour la VM donnée.

Les paramètres signifient :

uuid|nomvm

  Le nom ou l'UUID de la VM. Obligatoire.

nom

  Nom du groupe de bande passante. Obligatoire.

type

  Type de groupe de bande passante. Obligatoire. Deux types sont supportés : `disk` et `network`. Voir ou pour une description d'un type particulier.

limit

  Spécifie la limite du groupe donné. On peut le modifier pendant que la VM est en fonction. L'unité par défaut est en mégaoctet par seconde. Vous pouvez modifier l'unité en spécifiant un des suffixes suivants : `k` pour kilobits/s, `m` pour mégabits/s, `g` pour gigabits/s, `K` pour kilo octets/s, `M` pour méga octets/s, `G` pour giga octets/s.

Les limites de bande passante du réseau ne s'appliquent qu'au trafic émis par les machines virtuelles. Le trafic reçu par les VMs est illimité.

Pour supprimer un groupe de bande passante, il ne doit être référencé sur aucun disque ou adaptateur d'une VM en fonction.

## VBoxManage showhdinfo

Cette commande affiche des informations sur une image de disque virtuelle, en particulier sa taille sur le disque, son type et les machines virtuelles qui l'utilisent.

Pour être compatible avec des versions plus anciennes de VirtualBox la commande "showvdiinfo" est également supportée et associée en interne à la commande "showhdinfo".

L'image de disque doit être spécifiée soit par son UUID (si le média est enregistré), soit par le nom du fichier. Les images enregistrées peuvent être listées par `VBoxManage list hdds` (voir pour plus d'informations). Un nom de fichier doit être spécifié en tant que chemin valide, soit absolu soit relatif en partant du répertoire actuel.

## VBoxManage createhd

Cette commande crée une nouvelle de disque dur virtuel. La syntaxe est comme suit :

    VBoxManage createhd         --filename <nomfichier>
                                --size <mégaoctets>
                                [--format VDI|VMDK|VHD] (par défaut : VDI)
                                [--variant Standard,Fixed,Split2G,Stream,ESX]

où les paramètres signifient :

`nomfichier`

  Permet de choisir un nom de fichier. Obligatoire.

`mégaoctets`

  Permet de définir la capacité de l'image, en MiO. Obligatoire.

`format`

  Permet de choisir un format de fichier pour le fichier de sortie, différent du format du fichier d'entrée.

`variant`

  Permet de choisir une variante du format de fichier pour le fichier de sortie. C'est une liste de drapeaux séparée par des virgules. Toutes les combinaisons ne sont pas supportées, spécifier des drapeaux incohérents donne un message d'erreur.

Pour être compatible avec d'anciennes versions de VirtualBox, la commande "createvdi" est également supportée et associée en interne avec la commande "createhd".

## VBoxManage modifyhd

Avec la commande `modifyhd`, vous pouvez modifier les caractéristiques d'une image de disque après l'avoir créé :

    VBoxManage modifyhd         <uuid>|<nomfichier>
                                [--type normal|writethrough|immutable|shareable|
                                        readonly|multiattach]
                                [--autoreset on|off]
                                [--compact]
                                [--resize <megabytes>|--resizebyte <octets>]

Malgré le "hd" du nom de la sous-commande, la commande fonctionne avec toutes les images de disque et pas seulement les disques durs. Pour être compatible avec les anciennes versions de VirtualBox, la commande "modifyvdi" est également supportée et a été associée en interne à la commande"modifyhd".

L'image de disque doit être spécifiée soit par son UUID (si le média est enregistré), soit par le nom du fichier. Les images enregistrées peuvent être listées par `VBoxManage list hdds` (voir pour plus d'informations). Un nom de fichier doit être spécifié en tant que chemin valide, soit absolu soit relatif en partant du répertoire actuel.

Les options suivantes sont disponibles :

- Avec l'argument `--type`, vous pouvez modifier le type d'une image existante entre le mode normal, immuable, write-through et autres modes ; voir pour des détails.

- Pour les disques durs immuables seulement (de différenciation), l'option `--autoreset on|off` détermine si le disque est automatiquement réinitialisé à chaque démarrage de la VM (de nouveau, voir ). Par défaut, c'est actif.

- L'option `--compact`, peut être utilisée pour compresser des images de disque (à savoir supprimer des blocs qui ne contiennent que des zéros). Cela réallègera une image à taille dynamique ; cela réduira la taille physique de l'image sans changer la taille logique du disque virtuel. La compression fonctionne aussi bien pour les images de base que celles de différenciation créées dans un instantané.

  Pour que l'opération soit efficace, il faut d'abord libérer de l'espace dans le système invité en y mettant des zéros via le logiciel adapté. Pour les invités Windows, vous pouvez utiliser l'outil `sdelete` de Microsoft. Exécutez `sdelete -z` dans l'invité pour mettre des zéros dans l'espace libre avant de compresser l'image de disque virtuel. Pour Linux, utilisez l'outil `zerofree` qui supporte les systèmes de fichiers s ext2/ext3. Pour les invités Mac OS X, utilisez utilisez la fonction Supprimer l'espace libre de l'outil de disque intégré. Utilisez-y Zero Out Data.

  Remarquez que la compression n'est actuellement disponible que pour les images VDI. Vous pouvez obtenir la même chose en mettant des zéros sur les blocs libres et clonant le disque vers un autre format dynamique. Vous pouvez utiliser ce contournement jusqu'à ce que la compression soit supportée pour les autres formats de disque que VDI.

- L'option `--resize x` (où x est le nouvel espace total désiré en mégaoctets) vous permet de modifier la capacité d'une image existante ; ceci ajuste la taille logique d'un disque virtuel sans beaucoup changer la taille physiqu. Le redimensionnement d'images a été ajouté à VirtualBox 4.0. Cela ne fonctionne actuellement que pour les formats VDI et VHD et pour les variantse, à taille dynamique, et vous ne pouvez l'utiliser que pour augmenter (ou réviser) la capacité. Par exemple, si vous avez créé au départ un disque de 10G à présent plein, vous pouvez utiliser la commande `--resize 15360` pour passer la capacité à 15G (15,360Mo) sans devoir créer une nouvelle image et y copier toutes les données à partir d'un e machine virtuelle. Cependant, remarquez que cela ne change que la capacité du lecteur ; vous devrez ensuite, en général, utiliser un outil de gestion des partitions dans l'invité pour ajuster la partition principale et remplir le lecteur.

  L'option `--resizebyte x` fait presque la même chose mait x est exprimé en octets au lieu de mégaoctets.

## VBoxManage clonehd

Cette commande duplique une image de disque dur virtuel enregistrée vers un nouveau fichier image ayant un nouvel identifiant unique (UUID). La nouvelle image peut être transférée vers un autre système hôte ou réimportée dans VirtualBox en utilisant le gestionnaire de médias virtuels ; voir et . La syntaxe est comme suit :

    VBoxManage clonehd         <uuid>|<nomfichier> <outputfile>
                               [--format VDI|VMDK|VHD|RAW|<other>]
                               [--variant Standard,Fixed,Split2G,Stream,ESX]
                               [--existing]

L'image de disque à cloner et celle cible doivent être spécifiées soit par leur UUID (si le média est enregistré), soit par leur nom du fichier. Les images enregistrées peuvent être listées par `VBoxManage list hdds` (voir pour plus d'informations). Un nom de fichier doit être spécifié en tant que chemin valide, soit absolu soit relatif en partant du répertoire actuel.

Les options suivantes sont disponibles :

`--format`

  Permet de choisir un format de fichier pour le fichier de sortie, autre que celui du fichier d'entrée.

`--variant`

  Permet de choisir une variante de format de fichier pour le fichier de sortie. C'est une liste de drapeaux séparée par des virgules. Toutes les combinaisons ne sont pas supportées, spécifier des drapeaux incohérents donne un message d'erreur.

`--existing`

  Effectue le clonage sur un média de destination existant. Seule la partie du média source convenant au média de destination est copiée. Cela signifie que si le média de destination est plus petit que la source, seule une partie en est copiée, et si le média de destination est plus gros que la source, le reste de l'espace du média de destination reste inchangé.

Pour être compatible avec les anciennes versions de VirtualBox, la commande "clonevdi" est également supportée et elle a été associée en interne à la commande "clonehd".

## VBoxManage convertfromraw

Cette commande convertit une image de disque brute en fichier VirtualBox Disk Image (VDI). La syntaxe est la suivante :

    VBoxManage convertfromraw   <filename> <outputfile>
                                [--format VDI|VMDK|VHD]
                                [--variant Standard,Fixed,Split2G,Stream,ESX]
                                [--uuid <uuid>]
    VBoxManage convertfromraw   stdin <fichiersortie> <octets>
                                [--format VDI|VMDK|VHD]
                                [--variant Standard,Fixed,Split2G,Stream,ESX]
                                [--uuid <uuid>]

où les paramètres signifient :

`--bytes`

  La taille du fichier image, en octets, fournie en entrée.

`--format`

  Sélectionnez le format de l'image de disque à créer. Par défaut, c'est VDI.

`--variant`

  Permet de choisir une variante de format de fichier pour le fichier en sortie. C'est une liste de drapeaux séparée par des virgules. Toutes les combinaisons ne sont pas supportées, spécifier des drapeaux incohérents donne un message d'erreur.

`--uuid`

  Permet de spécifier l'UUID ou le fichier de sortie.

La deuxième forme oblige VBoxManage à lire le contenu de l'image de disque à partir de l'entrée standard (utile pour utiliser cette commande en ligne).

Pour être compatible avec d'anciennes versions de VirtualBox, la commande "convertdd" est aussi supportée et elle est associée en interne à la commande "convertfromraw".

## VBoxManage getextradata/setextradata

Ces commandes vous permet d'attacher et de récupérer des chaînes de données dans une machine virtuelle ou à une configuration de VirtualBox (en spécifiant `global` au lieu d'un nom de machine virtuelle). Vous pouvez spécifier une clé (comme chaîne de texte) pour associer les données que vous pourrez récupérer plus tard. Par exemple :

    VBoxManage setextradata Fedora5 installdate 2006.01.01
    VBoxManage setextradata SUSE10 installdate 2006.02.02

associerait la chaîne "2006.01.01" à la clé installdate pour la the machine virtuelle Fedora5, et "2006.02.02" pour la machine SUSE10. Vous pourriez récupçrer l'information comme suit :

    VBoxManage getextradata Fedora5 installdate

qui renverrait

    VirtualBox Command Line Management Interface Version $VBOX_VERSION_MAJOR.$VBOX_VERSION_MINOR.$VBOX_VERSION_BUILD
    (C) 2005-$VBOX_C_YEAR $VBOX_VENDOR
    All rights reserved.

    Value: 2006.01.01

To remove a key, the `setextradata` command must be run without specifying data (only the key), for example:

    VBoxManage setextradata Fedora5 installdate

## VBoxManage setproperty

Cette commande est utilisée pour modifier des paramètres globaux qui modifient toute l'installation de VirtualBox. Certains d'entr eux correspondent aux paramètres de la boîte de dialogue "Paramètres globaux" de l'interface graphique. Les propriétés suivantes sont disponibles :

`machinefolder`

  Ceci spécifie le dossier par défaut dans lequel sont stockées les définitions de la machine virtuelle ; voir pour les détails.

`hwvirtexclusive`

Ceci spécife si VirtualBox utilisera en exclusivité les extensions de virtualisation matérielle (Intel VT-x ou AMD-V) du processeur du système hôte ; voir . Si vous souhaitez partager ces extensions avec d'autres hyperviseurs en fonction en même temps, vous devez désactiver ce paramètre. Cela a des implications négatives en termes de performance.

`vrdeauthlibrary`

  Ceci indique la bibliothèque à utiliser quand on a sélectionné l'authentification "externe" pour une machine virtuelle en particulier ; voir pour des détails.

`websrvauthlibrary`

  Ceci spécifie la bibliothèque utilisée par le service web pour authentifier les utilisateurs. Pour des détails sur le service web de VirtualBox, merci de vous reporter au manuel de référence SDK distinct de VirtualBox (voir ).

`vrdeextpack`

  Ceci spécifie la bibliothèque qui implémente l'extension Bureau distant de VirtualBox.

`loghistorycount`

  Ceci sélectionne le nombre de journaux de VMs (anciens) conservés.

`autostartdbpath`

  Ceci sélectionne le chemin vers la base de données autostart. Voir .

`defaultfrontend`

  Ceci sélectionne l'interface globale des VMs. Voir .

## VBoxManage usbfilter add/modify/remove

Les commandes `usbfilter` sont utilisées pour travailler avec des filtres USB dans des machines virtuelles ou avec des filtres globaux qui concernent tout le paramétrage de VirtualBox. Les filtres globaux sont appliqués avant les filtres spécifiques aux machines et ils peuvent être utilisés pour empêcher les périphériques d'être capturés par une machine virtuelle. Les filtres globaux s'appliquent toujours dans un ordre particulier, et seul le premier filtre convenant à un périphérique est appliqué. Par exemple, si le premier filtre global dit de garder (rendre disponible) une carte mémoire Kingston particulière et le deuxième d'ignorer tous les périphériques Kingston, cette carte mémoire sera disponible pour toutes les machines ayant un filtre adéquat mais pas les autres périphériques Kingston.

Lors de la création d'un filtre USB en utilisant `usbfilter add`, vous devez fournir trois ou quatre paramètres obligatoires. L'index spécifie la position du filtre dans la liste. S'il y a déjà un filtre à cette place, lui-mâme et les suivants seront déplacés. Sinon, le nouveau filtre sera ajouté à la fin de laliste. Le paramètre `target` sélectionne la machine virtuelle à laquelle devrait être attaché le filtre, sinon utilisez "global" pour l'appliquer à toutes les machines virtuelles. `name` est le nom du nouveau filtre et des filtres globaux, `action` autorise les machines à accéder aux périphériques correspondant à la description du filtre ("hold") ou ne leur donne pas accès ("ignore"). En outre, vous devriez spécifier des paramètres de filtrage. Vous pouvez trouver les paramètres des périphériques attachés à votre système en utilisant `VBoxManage list usbhost`. Enfin, vous pouvez spécifier si le filtre devrait être actif, et pour les filtres globaux, s'ils concernent les périphériques locaux, à distance (par connexion RDP) ou autrement.

Quand vous modifiez un filtre USB en utilisant `usbfilter modify`, vous devez spécifier le filtre par index (voir la sortie de `VBoxManage list usbfilters` pour voir les indexes des filtres globaux et `VBoxManage showvminfo` pour voir les indexes des machines individuelles), et par cible, laquelle est soit une machine virtuelle, soit "global". Les propriétés modifiables sont les mêmes que pour `usbfilter add`. Pour supprimer un filtre, utilisez `usbfilter remove` et spécifiez l'index et la cible.

## VBoxManage sharedfolder add/remove

Cette commande vous permet de partager des dossiers de l'ordinateur hôte avec les systèmes d'exploitation invités. Pour cela, il faut que les systèmes invités aient une version installée des Suppléments invité qui supporte cette fonctionnaalité.

Les dossiers partagés sont décrits en détails au .

## VBoxManage guestproperty

Les commandes "guestproperty" vous permettent de voir ou de définir les propriétés d'une machine virtuelle en fonction. Merci de voir pour une présentation. Comme il y est expliqué, les propriétés de l'invité sont des pairs de chaînes clé/valeur arbitraires qu'on peut changer et lire depuis l'hôte ou l'invité, donc on peut les utiliser comme des canaux de communication à faible volume pour des chaînes du moment qu'un invité est en fonction et a installé les suppléments invité. De plus, un certain nombre de valeurs dont les clés commencent par "/VirtualBox/" sont automatiquement définies et maintenues par les suppléments invité.

Les sous-commandes sont disponibles (où `<vm>`, dans chaque cas, peut être soit un nom soit un UUID d'une VM, comme pour les autres commandes de VBoxManage) :

- `enumerate <vm> [--patterns <pattern>]` : Ceci liste toutes les propriétés invité disponibles pouq une VM donnée avec leur valeur. Cette liste sera très limitée si le processus service de l'invité ne peut pas être contacté, notamment car la VM n'est pa en fonction ou les suppléments invité ne sont pas installés.

  Si vous spécifiez `--patterns <échantillon>`, il agit comme un filtre pour ne lister que les propriétés correspondant à l'échantillon donné. L'échantillon peut contenir les caractères jokers suivants :

  - `*` (astérisque) : représente n'importe quel nombre de caractères ; par exemple, "`/VirtualBox*`" correspondrait à toutes les propriétés commençant par "/VirtualBox".

  - `?` (point d'interrogation) : représente un seul caractère de votre choix ; par exemple, "`fo?`" correspondrait à "foo" et à "for".

  - `|` (symbole pipe) : peut être utilisé pour spécifier plusieurs échantillons alternatifs ; par exemple, "`s*|t*`" correspondrait à tout ce qui commence par un "s" ou un "t".

- `get <vm>` : Ceci ne récupère la valeur que d'une propriété. Si la propriété est introuvable (par exemple car l'invité n'est pas en fonction), ceci affichera

      No value set!

- `set <vm> <propriété> [<valeur> [--flags <drapeaux>]]` : Ceci vous permet de définir une propriété invité en spécifiant la clé et la valeur. Si vous ne mettez pas `<valeur>`, la propriété est effacée. Avec `--flags`, vous pouvez éventuellement spécifier un comportement supplémentaire (vous pouvez en combiner plusieurs en les séparant par des virgules) :

  - `TRANSIENT` : la valeur ne sera pas stockée avec les données de la VM quand la VM exite ;

  - `TRANSRESET` : la valeur sera effacée dès que la VM redémarrera et/ou existera ;

  - `RDONLYGUEST` : la valeur ne peut être modifiée que par l'hôte, l'invité ne peut que la lire ;

  - `RDONLYHOST` : inversement, cette valeur ne peut être modifiée que par l'invité, l'hôte ne peut que la lire ;

  - `READONLY` : la combinaison des deux, la valeur ne peut pas être modifiée.

- `wait <vm> <échantillon> --timeout <timeout>` : Ceci attend une valeur particulière décrite par "échantillon" à modifier ou effacer ou à créer. Les règles de l'échantillon sont les mêmes qu'avec la commande "enumerate" ci-dessus.

- `delete <vm> <propriété>` : Efface une propriété invité définie précédemment.

## VBoxManage guestcontrol

Les commandes "guestcontrol" vous permettent de contrôler certaines choses de l'invité à partir de l'hôte. Merci de voir pour une présentation.

En général, la syntaxe est la suivante :

    VBoxManage guestcontrol <uuid|nomvm> <commande>

Les sous-commandes suivantes sont disponibles (où `<uuid|nomvm>`, dans tous les cas, peut être le nom ou l'UUID d'une VM comme avec les autres commandes de VBoxManage) :

- `execute`, qui permet d'exécuter un programme/script (processus) déjà installé et exécutable sur l'invité. Cette commande ne fonctionne que pendant qu'une VM est active et en fonction et sa syntaxe est la suivante :

      VBoxManage guestcontrol <uuid|nomvm> exec[ute]
                  --image <chemin du programme> --username <nom>
                  [--passwordfile <fichier> | --password <mot de passe>]
                  [--environment "<NOM>=<VALEUR> [<NOM>=<VALEUR>]"]
                  [--verbose] [--timeout <msec>]
                  [--wait-exit] [--wait-stdout] [--wait-stderr]
                  [--dos2unix] [--unix2dos]
                  -- [[<argument1>] ... [<argumentN>]]

  où les paramètres signifient :

  `uuid|nomvm`

    Le nom ou l'UUID de la VM. Obligatoire.

  `--image "<chemin du programme>"`

    Chemin absolu et nom du processus à exécuter dans l'invité, comme `C:\Windows\System32\calc.exe`

  `--username <nom>`

    Nom de l'utilisateur sous lequel devrait se lancer le processus. Cet utilisateur doit exister sur l'OS invité.

  `--passwordfile <fichier>`
  `--password <motdepasse>`

    Mot de passe du compte utilisateur spécifié, à lire dans le fichier donné. Si vous n'en donnez pas, un mot de passe vierge est supposé.

  --password <mot de passe>

    Mot de passe du compte utilisateur spécifié avec `--username`. Si vous n'en donnez pas, un mot de passe vierge est supposé.

  `--dos2unix`
    Convertit les fins de lignes de la sortie des invités DOS/Windows en fins compatibles UNIX (CR + LF -> LF). Pas encore implémenté.
  `--environment "<NOM>=<VALEUR>"`

    Une ou plusieurs variables d'environnement à définir ou dérégler.

    Par défaut, le nouveau processus de l'invité sera créé avec l'environnement standard de l'OS invité. Cette option permet de modifier cet environnement. Pour définir/modifier une variable, une paire `NOM=VALEUR` doit être spécifiée ; pour dérégler une certaine variable, le nom sans valeur doit être défini, par exemple `NOM=`.

    Les arguments contenant des espaces doivent être entourés de guillemets. Vous pouvez spécifier plus d'un `--environment` en même temps pour maintenir vierge la ligne de commande.

  `--timeout <msec>`

    Valeur (ien millisecondes) qui spécifie la durée pendant laquelle le processus démarré est autorisé à fonctionner et combien de temps VBoxManage attent une sortie de ce processus. Si vous ne spécifiez pas de timeout, VBoxManage attendra jusqu'à ce que le processus démarré se termine ou ce qu'une erreur ne survienne.

  `--unix2dos`
    Convertit les fins de lignes de la sortie des invités DOS/Windows en fins compatibles UNIX (CR + LF -> LF). Pas encore implémenté.
  `--verbose`

    Dit à VBoxManage d'être plus verbeux.

  `--wait-exit`

    Attend la fin d'un processus et affiche son code de sortie avec la raison/les drapeaux de sa fin.

  `--wait-stdout`

    Attend la fin d'un processus et affiche son code de sortie avec la raison/les drapeaux de sa fin. En attendant, VBoxManage récupère la sortie du processus sur stdout.

  `--wait-stderr`

    Attend la fin d'un processus et affiche son code de sortie avec la raison/les drapeaux de sa fin. En attendant, VBoxManage récupère la sortie du processus sur stderr.

  `[-- [<argument1s>] ... [<argumentNs>]]`

    Un ou plusieurs arguments à passer au processus à exécuter.

    Les arguments contenant des espaces doivent être entourés de guillemets.

  Sur Windows, il existe certaines limites pour les applications graphiques ; merci de voir pour plus d'informations.

  Exemples :

      VBoxManage --nologo guestcontrol "Ma VM" execute --image "/bin/ls"
                --username foo --passwordfile bar.txt --wait-exit --wait-stdout -- -l /usr

      VBoxManage --nologo guestcontrol "My VM" execute --image "c:\\windows\\system32\\ipconfig.exe"
                --username foo --passwordfile bar.txt --wait-exit --wait-stdout

  Remarquez que les deux barres obliques inversées du deuxième exemple ne sont requis que pour les hôtes Unix.

  Pour certaines commandes, il faut spécifier le nom d'utilisateur d'un compte utilisateur existant sur l'invité ; les exécutions anonymes ne sont pas supportées pour des raisons de sécurité. Néanmoins, le mot de passe d'un compte utilisateur est facultatif et dépend de la politique et des règles de l'invité. Si vous ne spécifiez aucun mot de passe pour un nom d'utilisateur donné, un mot de passe vierge sera utilisé. Sur certains OS comme Windows, il pe peut qu'il faille ajuster la politique de sécurité pour autoriser le paramétrage d'un compte utilisateur avec un mot de passe vierge. En outre, les règles du domaine global pourraient s'appliquer et, donc, on ne peut pas les modifier.

  À partir de VirtualBox 4.1.2 l'exécution d'un processus invité par défaut se limite à 5 processus invités en même temps. Si un nouveau processus invité est lancé et dépasserait cette limite, le plus ancien dans l'invité qui ne s'exécute pas sera désactivé afin de pouvoir lancer ce nouveau processus. En outre, la récupération de la sortie de cet ancien processus invité ne sera alors plus possible. Si les 5 processus invités sont toujours actifs et en fonction, le démarrage d'un nouveau processus enverra un message d'erreur circonstancié.

  Pour augmenter ou diminuer la limite d'exécution des processus invité, il faut modifier soit la propriété `/VirtualBox/GuestAdd/VBoxService/--control-procs-max-kept`, soit la ligne de commande ee VBoxService en spécifiant `--control-procs-max-kept`. Il faut ensuite redémarrer l'OS invité. Pour gérer un nombre illimité de processus invités, il faut définir une valeur de `0` (non recommandé).

- `copyto`, qui permet de copier des fichiers de l'hôte vers l'invité (seulement si les suppléments invité 4.0 et supérieur sont installés).

      VBoxManage guestcontrol <uuid|nomvm> copyto|cp
                  <source invité> <hôte dest> --username <nom>
                  [--passwordfile <fichier> | --password <mot de passe>]
                  [--dryrun] [--follow] [--recursive] [--verbose]

  où les paramètres signifient :

  `uuid|nomvm`

    L'UUID ou le nom de la VM. Obligatoire.

  `source sur l'hôte`

    Chemin absolu du/des fichier(s) source(s) de l'hôte sur l'hôte pour copier vers l'invité, comme `C:\Windows\System32\calc.exe`. Il peut s'agir d'une expression joker, comme `C:\Windows\System32\*.dll`

  `destination sur l'invité`

    Chemin de destination absolu sur l'invité, comme `C:\Temp`

  `--username <nom>`

    Nom d'utilisateur sous lequel devrait fonctionner le processus de copie. Cet utilisateur doit exister sur l'OS invité.

  `--passwordfile <fichier>`

    Mot de passe du compte utilisateur spécifié, à lire dans le fichier donné. Si vous n'en donnez pas, un mot de passe vierge est supposé.

  `--password <mot depasse>`

    Mot de passe du compte utilisateur spécifié avec `--username`. Si vous n'en donnez pas, un mot de passe vierge est supposé.

  `--dryrun`

    Dit à VBoxManage de ne faire qu'une exécution dry au lieu de copier vraiment les fichiers dans l'invité.

  `--follow`

    Active le suivi des liens symboliques sur la source de l'hôte.

  `--recursive`

    Copie récursivement les fichiers/répertoires de la source spécifiée.

  `--verbose`

    Dit à VBoxManage d'être plus verbeux.

  `--flags <drapeaux>`

    Drapeaux supplémentaires à définir. Ce n'est pas utilisé pour le moment.

- `copyfrom`, qui permet de copier des fichiers de l'invité vers l'hôte (seulement si les suppléments invité 4.0 et supérieur sont installés). Il prend les mêmes paramètres que `copyto` ci-dessus.

- `createdirectory`, qui permet de copier des fichiers de l'invité vers l'hôte (seulement si les suppléments invité 4.0 et supérieur sont installés). Il prend les mêmes paramètres que `copyto` ci-dessus.

      VBoxManage guestcontrol <uuid|nomvm> createdir[ectory]|mkdir|md
                  <répertoire invité>... --username <nom>
                  [--passwordfile <fichier> | --password <mot de passe>]
                  [--parents] [--mode <mode>] [--verbose]

  où les paramètres signifient :

  `uuid|nomvm`

    L'UUID ou le nom de la VM. Obligatoire.

  `répertoire à créer sur l'invité`

    Chemin absolu du/des répertoire(s) à créer sur l'invité, comme `D:\Foo\Bar`. Les répertoires Parents doivent exister (comme dans cet exemple `D:\Foo`) si vous ne mettez pas `--parents`. L'utilisateur spécifié doit avoir les droits appropriés pour créer le répertoire spécifié.

  `--username <nom>`

    Nom de l'utilisateur sous lequel devrait fonctionner le processus de copie. Cet utilisateur doit exister sur l'OS invité.

  `--passwordfile <fichier>`

    Mot de passe du compte utilisateur spécifié, à lire dans le fichier donné. Si vous n'en donnez pas, un mot de passe vierge est supposé.

  `--password <mot de passe>`

    Mot de passe du compte utilisateur spécifié avec `--username`. Si vous n'en donnez pas, un mot de passe vierge est supposé.

  `--parents`

    Crée aussi les répertoires parent non encore créés pour le répertoire spécifié, par exemple si le répertoire `D:\Foo` de `D:\Foo\Bar` n'existe pas encore, il sera créé. Si on ne spécifie pas `--parent`, l'action échouerait.

  `--mode <mode>`

    Définit les droits du répertoire spécifié. Seules des valeurs octales (comme `0755`) sont supportées pour l'heure.

  `--verbose`

    Dit à VBoxManage d'être plus verbeux.

- `removedirectory`, qui permet d'effacer des répertoires dans l'invité (seulement ceux où sont installés les suppléments invité 4.3.2 et supérieur).

      VBoxManage guestcontrol <uuid|nomvm> removedir[ectory]|rmdir
                  <répertoire invité>... --username <nom>
                  [--passwordfile <fichier> | --password <mot_de_passe>]
                  [--recursive|-R|-r] [--verbose]

  où les paramètres signifient :

  `uuid|nomvm`

    L'UUID ou le nom de la VM. Obligatoire.

  `répertoire à supprimer dans l'invité`

    Chemin absolu du/des répertoire(s) à supprimer sur l'invité, par exemple `D:\Foo\Bar`. L'utilisateur spécifié doit avoir les bons droits pour effacer le(s) répertoire(s) de l'invité spécifié(s).

  `--username <nom>`

    Nom d'utilisateur sous lequel devrait fonctionner le processus de copie. Cet utilisateur doit exister sur l'OS invité.

  `--passwordfile <fichier>`

    Mot de passe du compte utilisateur spécifié qui lit le fichier donné. Si vous n'en mettez pas, on supposera un mot de passe vide.

  `--password <mot_de_passe>`

    Mot de passe du compte utilisateur spécifié par `--username`. Si vous n'en donnez pas, on supposera un mot de passe vide.

  `--recursive`

    Supprime des répertoires et, récursivement, leur contenu.

  `--verbose`

    Dit à VBoxManage d'être plus bavard.

- `removefile`, qui permet d'effacer des fichiers sur l'invité (seulement là où sont installés les suppléments invité 4.3.2 et supérieur).

      VBoxManage guestcontrol <uuid|nomvm> removefile|rm
                  <fichier_d_invité>... --username <nom>
                  [--passwordfile <fichier> | --password <mot_de_passe>]
                  [--verbose]

  où les paramètres signifient :

  `uuid|nomvm`

    L'UUID ou le nom de la VM. Obligatoire.

  `fichier à supprimer dans l'invité`

    Chemin absolu du/des fichier(s) à supprimer sur l'invité, comme `D:\Foo\Bar\text.txt`. L'utilisateur spécifié doit avoir les bons droits pour effacer les fichiers spécifiés sur l'invité.

  `--username <nom>`

    Nom d'utilisateur sous lequel devrait fonctionner le processus de copie. Cet utilisateur doit exister sur l'OS invité.

  `--passwordfile <fichier>`

    Mot de passe du compte utilisateur spécifié qui lit le fichier donné. Si vous n'en mettez pas, on supposera un mot de passe vide.

  `--password <mot_de_passe>`

    Mot de passe du compte utilisateur spécifié avec `--username`. Si vous n'en donnez pas, un mot de passe vierge est supposé.

  `--verbose`

    Dit à VBoxManage d'être plus bavard.

- `ren[ame]|mv`, qui permet de renommer des fichiers (ou des répertoires) dans l'invité (seulement là où sont installés les suppléments invité 4.3.2 et supérieur).

      VBoxManage guestcontrol <uuid|nomvm> ren[ame]|mv
                  <source>... <dest> --username <nom>
                  [--passwordfile <fichier> | --password <mot_de_passe>]
                  [--verbose]

  où les paramètres signifient :

  `uuid|nomvm`

    L'UUID ou le nom de la VM.

  `source`

    Chemin absolu d'une ou plusieurs sources à déplacer quelque part. Si vous spécifiez plus d'une source, la destination doit être un répertoire existant sur la VM. L'utilisateur spécifié doit avoir les bons droits d'accès aux fichiers et aux répertoires sources et de destination.

  `dest`

    Chemin absolu de la destination où déplacer le/les source(s). Il peut s'agir d'un répertoire ou d'un fichier, selon que vous spécifiez une ou plusieurs sources. L'utilisateur spécifié doit avoir les bons droits d'accès au fichier et au répertoire de.

  `--username <nom>`

    Nom de l'utilisateur sous lequel fonctionne le processus de copie. Cet utilisateur doit exister sur l'OS invité.

  `--passwordfile <fichier>`

    Mot de passe du compte utilisateur spécifié d'où lire l'invité donné. Si vous n'en donnez pas, on suppose un mot de paasse vide.

  `--password <mot_de_passe>`

    Mot de passe du compte utilisateur spécifié avec `--username`. Si vous n'en donnez pas, on suppose un mot de passe vide.

  `--verbose`

    Dit à VBoxManage d'être plus bavard.

- `createtemporary`, qui permet de copier des fichiers de l'hôte sur l'invité (seulement si les suppléments invités 4.2 ou supérieur sont installés).

      VBoxManage guestcontrol <uuid|nomvm> createtemp[orary]|mktemp
                  <modèle> --username <nom>
                  [--passwordfile <fichier> | --password <mot_de_passe>]
                  [--directory] [--secure] [--tmpdir <répertoire>]
                  [--domain <domaine>] [--mode <mode>] [--verbose]

  où les paramètres signifient :

  `uuid|nomvm`

    L'UUID ou le nom de la VM. Obligatoire.

  `modèle`

    Un nom de fichier sans chemin et avec au moins trois caractères 'X' consécutifs ou se terminant par 'X'.

  `--username <nom>`

    Nom de l'utilisateur sous lequel devrait fonctionner le processus de copie. Cet utilisateur doit exister sur l'OS invité.

  `--passwordfile <fichier>`

    Mot de passe du compte utilisateur spécifié, à lire dans le fichier donné. Si vous n'en donnez pas, un mot de passe vierge est supposé.

  `--password <mot de passe>`

    Mot de passe du compte utilisateur spécifié avec `--username`. Si vous n'en donnez pas, un mot de passe vierge est supposé.

  `--directory`

    Crée un répertoire temporaire au lieu d'un fichier.

  `--secure`

    Création sécurisée. Le mode du fichier est `0755`. Et l'opération échouera si elle ne peut s'effectuer en sécurité.

  `--tmpdir <répertoire>`

    Répertoire où le fichier / répertoire sera cRéé. Si vous n'en indiquez pas, répertoire temporaire spécifique 'à la plateforme est utilisé.

  `--mode <mode>`

    Définit les droits du répertoire spécifié. Seules des valeurs octales (comme `0755`) sont supportées pour l'heure.

  `--verbose`

    Dit à VBoxManage d'être plus verbeux.

- `list`, qui présente plusieurs informations de contrôle de l'invité telles que les sessions et les fichiers ouverts dans l'invité et les processus de l'invité.

      VBoxManage guestcontrol <uuid|nomvm> list
                <all|sessions|processes|files> [--verbose]

  où les paramètres signifient :

  `uuid|nomvm`

    L'UUID ou le nom de la VM. Obligatoire.

  `all|sessions|processes|files`

    présenter les sessions dans l'invité, les processus de l'invité, les fichiers dans l'invité ou toutes les informations disponibles.

  `--verbose`

    Dit à VBoxManage d'être plus verbeux.

- `process kill`, qui termine des processus de l'invité en particulier pour une session de l'invité, à partir soit l'ID de la session, soit du nom de la session.

      VBoxManage guestcontrol <uuid|nomvm> process kill
                  --session-id <ID>
                | --session-name <nom ou modèle>
                [--verbose]
                <PID> ... <PID n>

  où les paramètres signifient :

  `uuid|nomvm`

    L'UUID ou le nom de la VM. Obligatoire.

  `--session-id`

    Spécifie la session de l'invité à utiliser par son ID.

  `--session-name`

    Spécifie la session de l'invité à utiliser par son nom. Vous pouvez spécifier plusieurs sessions en spécifiant les jokers * ou ?.

  `--verbose`

    Dit à VBoxManage d'être plus verbeux.

  `<PID> ... <PID n>`

    Liste les identifiants des processus (PIDs) à terminer.

- `[p[s]]kill`, qui termine des processus en particulier dans une session de l'invité, à partir soit de l'ID de la session, soit de son nom.

      VBoxManage guestcontrol <uuid|nomvm> process kill
                  --session-id <ID>
                | --session-name <nom ou modèle>
                [--verbose]
                <PID> ... <PID n>

  où les paramètres signifient :

  `uuid|nomvm`

    L'UUID ou le nom de la VM. Obligatoire.

  `--session-id`

    Spécifie la session de l'invité à utiliser par son ID.

  `--session-name`

    Spécifie la session de l'invité à utiliser par son nom. Vous pouvez spécifier plusieurs sessions avec les jokers * ou ?.

  `--verbose`

    Dit à VBoxManage d'être plus verbeux.

  `<PID> ... <PID n>`

    Liste les identifiants des processus (PIDs) à terminer.

- `session close`, qui ferme des sessions spécifiques de l'invité à partir de l'ID de la session ou de son nom.

      VBoxManage guestcontrol <uuid|nomvm> session close
                  --session-id <ID>
                | --session-name <nom ou extrait>
                | --all
                [--verbose]

  où les paramètres signifient :

  `uuid|nomvm`

    L'UUID ou le nom de la VM. Obligatoire.

  `--session-id`

    Ferme une session de ;'invité spécifiée par son ID.

  `--session-name`

    Ferme une session de ;'invité spécifiée par son nom. Vous pouvez fermer plusieurs sessions grâce aux jokers * ou ?.

  `--all`

    Ferme toutes les sessions de l'invité.

  `--verbose`

    Dit à VBoxManage d'être plus verbeux.

- `stat`, qui affiche l'état d'un fichier ou d'un système de fichiers de l'invité.

      VBoxManage guestcontrol <nomvm>|<uuid> stat
                  <file>... --username <nom>
                  [--passwordfile <fichier> | --password <mot de passe>]
                  [--verbose]

  où les paramètres signifient :

  uuid|nomvm

    L'UUID ou le nom de la VM. Obligatoire.

  élément(s) de fichier à vérifier sur l'invité

    Chemin absolu du/des répertoire(s) à vérifier sur l'invité, comme `/home/foo/a.out`. L'utilisateur spécifié doit avoir les droits adéquats d'accès à/aux élément(s) fichier unique(s).

  --username <nom>

    Nom de l'utilisateur sous lequel devrait s'exécuter le processus de copie. L'utilisateur doit exister sur l'OS invité.

  --passwordfile <fichier>

    Mot de passe du compte utilisateur spécifié, à lire dans le fichier donné. Si vous n'en donnez pas, un mot de passe vierge est supposé.

  --password <mot de passe>

    Mot de passe du compte utilisateur spécifié avec `--username`. Si vous n'en donnez pas, un mot de passe vierge est supposé.

  `--verbose`

    Dit à VBoxManage d'être plus verbeux.

- `updateadditions`, qui permet de mettre à jour une version des suppléments invité installée sur l'invité (sur les suppléments invité installés 4.0 et supérieur).

      VBoxManage guestcontrol <nomvm>|<uuid> updateadditions
                  [--source "<fichier des suppléments invité .ISO à utiliser>"] [--verbose]
                  [--wait-start] [-- [<argument1>] ... [<argumentN>]]

  où les paramètres signifient :

  uuid|nomvm

    L'UUID ou le nom de la VM. Obligatoire.

  --source "<fichier des suppléments invité .ISO à utiliser>"

    Chemin complet vers un autre fichier .ISO de suppléments invité à utiliser pour mettre à jour les suppléments invité.

  --verbose

    Dit à VBoxManage d'être plus verbeux.

  --wait-start

    Démarre le processus normal de mise à jour et attend jusqu'à ce que la mise à jour des suppléments invité soit effectivement démarrée dans l'invité. Cela peut être nécessaire du fait de l'interaction nécessaire avec l'OS invité pendant la phase d'installation.

    Si vous ne mettez pas ce drapeau, VBoxManage attendra que toute la mise à jour des suppléments invité s'achève.

  [-- [<argument1s>] ... [<argumentNs>]]
    .

    Arguments en ligne de commandes à utiliser avec l'installeur des suppléments invité. Sert à ajouter des fonctions non installées précédemment sur l'invité.

    Vous devez entourer les arguments contenant des espaces par des guillemets.

- `watch`, qui affiche un contrôle de l'activité actuelle de l'invité.

      VBoxManage guestcontrol <uuid|nomvm> watch
                [--verbose]

  où les paramètres signifient :

  `uuid|nomvm`

    L'UUID ou le nom de la VM. Obligatoire.

  `--verbose`

    Dit à VBoxManage d'être plus verbeux.

## VBoxManage debugvm

Les commandes "debugvm" sont pour les experts qui veulent jouer avec les détails exacts de l'exécution d'une machine virtuelle. Comme le débogueur de la VM décrit au , ces commandes ne sont utiles que si vous êtes très familier des détails l'architecture d'une VM et de la façon de déboguer un logiciel.

Les sous-commandes de "debugvm" fonctionnent sur une machine virtuelle en fonction. Celles suivantes sont disponibles :

- Avec `dumpguestcore --filename <nom>`, vous pouvez créer un fichier de renvoi système de la VM en fonction, qui sera écrit dans le fichier donné. Ce fichier aura un format ELF cœur standard (avec des sections personnalisées) ; voir .

  Cela correspond à la commande `writecore` du débogueur.

- La commande `info` est utilisée pour afficher des éléments d'info liés à la VMM, aux émulations de périphérique et aux pilotes associés. Cette commande prend un ou deux arguments : le nom de l'élément d'info, éventuellement suivi d'une chaîne contenant les arguments spécifiques à l'élément d'info. L'élément d'info `help` fournit une liste des éléments disponibles et des astuces sur les arguments supplémentaires.

  Cela correspond à la commande `info` du débogueur.

- La commande `injectnmi` provoque une interruption non masquable (non-maskable interrupt (NMI) dans l'invité, qui pourrait être utile dans certains scénarios de débogage. Ce qui se passe exactement dépend du système d'exploitation invité mais une NMI peut planter tout le système d'exploitation invité. Ne l'utilisez pas, sauf si vous savez ce que vous faites.

- La commande `osdetect` lance la fonction de (re)-détection du débogueur de VMM du système d'exploitation de l'invité.

  Cela correspond à la commande `detect` du débogueur.

- La commande `osinfo` est utilisée pour afficher des infos sur le système d'exploitation (OS) détecté par le débogueur de la VM.

- La commande `getregisters` est utilisée pour afficher le registre du processeur et des périphériques. La commande prend une liste des registres, chacun ayant une des formes suivantes :

  - `réglage-registre.nom-registre.sous-champ`
  - `réglage-registre.nom-registre`
  - `nom-registre-processeur.sous-champ`
  - `nom-registre-processeur`
  - `all`
  La forme `all` affichera tous les registres (pas les sous-champs). Les noms des registres sont indifférents à la casse. Quand vous interrogez un registre du processeur, vous pouvez ne pas mettre le réglage du registre, il sera sélectionné en utilisant la valeur de l'option `--cpu` (0 par dé2ant).

- La commande `setregisters` est utilisée pour modifier les registres des périphériques et du processeur. La commande prend une liste d'affectations de registres, chacune ayant une des formes suivantes :

  - `réglage-registre.nom-registre.sous-champ=valeur`
  - `réglage-registre.nom-registre=valeur`
  - `nom-registre-processeur.sous-champ=valeur`
  - `nom-registre-processeur=valeur`
  Le format de la valeur devrait être du même genre que ce qu'affiche `getregisters`, sauf qu'on peut utiliser des octets et des décimales au lieu de l'hexadécimal. Le nommage du registre et le réglage par défaut du registre processeur sont gérés de la même manière qu'avec la commande `getregisters`.

- La commande `statistics` peut être utilisée pour afficher des statistiques VMM sur la ligne de commandes. L'option `--reset` réinitialisera les statistiques. Les statistiques concernées sont filtrables avec l'option `--pattern` qui accepte des jokers en style DOS/NT (`?` et `*`).

## VBoxManage metrics

Cette commande supporte la surveillance de l'utilisation des ressources système. Les ressources sont représentées par différentes métriques associées au système hôte ou à une VM en particulier. Par exemple, le système hôte a une métrique `CPU/Load/User` qui affiche le pourcentage du temps procc!eur passé à tourner en mode utilisateur sur une période spécifique.

Les données de métrique sont rassemblées et stockées en interne ; vous pouvez les récupérer n'importe quand avec la sous-commande `VBoxManage metric query`. Les données sont disponibles tant que le processus en tâche de fond `VBoxSVC` process is est vivant. Ce processus ce termine peu après que toutes les VMs et les interfaces ont été fermées.

Par défaut, aucune métrique n'est enregistrée. La récupération de métriques ne commence pas avant que `VBoxManage metrics setup` ne soit appelé avec un bon intervalle modèle et que le nombre de métriques n'a été conservé. On mesure l'intervalle en secondes. Par exemple, pour activer la récupération des métriques de l'utilisation du processeur et de la mémoire hôte toutes les secondes, en gardant les 5 échantillons les plus actuels, vous pouvez utiliser la commande suivante :

    VBoxManage metrics setup --period 1 --samples 5 host CPU/Load,RAM/Usage

Le recueil de métriques ne peut être activé que sur des VMs démarrées. Les données et les paramètres de récupération d'une VM en particulier disparaîtront dès que vous éteindrez la VM. Utilisez la sous-commande `VBoxManage metrics list` pour voir les métriques actuellement disponibles. Vous pouvez aussi utiliser l'option `--list` avec une sous-commande modifiant les paramètres de métrique pour chercher les métriques concernées.

Remarquez que la sous-commande `VBoxManage metrics setup` désactive tous les échantillons qui peuvent avoir été recueillis pour un jeu d'objets et de métriques spécifique.

Pour activer ou désactiver la récupération des métriques sans perdre les données, vous pouvez utiliser les sous-commandes `VBoxManage metrics enable` et `VBoxManage metrics disable`. Remarquez que ces sous-commandes attendent en paramètres des métriques, pas des sous-métriques, comme `CPU/Load` ou `RAM/Usage`. En d'autres termes, l'activation de `CPU/Load/User` tout en désactivant `CPU/Load/Kernel` n'est pas supporté.

L'hôte et les VMs ont différents ensembles de métriques associées. Vous pouvez lister les métriques disponibles avec `VBoxManage metrics list` subcommand.

Un nom de métrique complet peut inclure une fonction d'agrégat. Le nom prend la forme suivante : `Catégorie/Métrique[/SousMétrique][:aggrégé]`. Par exemple, `RAM/Usage/Free:min` signifie la quantité minimum de mémoire disponible parmi toutes les données en mémoire s, cela s'applique à l'objet hôte.

Les sous-commandes peuvent s'appliquer à tous les objets et les métriques ou se limiter à un objet et/ou une liste de métriques. Si vous ne donnez aucun objet ni métrique en paramètres, les sous-commandes s'appliqueront à toutes les métriques disponibles de tous les objets. Vous pouvez utiliser une astérisque ("`*`") pour spécifier explicitement que la commande devrait s'appliquer à tous les objets ou à toutes les métriques. Utilisez "host" en nom d'objet pour limiter la cible de la commande aux métriques relatives à l'hôte. Pour limiter la cible à un sous-ensemble de métriques, utilisez une liste de noms séparés par des virgules.

Par exemple, pour interroger les données de métriques sur le temps passé par le processeur en modes utilisateur et noyau, sur la machine virtuelle nommée "test", vous pouvez utiliser la commande suivante :

    VBoxManage metrics query test CPU/Load/User,CPU/Load/Kernel

La liste suivante résume les sous-commandes disponibles :

list

  Cette sous-commande affiche les paramètres des métriques existant actuellement. Remarquez que les métriques spécifiques à la VM ne sont disponibles que quand une VM en particulier est en fonction.

setup

  Cette sous-commande définit l''intervalle entre deux prises d'échantillons des données de métriques et le nombre d'échantillons gardés en interne. Les données mémorisées sont disponibles en affichage avec la sous-commande `query`. L'option `--list` affiche les métriques qui ont été modifiées dans le résultat de l'exécution de la commande.

enable

  Cette sous-commande "réactive le recueil de données après qu'il a été arrêTé avec la sous-commande `disable`. Remarquez que la spécification de sous-métriques comme paramètres n'activera pas les métriques sous-jacentes. Utilisez `--list` pour savoir si la commande a fait ce que vous aviez prévu.

disable

  Cette sous-commande "suspends" le recueil des données sans changer les paramètres de récupération ni altérer les données recueillies. Remarquez que la spécification de sous-métriques en paramètres ne désactivera pas les métriques sous-jacentes. Utilisez `--list` pour voir si la commande a fait ce que vous aviez prévu.

query

  Cette sous-commande récupère et affiche les données de métriques mémorisées.

  La sous-commande `query` subcommand ne supprime pas ni ne remet à 0 les données mémorisées. Si vous interrogez assez souvent, vous verrez la durée d'évacuation graduelle des échantillons par les nouveaux échantillons.

collect

  Cette sous-commande définit l'intervalle entre la prise de deux échantillons de données de métrique et le nombre d'échantillons mémorisés en interne. Les données recueillies s'affichent périodiquement jusqu'à ce que vous appuyiez sur Ctrl-C, sauf si vous spécifiez l'option `--detach`. Avec l'option `--detach`, cette sous-commande agit de la même façon que `setup`. L'option `--list` affiche les métriques correspondant au filtre spécifié.

## VBoxManage hostonlyif

Avec "hostonlyif", vous pouvez changer la configuration de l'IP d'une interface réseau host-only. Pour une description du réseau host-only, merci de vous reporter au . Chaque interface host-only par un nom et peut soit utiliser le serveur DHCP interne, soit voir son adresse IP configurée à la main (IP4 et IP6).

## VBoxManage dhcpserver

Les commandes de "dhcpserver" vous permettent de contrôler le serveur DHCP construit dans VirtualBox. Vous pourriez trouver cela utile si vous utilisez le réseau interne ou host-only. (En théorie, vous pouvez l'activer aussi pour un réseu bridgé, mais cela provoquera probablement des conflits avec d'autres serveurs DHCP de votre réseau physique.)

Utilisez les options suivantes de la ligne de commandes :

- Si vous utilisez le réseau interne pour l'adaptateur réseau virtuel d'une machine virtuelle, utilisez `VBoxManage dhcpserver add --netname <nom_réseau>`, où `<nom_réseau>` est le même nom de réseau que celui que vous avez utilisé avec `VBoxManage modifyvm <nomvm> --intnet<X> <nom_réseau>`.

- Si vous utilisez le réseau interne pour l'adaptateur réseau virtuel d'une machine virtuelle, utilisez plutôt `VBoxManage dhcpserver add --ifname <hostonly_if_name>`, où `<hostonly_if_name>` est le même nom de l'interface host-only que vous avez utilisé avec `VBoxManage modifyvm <nomvm> --hostonlyadapter<X> <hostonly_if_name>`.

  Vous pouvez aussi utiliser l'option --netname comme avec les réseaux internes si vous connaissez le nom du réseau host-only ; vous pouvez voir les noms avecc `VBoxManage list hostonlyifs` (voir ci-dessus).

Les paramètres suivants supplémentaires sont requis quand vous ajoutez un serveur DHCP pour la première fois :

- Avec `--ip`, spécifiez l'adresse IP du serveur DHCP lui-même.

- Avec `--netmask`, spécifiez le masque du réseau.

- Avec `--lowerip` aet `--upperip`, vous pouvez spécifier respectivement l'adresse la plus basse et la plus haute que le serveur DHCP attribuera aux clients.

Enfin, vous devez spécifier`--enable`, sinon le serveur DHCP sera créé en état désactivé, ce qui ne fera rien.

Après cela, VirtualBox démarrera automatiquement le serveu DHCP pour le réseau nterne ou host-only donné dès que la première machine virtuelle utilisant ce réseau sera démarrée.

Inversement, utilisez `VBoxManage dhcpserver remove` avec `--netname <nom_réseau>` ou `--ifname <hostonly_if_name>` pour supprimer le serveur DHCP, de nouveau pour le réseau interne ou host-only donné.

Pour modifier les paramètres d'un serveurDHCP créé précédemment avec `VBoxManage dhcpserver add`, vous pouvez utiliser `VBoxManage dhcpserver modify` pour une interface réseau interne ou host-only donnée.

## VBoxManage extpack

La commande "extpack" vous permet d'ajouter ou de supprimer des packs d'extension de VirtualBox comme décrit au .

- Pour ajouter un nouveau pack d'extension, utilisez `VBoxManage extpack install <.vbox-extpack>`. Cette commande échouera si une version plus ancienne du même pack d'extension est déjà installée. Vous pouvez utiliser le paramètre optionnel `--replace` pour désinstaller l'ancien paquet avant d'installer le nouveau paquet..

- Pour supprimer un pack d'extension précédemment installé, utilisez `VBoxManage extpack uninstall <nom>`. Vous pouvez utiliser `VBoxManage list extpacks` tpour afficher les noms des pack d'extensions actuellement installés ; merci de voir aussi . Vous pouvez utiliser le paramètre optionnel `--force` pour surpasser le refus de se désinstaller d'un pack d'extension.

- La commande `VBoxManage extpack cleanup` peut être utilisée pour supprimer temporairement les fichiers et les répertoires qui peuvent avoir été laissés après l'échec d'une précédente commande d'installation ou de désinstallation.

Les commandes suivantes montrent des exemples d'une liste des packs d'extension et de la manière d'en supprimer un :

    $ VBoxManage list extpacks
    pack d'extensions: 1
    Pack no. 0:   Oracle VM VirtualBox pack d'extension
    Version:      4.1.12
    Revision:     77218
    Edition:
    Description:  USB 2.0 Host Controller, VirtualBox RDP, PXE ROM with E1000 support.
    VRDE Module:  VBoxVRDP
    Usable:       true
    Why unusable:
    $ VBoxManage extpack uninstall "Oracle VM VirtualBox pack d'extension"
    0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
    Successfully uninstalled "Oracle VM VirtualBox pack d'extension".