Index: /trunk/doc/manual/en_US/user_VBoxManage.xml
===================================================================
--- /trunk/doc/manual/en_US/user_VBoxManage.xml	(revision 35284)
+++ /trunk/doc/manual/en_US/user_VBoxManage.xml	(revision 35285)
@@ -1397,4 +1397,14 @@
     cable on a physical machine, and should be avoided if possible.</para>
   </sect1>
+  
+  <sect1>
+    <title>VBoxManage adoptstate</title>
+    
+    <para>If you have a saved state file (<computeroutput>.sav</computeroutput>)
+    that is seperate from the VM configuration, you can use this command to
+    "adopt" the file. This will change the VM to saved state and when you
+    start it, VirtualBox will attempt to restore it from the saved state file
+    you indicated. This command should only be used in special setups.</para>
+  </sect1>
 
   <sect1>
@@ -1443,98 +1453,21 @@
   </sect1>
 
-  <sect1 id="vboxmanage-storagectl">
-    <title>VBoxManage storagectl</title>
-
-    <para>This command attaches/modifies/removes a storage controller. After
-    this, virtual media can be attached to the controller with the
-    <computeroutput>storageattach</computeroutput> command (see the next
-    section).</para>
-
-    <para>The syntax is as follows:</para>
-
-    <screen>VBoxManage storagectl       &lt;uuid|vmname&gt;
-                            --name &lt;name&gt;
-                            [--add &lt;ide/sata/scsi/floppy&gt;]
-                            [--controller &lt;LsiLogic/BusLogic/IntelAhci/PIIX3/
-                                           PIIX4/ICH6/I8207&gt;]
-                            [--sataideemulation&lt;1-4&gt; &lt;1-30&gt;]
-                            [--sataportcount &lt;1-30&gt;]
-                            [--hostiocache on|off]
-                            [--remove]</screen>
-
-    <para>where the parameters mean: <glosslist>
-        <glossentry>
-          <glossterm>uuid|vmname</glossterm>
-
-          <glossdef>
-            <para>The VM UUID or VM Name. Mandatory.</para>
-          </glossdef>
-        </glossentry>
-
-        <glossentry>
-          <glossterm>name</glossterm>
-
-          <glossdef>
-            <para>Name of the storage controller. Mandatory.</para>
-          </glossdef>
-        </glossentry>
-
-        <glossentry>
-          <glossterm>add</glossterm>
-
-          <glossdef>
-            <para>Define the type of the system bus to which the storage
-            controller must be connected.</para>
-          </glossdef>
-        </glossentry>
-
-        <glossentry>
-          <glossterm>controller</glossterm>
-
-          <glossdef>
-            <para>Allows to choose the type of chipset being emulated for the
-            given storage controller.</para>
-          </glossdef>
-        </glossentry>
-
-        <glossentry>
-          <glossterm>sataideemulation</glossterm>
-
-          <glossdef>
-            <para>This specifies which SATA ports should operate in IDE
-            emulation mode. As explained in <xref
-            linkend="harddiskcontrollers" />, by default, this is the case for
-            SATA ports 1-4; with this command, you can map four IDE channels
-            to any of the 30 supported SATA ports.</para>
-          </glossdef>
-        </glossentry>
-
-        <glossentry>
-          <glossterm>sataportcount</glossterm>
-
-          <glossdef>
-            <para>This determines how many ports the SATA controller should
-            support.</para>
-          </glossdef>
-        </glossentry>
-
-        <glossentry>
-          <glossterm>hostiocache</glossterm>
-
-          <glossdef>
-            <para>Configures the use of the host I/O cache for all disk images
-            attached to this storage controller. For details, please see <xref
-            linkend="iocaching" />.</para>
-          </glossdef>
-        </glossentry>
-
-        <glossentry>
-          <glossterm>remove</glossterm>
-
-          <glossdef>
-            <para>Removes the storage controller from the VM config.</para>
-          </glossdef>
-        </glossentry>
-      </glosslist></para>
+  <sect1 id="vboxmanage-closemedium">
+    <title>VBoxManage closemedium</title>
+
+    <para>This commands removes a hard disk, DVD or floppy image from a
+    VirtualBox media registry.<footnote>
+        <para>Before VirtualBox 4.0, it was necessary to call VBoxManage
+        openmedium before a medium could be attached to a virtual machine;
+        that call "registered" the medium with the global VirtualBox media
+        registry. With VirtualBox 4.0 this is no longer necessary; media are
+        added to media registries automatically. The "closemedium" call has
+        been retained, however, to allow for explicitly removing a medium from
+        a registry.</para>
+      </footnote></para>
+
+    <para>Optionally, you can request that the image be deleted. You will get
+    appropriate diagnostics that the deletion failed, however the image will
+    become unregistered in any case.</para>
   </sect1>
 
@@ -1790,4 +1723,100 @@
       </glosslist></para>
   </sect1>
