Скрытие дисков в Windows Explorer через GPO

Опубликовано: 25.06.2015
Автор: Виталий Бочкарев
Поддержать автора статьи по этой ссылке

По умолчанию для файлового проводника Windows Explorer через GPO можно настроить видимость только определенных дисков, а именно A, B, C, D или всех сразу. Для того, чтобы запретить использование своих групп дисков в GPO для проводника Windows, необходимо изменить шаблон групповых политик в файле WindowsExplorer.admx и тектовые описания к нему в файле WindowsExplorer.adml.

Для локальных политик компьютера или сервера эти файлы находятся в папке C:\Windows\PolicyDefinitions и подпапках локализаций, например ru-RU.

Для доменных политик компьютера эти же файлы находятся в папке
\\domain.name\sysvol\domain.name\Policies\PolicyDefinitions и подпапках локализаций, например en-US.

В файл WindowsExplorer.admx необходимо внести следующие строки:

         <itemdisplayName="$(string.ABCDPOnly)">
          <value>
            <decimal value="32783" />
          </value>
        </item>
        <item displayName="$(string.ExceptGHIJK)">
          <value>
            <decimal value="67106879" />
          </value>
        </item>

В этом фрагменте кода определяются диски, которые нужно задействовать для политики. Значения параметров – это десятичные числа от двоичного кода, который получается путем отметок единичками тех букв алфавита в обратном порядке, которые задействованы в шаблоне.

Например необходимо скрыть только диски A, B, C, D и P.

Обратный алфавит    ZYXWVUTSRQPONMLKJIHGFEDCBA
Двоичное значение   00000000001000000000001111
Десятичное значение 32783

Указанный выше фрагмент надо вставить в политики NoDrives – «Отключить диски» и NoViewOnDrive – «Не показывать диски» в позиции, показанные жирным шрифтом ниже.

Политика NoDrives – «Отключить диски» в файле WindowsExplorer.admx:

   <policy name="NoDrives" class="User" displayName="$(string.NoDrives)"
    explainText="$(string.NoDrives_Help)" presentation="$(presentation.NoDrives)"
    key="Software\Microsoft\Windows\CurrentVersion\Policies\Explorer">
    <parentCategory ref="windows:WindowsExplorer" />
    <supportedOn ref="windows:SUPPORTED_Win2k" />
    <elements>
      <enum id="NoDrivesDropdown" valueName="NoDrives" required="true">
        <item displayName="$(string.ABOnly)">
          <value>
            <decimal value="3" />
          </value>
        </item>
        <item displayName="$(string.COnly)">
          <value>
            <decimal value="4" />
         </value>
        </item>
        <item displayName="$(string.DOnly)">
          <value>
            <decimal value="8" />
          </value>
        </item>
        <item displayName="$(string.ABConly)">
          <value>
            <decimal value="7" />
          </value>
        </item>
        <item displayName="$(string.ABCDOnly)">
          <value>
            <decimal value="15" />
          </value>
        </item>
         <item displayName="$(string.ABCDPOnly)">
           <value>
             <decimal value="32783" />
           </value>
         </item>
         <item displayName="$(string.ExceptGHIJK)">
           <value>
             <decimal value="67106879" />
           </value>
        </item>
        <item displayName="$(string.ALLDrives)">
          <value>
            <decimal value="67108863" />
          </value>
        </item>
        <item displayName="$(string.RestNoDrives)">
          <value>
            <decimal value="0" />
          </value>
        </item>
      </enum>
    </elements>
  </policy>

Политика NoViewOnDrive – «Не показывать диски» в файле WindowsExplorer.admx:

   <policy name="NoViewOnDrive" class="User" displayName="$(string.NoViewOnDrive)"
    explainText="$(string.NoViewOnDrive_Help)" presentation="$(presentation.NoViewOnDrive)"
    key="Software\Microsoft\Windows\CurrentVersion\Policies\Explorer">
    <parentCategory ref="windows:WindowsExplorer" />
    <supportedOn ref="windows:SUPPORTED_Win2k" />
    <elements>
      <enum id="NoDrivesDropdown" valueName="NoViewOnDrive" required="true">
        <item displayName="$(string.ABOnly)">
          <value>
          <decimal value="3" />
          </value>
        </item>
        <item displayName="$(string.COnly)">
          <value>
            <decimal value="4" />
          </value>
        </item>
        <item displayName="$(string.DOnly)">
          <value>
            <decimal value="8" />
          </value>
        </item>
        <item displayName="$(string.ABConly)">
          <value>
            <decimal value="7" />
          </value>
        </item>
        <item displayName="$(string.ABCDOnly)">
          <value>
            <decimal value="15" />
          </value>
        </item>
         <item displayName="$(string.ABCDPOnly)">
           <value>
             <decimal value="32783" />
           </value>
         </item>
         <item displayName="$(string.ExceptGHIJK)">
           <value>
             <decimal value="67106879" />
           </value>
         </item>
        <item displayName="$(string.ALLDrives)">
          <value>
            <decimal value="67108863" />
          </value>
        </item>
        <item displayName="$(string.RestNoDrives)">
          <value>
            <decimal value="0" />
          </value>
        </item>
      </enum>
    </elements>
  </policy>


 

В файл WindowsExplorer.adml необходимо внести описания новых параметров в шаблоне политики (сделать это надо для всех языков, используемых администраторами в домене):

<policyDefinitionResources xmlns:xsd="http://www.w3.org/2001/XMLSchema"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" revision="1.0" schemaVersion="1.0"
 xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<displayName>enter display name here</displayName>
<description>enter description here</description>
<resources>
  <stringTable>
     <string id="ABCDPOnly">Restrict A, B, C, D and P drives only</string>
    <string id="ABCDOnly">Restrict A, B, C and D drives only</string>
    <string id="ABConly">Restrict A, B and C drives only</string>
    <string id="ABOnly">Restrict A and B drives only</string>
     <string id="ExceptGHIJK">Restrict all except G, H, I, J and K drives</string>
    <string id="ALLDrives">Restrict all drives</string>
    <string id="ClassicShell">Turn on Classic Shell</string>
    <string id="ClassicShell_Help">This setting allows an administrator to revert specific Windows Shell
 behavior to classic Shell behavior.

Теперь в графическом интерфейсе GPO появились новые параметры для управления дисками проводника Windows.

Servers - Hide disks in windows explorer via GPO
Примечание. Диски блокируется только в Windows Explorer, но они доступны через другие файловые менеджеры и командную строку, если у пользователя есть возможность их запустить.