Index: trunk/src/VBox/Frontends/VirtualBox/src/globals/UIDefs.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/globals/UIDefs.cpp	(revision 46761)
+++ trunk/src/VBox/Frontends/VirtualBox/src/globals/UIDefs.cpp	(revision 46763)
@@ -68,4 +68,8 @@
 const char* UIDefs::GUI_RestrictedStatusBarIndicators = "GUI/RestrictedStatusBarIndicators";
 
+/* Settings dialogs stuff: */
+const char* UIDefs::GUI_RestrictedGlobalSettingsPages = "GUI/RestrictedGlobalSettingsPages";
+const char* UIDefs::GUI_RestrictedMachineSettingsPages = "GUI/RestrictedMachineSettingsPages";
+
 /* Mini tool-bar definitions: */
 const char* UIDefs::GUI_ShowMiniToolBar = "GUI/ShowMiniToolBar";
Index: trunk/src/VBox/Frontends/VirtualBox/src/globals/UIDefs.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/globals/UIDefs.h	(revision 46761)
+++ trunk/src/VBox/Frontends/VirtualBox/src/globals/UIDefs.h	(revision 46763)
@@ -140,4 +140,8 @@
     extern const char* GUI_RestrictedStatusBarIndicators;
 
+    /* Settings dialogs stuff: */
+    extern const char* GUI_RestrictedGlobalSettingsPages;
+    extern const char* GUI_RestrictedMachineSettingsPages;
+
     /* Mini tool-bar declarations: */
     extern const char* GUI_ShowMiniToolBar;
Index: trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp	(revision 46761)
+++ trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp	(revision 46763)
@@ -3776,4 +3776,42 @@
         MachineCloseAction value = gpConverter->fromInternalString<MachineCloseAction>(strValue);
         if (value != MachineCloseAction_Invalid)
+            result << value;
+    }
+    /* Return result: */
+    return result;
+}
+
+/* static */
+QList<GlobalSettingsPageType> VBoxGlobal::restrictedGlobalSettingsPages(CVirtualBox &vbox)
+{
+    /* Prepare result: */
+    QList<GlobalSettingsPageType> result;
+    /* Load restricted global-settings-pages: */
+    QString strList(vbox.GetExtraData(GUI_RestrictedGlobalSettingsPages));
+    QStringList list = strList.split(',');
+    /* Convert list into appropriate values: */
+    foreach (const QString &strValue, list)
+    {
+        GlobalSettingsPageType value = gpConverter->fromInternalString<GlobalSettingsPageType>(strValue);
+        if (value != GlobalSettingsPageType_Invalid)
+            result << value;
+    }
+    /* Return result: */
+    return result;
+}
+
+/* static */
+QList<MachineSettingsPageType> VBoxGlobal::restrictedMachineSettingsPages(CMachine &machine)
+{
+    /* Prepare result: */
+    QList<MachineSettingsPageType> result;
+    /* Load restricted machine-settings-pages: */
+    QString strList(machine.GetExtraData(GUI_RestrictedMachineSettingsPages));
+    QStringList list = strList.split(',');
+    /* Convert list into appropriate values: */
+    foreach (const QString &strValue, list)
+    {
+        MachineSettingsPageType value = gpConverter->fromInternalString<MachineSettingsPageType>(strValue);
+        if (value != MachineSettingsPageType_Invalid)
             result << value;
     }
Index: trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.h	(revision 46761)
+++ trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.h	(revision 46763)
@@ -386,4 +386,6 @@
     static QList<IndicatorType> restrictedStatusBarIndicators(CMachine &machine);
     static QList<MachineCloseAction> restrictedMachineCloseActions(CMachine &machine);
+    static QList<GlobalSettingsPageType> restrictedGlobalSettingsPages(CVirtualBox &vbox);
+    static QList<MachineSettingsPageType> restrictedMachineSettingsPages(CMachine &machine);
 
 #ifdef RT_OS_LINUX
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp	(revision 46761)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp	(revision 46763)
@@ -311,6 +311,12 @@
 
     /* Creating settings pages: */
+    QList<GlobalSettingsPageType> restrictedGlobalSettingsPages = vboxGlobal().restrictedGlobalSettingsPages(vboxGlobal().virtualBox());
     for (int iPageIndex = GlobalSettingsPageType_General; iPageIndex < GlobalSettingsPageType_Max; ++iPageIndex)
     {
+        /* Make sure page was not restricted: */
+        if (restrictedGlobalSettingsPages.contains(static_cast<GlobalSettingsPageType>(iPageIndex)))
+            continue;
+
+        /* Make sure page is available: */
         if (isPageAvailable(iPageIndex))
         {
@@ -578,6 +584,12 @@
 
     /* Creating settings pages: */
+    QList<MachineSettingsPageType> restrictedMachineSettingsPages = vboxGlobal().restrictedMachineSettingsPages(m_machine);
     for (int iPageIndex = MachineSettingsPageType_General; iPageIndex < MachineSettingsPageType_Max; ++iPageIndex)
     {
+        /* Make sure page was not restricted: */
+        if (restrictedMachineSettingsPages.contains(static_cast<MachineSettingsPageType>(iPageIndex)))
+            continue;
+
+        /* Make sure page is available: */
         if (isPageAvailable(iPageIndex))
         {