+  
+  <sect1 id="vboxmanage-storagectl">
+    <title>VBoxManage storagectl</title>
+
+    <para>This command attaches/modifies/removes a storage controller. After
+    this, virtual media can be attached to the controller with the
+    <computeroutput>storageattach</computeroutput> command (see the next
+    section).</para>
+
+    <para>The syntax is as follows:</para>
+
+    <screen>VBoxManage storagectl       &lt;uuid|vmname&gt;
+                            --name &lt;name&gt;
+                            [--add &lt;ide/sata/scsi/floppy&gt;]
+                            [--controller &lt;LsiLogic/BusLogic/IntelAhci/PIIX3/
+                                           PIIX4/ICH6/I8207&gt;]
+                            [--sataideemulation&lt;1-4&gt; &lt;1-30&gt;]
+                            [--sataportcount &lt;1-30&gt;]
+                            [--hostiocache on|off]
+                            [--remove]</screen>
+
+    <para>where the parameters mean: <glosslist>
+        <glossentry>
+          <glossterm>uuid|vmname</glossterm>
+
+          <glossdef>
+            <para>The VM UUID or VM Name. Mandatory.</para>
+          </glossdef>
+        </glossentry>
+
+        <glossentry>
+          <glossterm>name</glossterm>
+
+          <glossdef>
+            <para>Name of the storage controller. Mandatory.</para>
+          </glossdef>
+        </glossentry>
+
+        <glossentry>
+          <glossterm>add</glossterm>
+
+          <glossdef>
+            <para>Define the type of the system bus to which the storage
+            controller must be connected.</para>
+          </glossdef>
+        </glossentry>
+
+        <glossentry>
+          <glossterm>controller</glossterm>
+
+          <glossdef>
+            <para>Allows to choose the type of chipset being emulated for the
+            given storage controller.</para>
+          </glossdef>
+        </glossentry>
+
+        <glossentry>
+          <glossterm>sataideemulation</glossterm>
+
+          <glossdef>
+            <para>This specifies which SATA ports should operate in IDE
+            emulation mode. As explained in <xref
+            linkend="harddiskcontrollers" />, by default, this is the case for
+            SATA ports 1-4; with this command, you can map four IDE channels
+            to any of the 30 supported SATA ports.</para>
+          </glossdef>
+        </glossentry>
+
+        <glossentry>
+          <glossterm>sataportcount</glossterm>
+
+          <glossdef>
+            <para>This determines how many ports the SATA controller should
+            support.</para>
+          </glossdef>
+        </glossentry>
+
+        <glossentry>
+          <glossterm>hostiocache</glossterm>
+
+          <glossdef>
+            <para>Configures the use of the host I/O cache for all disk images
+            attached to this storage controller. For details, please see <xref
+            linkend="iocaching" />.</para>
+          </glossdef>
+        </glossentry>
+
+        <glossentry>
+          <glossterm>remove</glossterm>
+
+          <glossdef>
+            <para>Removes the storage controller from the VM config.</para>
+          </glossdef>
+        </glossentry>
+      </glosslist></para>
+  </sect1>
 
   <sect1>
@@ -2081,23 +2110,4 @@
         "convertfromraw" command.</para>
       </note></para>
-  </sect1>
-
-  <sect1 id="vboxmanage-closemedium">
-    <title>VBoxManage closemedium</title>
-
-    <para>This commands removes a hard disk, DVD or floppy image from a
-    VirtualBox media registry.<footnote>
-        <para>Before VirtualBox 4.0, it was necessary to call VBoxManage
-        openmedium before a medium could be attached to a virtual machine;
-        that call "registered" the medium with the global VirtualBox media
-        registry. With VirtualBox 4.0 this is no longer necessary; media are
-        added to media registries automatically. The "closemedium" call has
-        been retained, however, to allow for explicitly removing a medium from
-        a registry.</para>
-      </footnote></para>
-
-    <para>Optionally, you can request that the image be deleted. You will get
-    appropriate diagnostics that the deletion failed, however the image will
-    become unregistered in any case.</para>
   </sect1>
 
@@ -2244,4 +2254,550 @@
   </sect1>
 
