Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Скрыть диски (http://forum.oszone.net/showthread.php?t=154664)

YDen 27-10-2009 17:56 1253986

Скрыть диски
 
Здравствуйте!
Подскажите пожалуйста. Имеется необходимость скрыть диски в Моем компьютере. Через Gpo это можно сделать только для С и Д или всех. Но нужно только выборочно. Через реестр это можно сделать веткой HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explоrer\NoDrives. Причем каждому OU (имеет свои настроенные GPO) свои диски. Права у доменных пользователе - пользователь домена.

Можно ли сделать это с помощью административных шаблонов?

Спасибо

Iska 27-10-2009 19:20 1254040

Конечно можно, но, видите ли, в чём тут сложность: значение хранится в типе DWORD, каждый из младших 26 бит которого и представляет собой определённый диск (0-й бит — «A», 1-й бит — «B» и т.д.). А язык шаблонов *.adm не позволяет работать с отдельными битами, только со значением целиком. Именно поэтому в шаблоне «system.adm» хранится только ограниченный набор масок, про который Вы и говорили:
Код:

PART !!NoDrivesDropdown        DROPDOWNLIST NOSORT REQUIRED
        VALUENAME "NoDrives"
        ITEMLIST
                NAME !!ABOnly          VALUE NUMERIC        3
                NAME !!COnly            VALUE NUMERIC        4
                NAME !!DOnly            VALUE NUMERIC        8
                NAME !!ABConly          VALUE NUMERIC        7
                NAME !!ABCDOnly        VALUE NUMERIC        15
                NAME !!ALLDrives        VALUE NUMERIC        67108863 DEFAULT
                ; low 26 bits on (1 bit per drive)
                NAME !!RestNoDrives    VALUE NUMERIC        0
        END ITEMLIST
END PART

ибо перечень всех возможных комбинаций займёт очень много места. Если же у Вас достаточно ограниченный набор возможных комбинаций, Вы можете добавить их туда же (а правильнее будет — вынести в отдельный собственный шаблон, не трогая системный).

Как вариант, могу предложить использовать не «ITEMLIST», а простой тип «NUMERIC» (правда, это уже будет безо всяких визуальных расшифровок — какое значение каким дискам соответствует), в который можно будет записать любую доступную комбинацию.

«NoDrives.adm» (внимание, приводится только как образец! Изготовлено на основе шаблона «system.adm» из комплекта Windows XP):
Код:

#if version >= 3

CLASS USER
        CATEGORY !!WindowsExplorer
                #if version >= 4
                EXPLAIN !!WindowsExplorer_Help
                #endif

                KEYNAME "Software\Microsoft\Windows\CurrentVersion\Policies\Explorer"

                POLICY !!NoDrives
                        #if version >= 4
                        SUPPORTED !!SUPPORTED_Win2k
                        #endif
                       
                        EXPLAIN !!NoDrives_Help
                        PART "Задайте битовую маску для скрытия дисков" NUMERIC SPIN 1
                                VALUENAME "NoDrives" DEFAULT 0
                                MIN 0
                                MAX 67108863
                        END PART
                END POLICY
        END CATEGORY
#endif

[strings]
WindowsExplorer="Проводник (Сторонний)"
WindowsExplorer_Help="Управляет параметрами Windows Explorer, в том числе свойствами оболочки, параметрами папок, меню файлов, доступными дисками."
SUPPORTED_Win2k="не ниже Microsoft Windows 2000"

NoDrives_Help="Удаляет значки, представляющие выбранные диски, из папок "Мой компьютер" и "Проводник". Кроме того, буквы дисков, представляющие выбранные диски, не будут отображаться в стандартном диалоговом окне "Открыть". \n\nЧтобы использовать эту политику, выберите диск или группу дисков в раскрывающемся списке. Чтобы отображать все диски, отключите эту политику или выберите в раскрывающемся списке значение "Не ограничивать доступ к дискам". \n\nЗамечание: эта политика удаляет значки дисков из соответствующих папок. Пользователи при этом могут получить доступ к содержимому скрытых дисков с помощью других методов, например, указав путь к папке на скрытом диске в диалоговом окне " Подключение сетевого диска", окне "Выполнить" или в окне командной строки. \n\nУчтите, что эта политика не запрещает использовать другие программы для доступа к выбранным дискам или к их содержимому. Кроме того, она не запрещает использовать оснастку "Управление дисками" для просмотра или изменения характеристик дисков. \n\nСм. также политику "Запретить доступ к дискам через "Мой компьютер"".\n\nПримечание: к программам сторонних разработчиков программ для Windows 2000 или новее предъявляется требование следования этой политике."
NoDrives="Скрыть выбранные диски из окна "Мой компьютер""

Тогда, допустим, чтобы скрыть диски «A», «B», «D», «E» и «F» достаточно будет ввести в редакторе групповой политики после подключения подобного шаблона значение маски «59»:
Код:

…76543210 (bit#)
…HGFEDCBA (disk label)
…00111011 (mask)

«111011» bin == «59» dec.

YDen 27-10-2009 20:50 1254126

Iska,

Большое спасибо.
Только я, в скриптах полный 0. Не сочтите за наглость, можете написать и прикрепить шаблон для сокрытия дисков ABCDEFGHIJ :)

Спасибо

Iska 27-10-2009 22:26 1254232

YDen, это не скрипт.

Самое простое — добавить маску в шаблон:
Код:

9876543210 (bit#)
…JIHGFEDCBA (disk label)
…1111111111 (mask bin) == (2^10)-1 == 1023

то есть, после:
Код:

                NAME !!ABCDOnly        VALUE NUMERIC        15
Вы добавляете к шаблону своё полученное значение:
Код:

                NAME "A,B,C,D,E,F,G,H,I,J"        VALUE NUMERIC        1023
Где можно почитать: Administrative Template - Wikipedia, the free encyclopedia, в низу страницы есть ссылки, в том числе на краткое описание формата файла административного шаблона: ADM Tutorial (PDF).

YDen 28-10-2009 11:33 1254573

Iska,

Я правильно сделал: в блокноте создал файл NoDrives.adm с кодом из вашего поста:

#if version >= 3

CLASS USER
CATEGORY !!WindowsExplorer
#if version >= 4
EXPLAIN !!WindowsExplorer_Help
#endif

KEYNAME "Software\Microsoft\Windows\CurrentVersion\Policies\Explorer"

POLICY !!NoDrives
#if version >= 4
SUPPORTED !!SUPPORTED_Win2k
#endif

EXPLAIN !!NoDrives_Help
PART "Задайте битовую маску для скрытия дисков" NUMERIC SPIN 1
VALUENAME "NoDrives" DEFAULT 0
MIN 0
MAX 67108863
END PART
END POLICY
END CATEGORY
#endif

[strings]
WindowsExplorer="Проводник (Сторонний)"
WindowsExplorer_Help="Управляет параметрами Windows Explorer, в том числе свойствами оболочки, параметрами папок, меню файлов, доступными дисками."
SUPPORTED_Win2k="не ниже Microsoft Windows 2000"

NoDrives_Help="Удаляет значки, представляющие выбранные диски, из папок "Мой компьютер" и "Проводник". Кроме того, буквы дисков, представляющие выбранные диски, не будут отображаться в стандартном диалоговом окне "Открыть". \n\nЧтобы использовать эту политику, выберите диск или группу дисков в раскрывающемся списке. Чтобы отображать все диски, отключите эту политику или выберите в раскрывающемся списке значение "Не ограничивать доступ к дискам". \n\nЗамечание: эта политика удаляет значки дисков из соответствующих папок. Пользователи при этом могут получить доступ к содержимому скрытых дисков с помощью других методов, например, указав путь к папке на скрытом диске в диалоговом окне " Подключение сетевого диска", окне "Выполнить" или в окне командной строки. \n\nУчтите, что эта политика не запрещает использовать другие программы для доступа к выбранным дискам или к их содержимому. Кроме того, она не запрещает использовать оснастку "Управление дисками" для просмотра или изменения характеристик дисков. \n\nСм. также политику "Запретить доступ к дискам через "Мой компьютер"".\n\nПримечание: к программам сторонних разработчиков программ для Windows 2000 или новее предъявляется требование следования этой политике."
NoDrives="Скрыть выбранные диски из окна "Мой компьютер""


Далее в GPO добавил этот шаблон. Появился пункт в политиках под названием Проводник (Сторонний). В нем включив единственный пункт и введя значение маски (для дисков "A,B,C,D,E,F,G,H,I,J" введем 1023) получим скрытие этих дисков для всех пользователей, входящих в OU - которому применяется данная GPO.
Верно?

К сожалению на контроллере сегодня не могу проверить, только завтра.
Это средняя школа. Хочу для учеников убрать все локальные диски. Сетевые диски начинаются с М и подключаются скриптами. Всем остальным пользователям убрать С:

спасибо

Iska 28-10-2009 12:45 1254634

Вроде бы, практически должно быть верно.

Могут быть какие-либо тонкости, связанные с версией ОС на КД. Думаю, более опытные коллеги подскажут, ежели что не так.

YDen 29-10-2009 03:44 1255299

Спасибо всем, заработало!!!


Время: 00:28.

Время: 00:28.
© OSzone.net 2001-