Index: /trunk/src/VBox/Frontends/VBoxManage/VBoxManageCloud.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VBoxManage/VBoxManageCloud.cpp	(revision 84644)
+++ /trunk/src/VBox/Frontends/VBoxManage/VBoxManageCloud.cpp	(revision 84645)
@@ -2296,5 +2296,5 @@
     if (aProxy.isNotEmpty())
     {
-        hrc = unattended->COMSETTER(ExtraInstallKernelParameters)(BstrFmt(" ks=cdrom:/ks.cfg proxy=\"%ls\"", aProxy.raw()).raw());
+        hrc = unattended->COMSETTER(Proxy)(aProxy.raw());
         if (errorOccured(hrc, "Failed to set post install script template for the unattended installer."))
             return hrc;
Index: /trunk/src/VBox/Main/include/UnattendedImpl.h
===================================================================
--- /trunk/src/VBox/Main/include/UnattendedImpl.h	(revision 84644)
+++ /trunk/src/VBox/Main/include/UnattendedImpl.h	(revision 84645)
@@ -56,4 +56,5 @@
     Utf8Str const &i_getFullUserName() const;
     Utf8Str const &i_getProductKey() const;
+    Utf8Str const &i_getProxy() const;
     Utf8Str const &i_getAdditionsIsoPath() const;
     bool           i_getInstallGuestAdditions() const;
@@ -122,4 +123,5 @@
     RTCList<RTCString, RTCString *> mDetectedOSLanguages; /**< (only relevant for windows at the moment) */
     Utf8Str         mStrDetectedOSHints;
+    Utf8Str         mStrProxy;
     /** @} */
 
Index: /trunk/src/VBox/Main/src-server/UnattendedImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/src-server/UnattendedImpl.cpp	(revision 84644)
+++ /trunk/src/VBox/Main/src-server/UnattendedImpl.cpp	(revision 84645)
@@ -2213,5 +2213,5 @@
 {
     AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
-    aProxy = ""; /// @todo turn schema map into string or something.
+    aProxy = mStrProxy; /// @todo turn schema map into string or something.
     return S_OK;
 }
@@ -2228,9 +2228,11 @@
     {
         /* clear proxy config */
+        mStrProxy = "";
     }
     else
     {
-        /* Parse and set proxy config into a schema map or something along those lines. */
-        return E_NOTIMPL;
+        /** @todo Parse and set proxy config into a schema map or something along those lines. */
+        // return E_NOTIMPL;
+        mStrProxy = aProxy;
     }
     return S_OK;
@@ -2545,4 +2547,10 @@
 }
 
+Utf8Str const &Unattended::i_getProxy() const
+{
+    Assert(isReadLockedOnCurrentThread());
+    return mStrProxy;
+}
+
 Utf8Str const &Unattended::i_getAdditionsIsoPath() const
 {
Index: /trunk/src/VBox/Main/src-server/UnattendedScript.cpp
===================================================================
--- /trunk/src/VBox/Main/src-server/UnattendedScript.cpp	(revision 84644)
+++ /trunk/src/VBox/Main/src-server/UnattendedScript.cpp	(revision 84645)
@@ -418,4 +418,6 @@
     else if (IS_PLACEHOLDER_MATCH("HOSTNAME_DOMAIN"))
         rValue.assign(mpUnattended->i_getHostname(), mpUnattended->i_getHostname().find(".") + 1);
+    else if (IS_PLACEHOLDER_MATCH("PROXY"))
+        rValue = mpUnattended->i_getProxy();
     else
     {
@@ -469,4 +471,6 @@
     else if (IS_PLACEHOLDER_MATCH("IS_NOT_RTC_USING_UTC"))
         *pfOutputting = !mpUnattended->i_isRtcUsingUtc();
+    else if (IS_PLACEHOLDER_MATCH("HAS_PROXY"))
+        *pfOutputting = mpUnattended->i_getProxy().isNotEmpty();
     else
         return mpSetError->setErrorBoth(E_FAIL, VERR_NOT_FOUND, mpSetError->tr("Unknown conditional placeholder '%.*s'"),