+  <sect1 id="vboxmanage-guestproperty">
+    <title>VBoxManage guestproperty</title>
+
+    <para>The "guestproperty" commands allow you to get or set properties of a
+    running virtual machine. Please see <xref linkend="guestadd-guestprops" />
+    for an introduction. As explained there, guest properties are arbitrary
+    key/value string pairs which can be written to and read from by either the
+    guest or the host, so they can be used as a low-volume communication
+    channel for strings, provided that a guest is running and has the Guest
+    Additions installed. In addition, a number of values whose keys begin with
+    "/VirtualBox/" are automatically set and maintained by the Guest
+    Additions.</para>
+
+    <para>The following subcommands are available (where
+    <computeroutput>&lt;vm&gt;</computeroutput>, in each case, can either be a
+    VM name or a VM UUID, as with the other VBoxManage commands):<itemizedlist>
+        <listitem>
+          <para><computeroutput>enumerate &lt;vm&gt; [--patterns
+          &lt;pattern&gt;]</computeroutput>: This lists all the guest
+          properties that are available for the given VM, including the value.
+          This list will be very limited if the guest's service process cannot
+          be contacted, e.g. because the VM is not running or the Guest
+          Additions are not installed.</para>
+
+          <para>If <computeroutput>--patterns &lt;pattern&gt;</computeroutput>
+          is specified, it acts as a filter to only list properties that match
+          the given pattern. The pattern can contain the following wildcard
+          characters:<itemizedlist>
+              <listitem>
+                <para><computeroutput>*</computeroutput> (asterisk):
+                represents any number of characters; for example,
+                "<computeroutput>/VirtualBox*</computeroutput>" would match
+                all properties beginning with "/VirtualBox".</para>
+              </listitem>
+
+              <listitem>
+                <para><computeroutput>?</computeroutput> (question mark):
+                represents a single arbitrary character; for example,
+                "<computeroutput>fo?</computeroutput>" would match both "foo"
+                and "for".</para>
+              </listitem>
+
+              <listitem>
+                <para><computeroutput>|</computeroutput> (pipe symbol): can be
+                used to specify multiple alternative patterns; for example,
+                "<computeroutput>s*|t*</computeroutput>" would match anything
+                starting with either "s" or "t".</para>
+              </listitem>
+            </itemizedlist></para>
+        </listitem>
+
+        <listitem>
+          <para><computeroutput>get &lt;vm&gt;</computeroutput>: This
+          retrieves the value of a single property only. If the property
+          cannot be found (e.g. because the guest is not running), this will
+          print "No value set!".</para>
+        </listitem>
+
+        <listitem>
+          <para><computeroutput>set &lt;vm&gt; &lt;property&gt; [&lt;value&gt;
+          [--flags &lt;flags&gt;]]</computeroutput>: This allows you to set a
+          guest property by specifying the key and value. If
+          <computeroutput>&lt;value&gt;</computeroutput> is omitted, the
+          property is deleted. With <computeroutput>--flags</computeroutput>
+          you can optionally specify additional behavior (you can combine
+          several by separating them with commas):<itemizedlist>
+              <listitem>
+                <para><computeroutput>TRANSIENT</computeroutput>: the value
+                will not be stored with the VM data when the VM exits;</para>
+              </listitem>
+
+              <listitem>
+                <para><computeroutput>RDONLYGUEST</computeroutput>: the value
+                can only be changed by the host, but the guest can only read
+                it;</para>
+              </listitem>
+
+              <listitem>
+                <para><computeroutput>RDONLYHOST</computeroutput>: reversely,
+                the value can only be changed by the guest, but the host can
+                only read it;</para>
+              </listitem>
+
+              <listitem>
+                <para><computeroutput>READONLY</computeroutput>: a combination
+                of the two, the value cannot be changed at all.</para>
+              </listitem>
+            </itemizedlist></para>
+        </listitem>
+
+        <listitem>
+          <para><computeroutput>wait &lt;vm&gt; &lt;pattern&gt; --timeout
+          &lt;timeout&gt;</computeroutput>: This waits for a particular value
+          described by "pattern" to change or to be deleted or created. The
+          pattern rules are the same as for the "enumerate" subcommand
+          above.</para>
+        </listitem>
+      </itemizedlist></para>
+  </sect1>
+
+  <sect1 id="vboxmanage-guestcontrol">
+    <title>VBoxManage guestcontrol</title>
+
+    <para>The "guestcontrol" commands allow you to control certain things
+    inside a guest from the host. Please see <xref
+    linkend="guestadd-guestcontrol" /> for an introduction.</para>
+
+    <para>Generally, the syntax is as follows:</para>
+
+    <screen>VBoxManage guestcontrol &lt;command&gt;</screen>
+
+    <para>The following subcommands are available (where
+    <computeroutput>&lt;vm&gt;</computeroutput>, in each case, can either be a
+    VM name or a VM UUID, as with the other VBoxManage commands):<itemizedlist>
+        <listitem>
+          <para><computeroutput>execute</computeroutput>, which allows for
+          executing a program/script (process) which is already installed and
+          runnable on the guest. This command only works while a VM is up and
+          running and has the following syntax:</para>
+
+          <screen>VBoxManage guestcontrol exec[ute] &lt;vmname&gt;|&lt;uuid&gt;
+            &lt;path to program&gt;
+            --username &lt;name&gt; --password &lt;password&gt;
+            [--arguments "&lt;arguments&gt;"]
+            [--environment "&lt;NAME&gt;=&lt;VALUE&gt; [&lt;NAME&gt;=&lt;VALUE&gt;]"]
+            [--flags &lt;flags&gt;] [--timeout &lt;msec&gt;]
+            [--verbose] [--wait-for exit,stdout,stderr||]</screen>
+
+          <para>where the parameters mean: <glosslist>
+              <glossentry>
+                <glossterm>uuid|vmname</glossterm>
+
+                <glossdef>
+                  <para>The VM UUID or VM name. Mandatory.</para>
+                </glossdef>
+              </glossentry>
+
+              <glossentry>
+                <glossterm>path to program</glossterm>
+
+                <glossdef>
+                  <para>Absolute path and process name of process to execute
+                  in the guest, e.g.
+                  <computeroutput>C:\Windows\System32\calc.exe</computeroutput></para>
+                </glossdef>
+              </glossentry>
+
+              <glossentry>
+                <glossterm>--arguments "&lt;arguments&gt;"</glossterm>
+
+                <glossdef>
+                  <para>One or more arguments to pass to the process being
+                  executed.</para>
+
+                  <para>Arguments containing spaces must be enclosed in
+                  quotation marks. More than one
+                  <computeroutput>--arguments</computeroutput> at a time can
+                  be specified to keep the command line tidy.</para>
+                </glossdef>
+              </glossentry>
+
+              <glossentry>
+                <glossterm>--environment
+                "&lt;NAME&gt;=&lt;VALUE&gt;"</glossterm>
+
+                <glossdef>
+                  <para>One or more environment variables to be set or
+                  unset.</para>
+
+                  <para>By default, the new process in the guest will be
+                  created with the standard environment of the guest OS. This
+                  option allows for modifying that environment. To set/modify
+                  a variable, a pair of
+                  <computeroutput>NAME=VALUE</computeroutput> must be
+                  specified; to unset a certain variable, the name with no
+                  value must set, e.g.
+                  <computeroutput>NAME=</computeroutput>.</para>
+
+                  <para>Arguments containing spaces must be enclosed in
+                  quotation marks. More than one
+                  <computeroutput>--environment</computeroutput> at a time can
+                  be specified to keep the command line tidy.</para>
+                </glossdef>
+              </glossentry>
+
+              <glossentry>
+                <glossterm>--flags &lt;flags&gt;</glossterm>
+
+                <glossdef>
+                  <para>Additional flags to set. This is not used at the
+                  moment.</para>
+                </glossdef>
+              </glossentry>
+
+              <glossentry>
+                <glossterm>--timeout &lt;msec&gt;</glossterm>
+
+                <glossdef>
+                  <para>Value (in milliseconds) that specifies the time how
+                  long the started process is allowed to run and how long
+                  VBoxManage waits for getting output from that process. If no
+                  timeout is specified, VBoxManage will wait forever until the
+                  started process ends or an error occured.</para>
+                </glossdef>
+              </glossentry>
+
+              <glossentry>
+                <glossterm>--username &lt;name&gt;</glossterm>
+
+                <glossdef>
+                  <para>Name of the user the process should run under. This
+                  user must exist on the guest OS.</para>
+                </glossdef>
+              </glossentry>
+
+              <glossentry>
+                <glossterm>--password &lt;password&gt;</glossterm>
+
+                <glossdef>
+                  <para>Password of the user account specified with
+                  <computeroutput>--username</computeroutput>. If not given,
+                  an empty password is assumed.</para>
+                </glossdef>
+              </glossentry>
+
+              <glossentry>
+                <glossterm>--verbose</glossterm>
+
+                <glossdef>
+                  <para>Tells VBoxManage to be more verbose.</para>
+                </glossdef>
+              </glossentry>
+
+              <glossentry>
+                <glossterm>--wait-for &lt;action&gt;</glossterm>
+
+                <glossdef>
+                  <para>Tells VBoxManage to wait for a certain action to
+                  happen and react to it. The following actions are available:
+                  <glosslist>
+                      <glossentry>
+                        <glossterm>exit</glossterm>
+
+                        <glossdef>
+                          <para>Waits until the process ends and outputs its
+                          exit code along with the exit reason/flags.</para>
+                        </glossdef>
+                      </glossentry>
+
+                      <glossentry>
+                        <glossterm>stdout or stderr</glossterm>
+
+                        <glossdef>
+                          <para>Waits until the process ends and outputs its
+                          exit code along with the exit reason/flags. After
+                          that VBoxManage retrieves the output collected from
+                          the guest process's stdout and stderr.</para>
+                        </glossdef>
+                      </glossentry>
+                    </glosslist></para>
+                </glossdef>
+              </glossentry>
+            </glosslist></para>
+
+          <para><note>
+              <para>On Windows there are certain limitations for graphical
+              applications; please see <xref linkend="KnownIssues" /> for more
+              information.</para>
+            </note> Examples: <screen>VBoxManage --nologo guestcontrol execute "My VM" "/bin/ls" --arguments "-l /usr"
+          --username foo --password bar --wait-for stdout</screen> <screen>VBoxManage --nologo guestcontrol execute "My VM" "c:\\windows\\system32\\ipconfig.exe"
+          --username foo --password bar --wait-for stdout</screen> Note that
+          the double backslashes in the second example are only required on
+          Unix hosts.</para>
+        </listitem>
+
+        <listitem>
+          <para><computeroutput>copyto</computeroutput>, which allows copying
+          files from the host to the guest (only with installed Guest
+          Additions 4.0 and later).</para>
+
+          <screen>VBoxManage copyto|cp &lt;vmname&gt;|&lt;uuid&gt;
+            &lt;source on host&gt; &lt;destination on guest&gt;
+            --username &lt;name&gt; --password &lt;password&gt;
+            [--dryrun] [--follow] [--recursive] [--verbose]</screen>
+
+          <para>where the parameters mean: <glosslist>
+              <glossentry>
+                <glossterm>uuid|vmname</glossterm>
+
+                <glossdef>
+                  <para>The VM UUID or VM name. Mandatory.</para>
+                </glossdef>
+              </glossentry>
+
+              <glossentry>
+                <glossterm>source on host</glossterm>
+
+                <glossdef>
+                  <para>Absolute path of source file(s) on host to copy over
+                  to the guest, e.g.
+                  <computeroutput>C:\Windows\System32\calc.exe</computeroutput>.
+                  This also can be a wildcard expression, e.g.
+                  <computeroutput>C:\Windows\System32\*.dll</computeroutput></para>
+                </glossdef>
+              </glossentry>
+
+              <glossentry>
+                <glossterm>destination on guest</glossterm>
+
+                <glossdef>
+                  <para>Absolute destination path on the guest, e.g.
+                  <computeroutput>C:\Temp</computeroutput></para>
+                </glossdef>
+              </glossentry>
+
+              <glossentry>
+                <glossterm>--username &lt;name&gt;</glossterm>
+
+                <glossdef>
+                  <para>Name of the user the copy process should run under.
+                  This user must exist on the guest OS.</para>
+                </glossdef>
+              </glossentry>
+
+              <glossentry>
+                <glossterm>--password &lt;password&gt;</glossterm>
+
+                <glossdef>
+                  <para>Password of the user account specified with
+                  <computeroutput>--username</computeroutput>. If not given,
+                  an empty password is assumed.</para>
+                </glossdef>
+              </glossentry>
+
+              <glossentry>
+                <glossterm>--dryrun</glossterm>
+
+                <glossdef>
+                  <para>Tells VBoxManage to only perform a dry run instead of
+                  really copying files to the guest.</para>
+                </glossdef>
+              </glossentry>
+
+              <glossentry>
+                <glossterm>--follow</glossterm>
+
+                <glossdef>
+                  <para>Enables following symlinks on the host's
+                  source.</para>
+                </glossdef>
+              </glossentry>
+
+              <glossentry>
+                <glossterm>--recursive</glossterm>
+
+                <glossdef>
+                  <para>Recursively copies files/directories of the specified
+                  source.</para>
+                </glossdef>
+              </glossentry>
+
+              <glossentry>
+                <glossterm>--verbose</glossterm>
+
+                <glossdef>
+                  <para>Tells VBoxManage to be more verbose.</para>
+                </glossdef>
+              </glossentry>
+
+              <glossentry>
+                <glossterm>--flags &lt;flags&gt;</glossterm>
+
+                <glossdef>
+                  <para>Additional flags to set. This is not used at the
+                  moment.</para>
+                </glossdef>
+              </glossentry>
+            </glosslist></para>
+        </listitem>
+
+        <listitem>
+          <para><computeroutput>createdirectory</computeroutput>, which allows
+          copying files from the host to the guest (only with installed Guest
+          Additions 4.0 and later).</para>
+
+          <screen>VBoxManage createdir[ectory]|mkdir|md &lt;vmname&gt;|&lt;uuid&gt;
+            &lt;directory to create on guest&gt;
+            [--username "&lt;name&gt;"] [--password "&lt;password&gt;"]
+            [--parents] [--mode &lt;mode&gt;] [--verbose]</screen>
+
+          <para>where the parameters mean: <glosslist>
+              <glossentry>
+                <glossterm>uuid|vmname</glossterm>
+
+                <glossdef>
+                  <para>The VM UUID or VM name. Mandatory.</para>
+                </glossdef>
+              </glossentry>
+
+              <glossentry>
+                <glossterm>directory to create on guest</glossterm>
+
+                <glossdef>
+                  <para>Absolute path of directory/directories to create on
+                  guest, e.g. <computeroutput>D:\Foo\Bar</computeroutput>.
+                  Parent directories need to exist (e.g. in this example
+                  <computeroutput>D:\Foo</computeroutput>) when switch
+                  <computeroutput>--parents</computeroutput> is omitted. The
+                  specified user must have appropriate rights to create the
+                  specified directory.</para>
+                </glossdef>
+              </glossentry>
+
+              <glossentry>
+                <glossterm>--username &lt;name&gt;</glossterm>
+
+                <glossdef>
+                  <para>Name of the user the copy process should run under.
+                  This user must exist on the guest OS.</para>
+                </glossdef>
+              </glossentry>
+
+              <glossentry>
+                <glossterm>--password &lt;password&gt;</glossterm>
+
+                <glossdef>
+                  <para>Password of the user account specified with
+                  <computeroutput>--username</computeroutput>. If not given,
+                  an empty password is assumed.</para>
+                </glossdef>
+              </glossentry>
+
+              <glossentry>
+                <glossterm>--parents</glossterm>
+
+                <glossdef>
+                  <para>Also creates not yet existing parent directories of
+                  the specified directory, e.g. if the directory
+                  <computeroutput>D:\Foo</computeroutput> of
+                  <computeroutput>D:\Foo\Bar</computeroutput> does not exist
+                  yet it will be created. Without specifying
+                  <computeroutput>--parent</computeroutput> the action would
+                  have failed.</para>
+                </glossdef>
+              </glossentry>
+
+              <glossentry>
+                <glossterm>--mode &lt;mode&gt;</glossterm>
+
+                <glossdef>
+                  <para>Sets the permission mode of the specified directory.
+                  Only octal modes (e.g.
+                  <computeroutput>0755</computeroutput>) are supported right
+                  now.</para>
+                </glossdef>
+              </glossentry>
+
+              <glossentry>
+                <glossterm>--verbose</glossterm>
+
+                <glossdef>
+                  <para>Tells VBoxManage to be more verbose.</para>
+                </glossdef>
+              </glossentry>
+            </glosslist></para>
+        </listitem>
+
+        <listitem>
+          <para><computeroutput>updateadditions</computeroutput>, which allows
+          for updating an already installed Guest Additions version on the
+          guest (only already installed Guest Additions 4.0 and later).</para>
+
+          <screen>VBoxManage guestcontrol updateadditions &lt;vmname&gt;|&lt;uuid&gt;
+            [--source "&lt;guest additions .ISO file to use&gt;"] [--verbose]</screen>
+
+          <para>where the parameters mean: <glosslist>
+              <glossentry>
+                <glossterm>uuid|vmname</glossterm>
+
+                <glossdef>
+                  <para>The VM UUID or VM name. Mandatory.</para>
+                </glossdef>
+              </glossentry>
+
+              <glossentry>
+                <glossterm>--source "&lt;guest additions .ISO file to
+                use&gt;"</glossterm>
+
+                <glossdef>
+                  <para>Full path to an alternative VirtualBox Guest Additions
+                  .ISO file to use for the Guest Additions update.</para>
+                </glossdef>
+              </glossentry>
+
+              <glossentry>
+                <glossterm>--verbose</glossterm>
+
+                <glossdef>
+                  <para>Tells VBoxManage to be more verbose.</para>
+                </glossdef>
+              </glossentry>
+            </glosslist></para>
+        </listitem>
+      </itemizedlist></para>
+  </sect1>
+
+  <sect1 id="vboxmanage-debugvm">
+    <title>VBoxManage debugvm</title>
+
+    <para>The "debugvm" commands are for experts who want to tinker with the
+    exact details of virtual machine execution. Like the VM debugger described
+    in <xref linkend="debugger" />, these commands are only useful if you are
+    very familiar with the details of the PC architecture and how to debug
+    software.</para>
+
+    <para>The subcommands of "debugvm" all operate on a running virtual
+    machine. The following are available:<itemizedlist>
+        <listitem>
+          <para>With <computeroutput>dumpguestcore --filename
+          &lt;name&gt;</computeroutput>, you can create a system dump of the
+          running VM, which will be written into the given file. This file
+          will have the standard ELF core format (with custom sections); see
+          <xref linkend="guestcoreformat" />.</para>
+        </listitem>
+
+        <listitem>
+          <para>The <computeroutput>injectnmi</computeroutput> command causes
+          a non-maskable interrupt (NMI) in the guest, which might be useful
+          for certain debugging scenarios. What happens exactly is dependent
+          on the guest operating system, but an NMI can crash the whole guest
+          operating system. Do not use unless you know what you're
+          doing.</para>
+        </listitem>
+
+        <listitem>
+          <para>The <computeroutput>statistics</computeroutput> command can be
+          used to display VMM statistics on the command line. The
+          <computeroutput>--reset</computeroutput> option will reset
+          statistics. The affected statistics can be filtered with the
+          <computeroutput>--pattern</computeroutput> option, which accepts
+          DOS/NT-style wildcards (<computeroutput>?</computeroutput> and
+          <computeroutput>*</computeroutput>).</para>
+        </listitem>
+      </itemizedlist></para>
+  </sect1>
+  
   <sect1>
     <title id="metrics">VBoxManage metrics</title>
@@ -2398,549 +2954,13 @@
     </glosslist>
   </sect1>
-
-  <sect1 id="vboxmanage-guestproperty">
-    <title>VBoxManage guestproperty</title>
-
-    <para>The "guestproperty" commands allow you to get or set properties of a
-    running virtual machine. Please see <xref linkend="guestadd-guestprops" />
-    for an introduction. As explained there, guest properties are arbitrary
-    key/value string pairs which can be written to and read from by either the
-    guest or the host, so they can be used as a low-volume communication
-    channel for strings, provided that a guest is running and has the Guest
-    Additions installed. In addition, a number of values whose keys begin with
-    "/VirtualBox/" are automatically set and maintained by the Guest
-    Additions.</para>
-
-    <para>The following subcommands are available (where
-    <computeroutput>&lt;vm&gt;</computeroutput>, in each case, can either be a
-    VM name or a VM UUID, as with the other VBoxManage commands):<itemizedlist>
-        <listitem>
-          <para><computeroutput>enumerate &lt;vm&gt; [--patterns
-          &lt;pattern&gt;]</computeroutput>: This lists all the guest
-          properties that are available for the given VM, including the value.
-          This list will be very limited if the guest's service process cannot
-          be contacted, e.g. because the VM is not running or the Guest
-          Additions are not installed.</para>
-
-          <para>If <computeroutput>--patterns &lt;pattern&gt;</computeroutput>
-          is specified, it acts as a filter to only list properties that match
-          the given pattern. The pattern can contain the following wildcard
-          characters:<itemizedlist>
-              <listitem>
-                <para><computeroutput>*</computeroutput> (asterisk):
-                represents any number of characters; for example,
-                "<computeroutput>/VirtualBox*</computeroutput>" would match
-                all properties beginning with "/VirtualBox".</para>
-              </listitem>
-
-              <listitem>
-                <para><computeroutput>?</computeroutput> (question mark):
-                represents a single arbitrary character; for example,
-                "<computeroutput>fo?</computeroutput>" would match both "foo"
-                and "for".</para>
-              </listitem>
-
-              <listitem>
-                <para><computeroutput>|</computeroutput> (pipe symbol): can be
-                used to specify multiple alternative patterns; for example,
-                "<computeroutput>s*|t*</computeroutput>" would match anything
-                starting with either "s" or "t".</para>
-              </listitem>
-            </itemizedlist></para>
-        </listitem>
-
-        <listitem>
-          <para><computeroutput>get &lt;vm&gt;</computeroutput>: This
-          retrieves the value of a single property only. If the property
-          cannot be found (e.g. because the guest is not running), this will
-          print "No value set!".</para>
-        </listitem>
-
-        <listitem>
-          <para><computeroutput>set &lt;vm&gt; &lt;property&gt; [&lt;value&gt;
-          [--flags &lt;flags&gt;]]</computeroutput>: This allows you to set a
-          guest property by specifying the key and value. If
-          <computeroutput>&lt;value&gt;</computeroutput> is omitted, the
-          property is deleted. With <computeroutput>--flags</computeroutput>
-          you can optionally specify additional behavior (you can combine
-          several by separating them with commas):<itemizedlist>
-              <listitem>
-                <para><computeroutput>TRANSIENT</computeroutput>: the value
-                will not be stored with the VM data when the VM exits;</para>
-              </listitem>
-
-              <listitem>
-                <para><computeroutput>RDONLYGUEST</computeroutput>: the value
-                can only be changed by the host, but the guest can only read
-                it;</para>
-              </listitem>
-
-              <listitem>
-                <para><computeroutput>RDONLYHOST</computeroutput>: reversely,
-                the value can only be changed by the guest, but the host can
-                only read it;</para>
-              </listitem>
-
-              <listitem>
-                <para><computeroutput>READONLY</computeroutput>: a combination
-                of the two, the value cannot be changed at all.</para>
-              </listitem>
-            </itemizedlist></para>
-        </listitem>
-
-        <listitem>
-          <para><computeroutput>wait &lt;vm&gt; &lt;pattern&gt; --timeout
-          &lt;timeout&gt;</computeroutput>: This waits for a particular value
-          described by "pattern" to change or to be deleted or created. The
-          pattern rules are the same as for the "enumerate" subcommand
-          above.</para>
-        </listitem>
-      </itemizedlist></para>
-  </sect1>
-
-  <sect1 id="vboxmanage-guestcontrol">
-    <title>VBoxManage guestcontrol</title>
-
-    <para>The "guestcontrol" commands allow you to control certain things
-    inside a guest from the host. Please see <xref
-    linkend="guestadd-guestcontrol" /> for an introduction.</para>
-
-    <para>Generally, the syntax is as follows:</para>
-
-    <screen>VBoxManage guestcontrol &lt;command&gt;</screen>
-
-    <para>The following subcommands are available (where
-    <computeroutput>&lt;vm&gt;</computeroutput>, in each case, can either be a
-    VM name or a VM UUID, as with the other VBoxManage commands):<itemizedlist>
-        <listitem>
-          <para><computeroutput>execute</computeroutput>, which allows for
-          executing a program/script (process) which is already installed and
-          runnable on the guest. This command only works while a VM is up and
-          running and has the following syntax:</para>
-
-          <screen>VBoxManage guestcontrol exec[ute] &lt;vmname&gt;|&lt;uuid&gt;
-            &lt;path to program&gt;
-            --username &lt;name&gt; --password &lt;password&gt;
-            [--arguments "&lt;arguments&gt;"]
-            [--environment "&lt;NAME&gt;=&lt;VALUE&gt; [&lt;NAME&gt;=&lt;VALUE&gt;]"]
-            [--flags &lt;flags&gt;] [--timeout &lt;msec&gt;]
-            [--verbose] [--wait-for exit,stdout,stderr||]</screen>
-
-          <para>where the parameters mean: <glosslist>
-              <glossentry>
-                <glossterm>uuid|vmname</glossterm>
-
-                <glossdef>
-                  <para>The VM UUID or VM name. Mandatory.</para>
-                </glossdef>
-              </glossentry>
-
-              <glossentry>
-                <glossterm>path to program</glossterm>
-
-                <glossdef>
-                  <para>Absolute path and process name of process to execute
-                  in the guest, e.g.
-                  <computeroutput>C:\Windows\System32\calc.exe</computeroutput></para>
-                </glossdef>
-              </glossentry>
-
-              <glossentry>
-                <glossterm>--arguments "&lt;arguments&gt;"</glossterm>
-
-                <glossdef>
-                  <para>One or more arguments to pass to the process being
-                  executed.</para>
-
-                  <para>Arguments containing spaces must be enclosed in
-                  quotation marks. More than one
-                  <computeroutput>--arguments</computeroutput> at a time can
-                  be specified to keep the command line tidy.</para>
-                </glossdef>
-              </glossentry>
-
-              <glossentry>
-                <glossterm>--environment
-                "&lt;NAME&gt;=&lt;VALUE&gt;"</glossterm>
-
-                <glossdef>
-                  <para>One or more environment variables to be set or
-                  unset.</para>
-
-                  <para>By default, the new process in the guest will be
-                  created with the standard environment of the guest OS. This
-                  option allows for modifying that environment. To set/modify
-                  a variable, a pair of
-                  <computeroutput>NAME=VALUE</computeroutput> must be
-                  specified; to unset a certain variable, the name with no
-                  value must set, e.g.
-                  <computeroutput>NAME=</computeroutput>.</para>
-
-                  <para>Arguments containing spaces must be enclosed in
-                  quotation marks. More than one
-                  <computeroutput>--environment</computeroutput> at a time can
-                  be specified to keep the command line tidy.</para>
-                </glossdef>
-              </glossentry>
-
-              <glossentry>
-                <glossterm>--flags &lt;flags&gt;</glossterm>
-
-                <glossdef>
-                  <para>Additional flags to set. This is not used at the
-                  moment.</para>
-                </glossdef>
-              </glossentry>
-
-              <glossentry>
-                <glossterm>--timeout &lt;msec&gt;</glossterm>
-
-                <glossdef>
-                  <para>Value (in milliseconds) that specifies the time how
-                  long the started process is allowed to run and how long
-                  VBoxManage waits for getting output from that process. If no
-                  timeout is specified, VBoxManage will wait forever until the
-                  started process ends or an error occured.</para>
-                </glossdef>
-              </glossentry>
-
-              <glossentry>
-                <glossterm>--username &lt;name&gt;</glossterm>
-
-                <glossdef>
-                  <para>Name of the user the process should run under. This
-                  user must exist on the guest OS.</para>
-                </glossdef>
-              </glossentry>
-
-              <glossentry>
-                <glossterm>--password &lt;password&gt;</glossterm>
-
-                <glossdef>
-                  <para>Password of the user account specified with
-                  <computeroutput>--username</computeroutput>. If not given,
-                  an empty password is assumed.</para>
-                </glossdef>
-              </glossentry>
-
-              <glossentry>
-                <glossterm>--verbose</glossterm>
-
-                <glossdef>
-                  <para>Tells VBoxManage to be more verbose.</para>
-                </glossdef>
-              </glossentry>
-
-              <glossentry>
-                <glossterm>--wait-for &lt;action&gt;</glossterm>
-
-                <glossdef>
-                  <para>Tells VBoxManage to wait for a certain action to
-                  happen and react to it. The following actions are available:
-                  <glosslist>
-                      <glossentry>
-                        <glossterm>exit</glossterm>
-
-                        <glossdef>
-                          <para>Waits until the process ends and outputs its
-                          exit code along with the exit reason/flags.</para>
-                        </glossdef>
-                      </glossentry>
-
-                      <glossentry>
-                        <glossterm>stdout or stderr</glossterm>
-
-                        <glossdef>
-                          <para>Waits until the process ends and outputs its
-                          exit code along with the exit reason/flags. After
-                          that VBoxManage retrieves the output collected from
-                          the guest process's stdout and stderr.</para>
-                        </glossdef>
-                      </glossentry>
-                    </glosslist></para>
-                </glossdef>
-              </glossentry>
-            </glosslist></para>
-
-          <para><note>
-              <para>On Windows there are certain limitations for graphical
-              applications; please see <xref linkend="KnownIssues" /> for more
-              information.</para>
-            </note> Examples: <screen>VBoxManage --nologo guestcontrol execute "My VM" "/bin/ls" --arguments "-l /usr"
-          --username foo --password bar --wait-for stdout</screen> <screen>VBoxManage --nologo guestcontrol execute "My VM" "c:\\windows\\system32\\ipconfig.exe"
-          --username foo --password bar --wait-for stdout</screen> Note that
-          the double backslashes in the second example are only required on
-          Unix hosts.</para>
-        </listitem>
-
-        <listitem>
-          <para><computeroutput>copyto</computeroutput>, which allows copying
-          files from the host to the guest (only with installed Guest
-          Additions 4.0 and later).</para>
-
-          <screen>VBoxManage copyto|cp &lt;vmname&gt;|&lt;uuid&gt;
-            &lt;source on host&gt; &lt;destination on guest&gt;
-            --username &lt;name&gt; --password &lt;password&gt;
-            [--dryrun] [--follow] [--recursive] [--verbose]</screen>
-
-          <para>where the parameters mean: <glosslist>
-              <glossentry>
-                <glossterm>uuid|vmname</glossterm>
-
-                <glossdef>
-                  <para>The VM UUID or VM name. Mandatory.</para>
-                </glossdef>
-              </glossentry>
-
-              <glossentry>
-                <glossterm>source on host</glossterm>
-
-                <glossdef>
-                  <para>Absolute path of source file(s) on host to copy over
-                  to the guest, e.g.
-                  <computeroutput>C:\Windows\System32\calc.exe</computeroutput>.
-                  This also can be a wildcard expression, e.g.
-                  <computeroutput>C:\Windows\System32\*.dll</computeroutput></para>
-                </glossdef>
-              </glossentry>
-
-              <glossentry>
-                <glossterm>destination on guest</glossterm>
-
-                <glossdef>
-                  <para>Absolute destination path on the guest, e.g.
-                  <computeroutput>C:\Temp</computeroutput></para>
-                </glossdef>
-              </glossentry>
-
-              <glossentry>
-                <glossterm>--username &lt;name&gt;</glossterm>
-
-                <glossdef>
-                  <para>Name of the user the copy process should run under.
-                  This user must exist on the guest OS.</para>
-                </glossdef>
-              </glossentry>
-
-              <glossentry>
-                <glossterm>--password &lt;password&gt;</glossterm>
-
-                <glossdef>
-                  <para>Password of the user account specified with
-                  <computeroutput>--username</computeroutput>. If not given,
-                  an empty password is assumed.</para>
-                </glossdef>
-              </glossentry>
-
-              <glossentry>
-                <glossterm>--dryrun</glossterm>
-
-                <glossdef>
-                  <para>Tells VBoxManage to only perform a dry run instead of
-                  really copying files to the guest.</para>
-                </glossdef>
-              </glossentry>
-
-              <glossentry>
-                <glossterm>--follow</glossterm>
-
-                <glossdef>
-                  <para>Enables following symlinks on the host's
-                  source.</para>
-                </glossdef>
-              </glossentry>
-
-              <glossentry>
-                <glossterm>--recursive</glossterm>
-
-                <glossdef>
-                  <para>Recursively copies files/directories of the specified
-                  source.</para>
-                </glossdef>
-              </glossentry>
-
-              <glossentry>
-                <glossterm>--verbose</glossterm>
-
-                <glossdef>
-                  <para>Tells VBoxManage to be more verbose.</para>
-                </glossdef>
-              </glossentry>
-
-              <glossentry>
-                <glossterm>--flags &lt;flags&gt;</glossterm>
-
-                <glossdef>
-                  <para>Additional flags to set. This is not used at the
-                  moment.</para>
-                </glossdef>
-              </glossentry>
-            </glosslist></para>
-        </listitem>
-
-        <listitem>
-          <para><computeroutput>createdirectory</computeroutput>, which allows
-          copying files from the host to the guest (only with installed Guest
-          Additions 4.0 and later).</para>
-
-          <screen>VBoxManage createdir[ectory]|mkdir|md &lt;vmname&gt;|&lt;uuid&gt;
-            &lt;directory to create on guest&gt;
-            [--username "&lt;name&gt;"] [--password "&lt;password&gt;"]
-            [--parents] [--mode &lt;mode&gt;] [--verbose]</screen>
-
-          <para>where the parameters mean: <glosslist>
-              <glossentry>
-                <glossterm>uuid|vmname</glossterm>
-
-                <glossdef>
-                  <para>The VM UUID or VM name. Mandatory.</para>
-                </glossdef>
-              </glossentry>
-
-              <glossentry>
-                <glossterm>directory to create on guest</glossterm>
-
-                <glossdef>
-                  <para>Absolute path of directory/directories to create on
-                  guest, e.g. <computeroutput>D:\Foo\Bar</computeroutput>.
-                  Parent directories need to exist (e.g. in this example
-                  <computeroutput>D:\Foo</computeroutput>) when switch
-                  <computeroutput>--parents</computeroutput> is omitted. The
-                  specified user must have appropriate rights to create the
-                  specified directory.</para>
-                </glossdef>
-              </glossentry>
-
-              <glossentry>
-                <glossterm>--username &lt;name&gt;</glossterm>
-
-                <glossdef>
-                  <para>Name of the user the copy process should run under.
-                  This user must exist on the guest OS.</para>
-                </glossdef>
-              </glossentry>
-
-              <glossentry>
-                <glossterm>--password &lt;password&gt;</glossterm>
-
-                <glossdef>
-                  <para>Password of the user account specified with
-                  <computeroutput>--username</computeroutput>. If not given,
-                  an empty password is assumed.</para>
-                </glossdef>
-              </glossentry>
-
-              <glossentry>
-                <glossterm>--parents</glossterm>
-
-                <glossdef>
-                  <para>Also creates not yet existing parent directories of
-                  the specified directory, e.g. if the directory
-                  <computeroutput>D:\Foo</computeroutput> of
-                  <computeroutput>D:\Foo\Bar</computeroutput> does not exist
-                  yet it will be created. Without specifying
-                  <computeroutput>--parent</computeroutput> the action would
-                  have failed.</para>
-                </glossdef>
-              </glossentry>
-
-              <glossentry>
-                <glossterm>--mode &lt;mode&gt;</glossterm>
-
-                <glossdef>
-                  <para>Sets the permission mode of the specified directory.
-                  Only octal modes (e.g.
-                  <computeroutput>0755</computeroutput>) are supported right
-                  now.</para>
-                </glossdef>
-              </glossentry>
-
-              <glossentry>
-                <glossterm>--verbose</glossterm>
-
-                <glossdef>
-                  <para>Tells VBoxManage to be more verbose.</para>
-                </glossdef>
-              </glossentry>
-            </glosslist></para>
-        </listitem>
-
-        <listitem>
-          <para><computeroutput>updateadditions</computeroutput>, which allows
-          for updating an already installed Guest Additions version on the
-          guest (only already installed Guest Additions 4.0 and later).</para>
-
-          <screen>VBoxManage guestcontrol updateadditions &lt;vmname&gt;|&lt;uuid&gt;
-            [--source "&lt;guest additions .ISO file to use&gt;"] [--verbose]</screen>
-
-          <para>where the parameters mean: <glosslist>
-              <glossentry>
-                <glossterm>uuid|vmname</glossterm>
-
-                <glossdef>
-                  <para>The VM UUID or VM name. Mandatory.</para>
-                </glossdef>
-              </glossentry>
-
-              <glossentry>
-                <glossterm>--source "&lt;guest additions .ISO file to
-                use&gt;"</glossterm>
-
-                <glossdef>
-                  <para>Full path to an alternative VirtualBox Guest Additions
-                  .ISO file to use for the Guest Additions update.</para>
-                </glossdef>
-              </glossentry>
-
-              <glossentry>
-                <glossterm>--verbose</glossterm>
-
-                <glossdef>
-                  <para>Tells VBoxManage to be more verbose.</para>
-                </glossdef>
-              </glossentry>
-            </glosslist></para>
-        </listitem>
-      </itemizedlist></para>
-  </sect1>
-
-  <sect1 id="vboxmanage-debugvm">
-    <title>VBoxManage debugvm</title>
-
-    <para>The "debugvm" commands are for experts who want to tinker with the
-    exact details of virtual machine execution. Like the VM debugger described
-    in <xref linkend="debugger" />, these commands are only useful if you are
-    very familiar with the details of the PC architecture and how to debug
-    software.</para>
-
-    <para>The subcommands of "debugvm" all operate on a running virtual
-    machine. The following are available:<itemizedlist>
-        <listitem>
-          <para>With <computeroutput>dumpguestcore --filename
-          &lt;name&gt;</computeroutput>, you can create a system dump of the
-          running VM, which will be written into the given file. This file
-          will have the standard ELF core format (with custom sections); see
-          <xref linkend="guestcoreformat" />.</para>
-        </listitem>
-
-        <listitem>
-          <para>The <computeroutput>injectnmi</computeroutput> command causes
-          a non-maskable interrupt (NMI) in the guest, which might be useful
-          for certain debugging scenarios. What happens exactly is dependent
-          on the guest operating system, but an NMI can crash the whole guest
-          operating system. Do not use unless you know what you're
-          doing.</para>
-        </listitem>
-
-        <listitem>
-          <para>The <computeroutput>statistics</computeroutput> command can be
-          used to display VMM statistics on the command line. The
-          <computeroutput>--reset</computeroutput> option will reset
-          statistics. The affected statistics can be filtered with the
-          <computeroutput>--pattern</computeroutput> option, which accepts
-          DOS/NT-style wildcards (<computeroutput>?</computeroutput> and
-          <computeroutput>*</computeroutput>).</para>
-        </listitem>
-      </itemizedlist></para>
+  
+  <sect1>
+    <title>VBoxManage hostonlyif</title>
+    
+    <para>With "hostonlyif" you can change the IP configuration of a host-only
+    network interface. For a description of host-only networking, please
+    refer to <xref linkend="network_hostonly" />. Each host-only interface is
+    identified by a name and can either use the internal DHCP server or a
+    manual IP configuration (both IP4 and IP6).</para>
   </sect1>
 
