Есть комп под WinXP, на нем два пользователя. Хочется сделать так, чтоб для каждого пользователя отображался свой набор логических дисков. Например, жене не нужен диск а, мои разделы, а нужен только с, ее диск О и общий диск Х, а мне нужны все разделы. Можно ли как-нибудь скрыть ненужные диски в проводнике, тотал коммандере и в диалоговых окнах открыть-сохранить? Никакого шифрования, защиты и т.д., просто чтоб не мешалось ненужное перед глазами. Или, быть может, прожку простенькую наваять? Хучить ф-ю, определяющую какие диски есть на компе и убирать из нее ненужные диски... ну или че-нить подобное... какие есть идеи?
ну можно конечно хучить GetLogicalDrives... еще можно попробовать размонтировать просто ненужные диски на время сессии пользователя. посмотри программку mountvol, входящую в состав винды
Интересно, если удалить "букву диска" в текущей системе, то на другой, установленной на компе, будет всё по-прежнему? Если да, то можно поставить вторую систему и удалить в ней буквы ненужных разделов
James угу, у меня стояло две винды, у каждой был свой набор букв для одних и тех же разделов )) я постоянно путался =\
Это (скрытие дисков для конкретного пользователя) делается штатными средствами, каким то gpedit-ом или в администрировании, в общем и твики сторонние не нужны. Но как хоть застрели, не помню...
1) отключить авто-монтирование; 2) размонтировать все диски (кроме системного 3) в автозагрузку каждого пользователя кинуть программу, монтирующие какие ему диски необходимы. * вообще-то, после монитирования диск остается в HKLM, поэтому, сначала нужно все размонитировать, а потом смонитировать то, что нужно ** ес-но, для этого нужны права админа, или "запуск от имени..."
насчет gpedit -нашел там 2 пункта,скрывающие диски,но там какие то странные комбинации из А, С и Д, а про E, S, R, X - вообще ни слова. kaspersky - а как монтировать и размонтировать диски, можно чуточку подробнее? с помощью mountvol?
Вот небольшая наработка с командой subst Код (Text): /** MOUNT SCRIPT Copyright (C) 2007 by device Specially for WASM.RU USAGE: mountcontrol [params] **/ function help(){ $r = " USAGE: mountcontrol [params] where \n [params] may be: \n -- help - view this screen;\n -- start - starts mountcontrol\n ____________________________\n Copyright (c) 2007 device (for WASM.RU project only)\n "; die ($r); } function setControl (){ $WHO = "Администратор"; // сюда введи имя юзера $DiskVolume=""; // буква диска $DiskPath =""; // путь диска $SYSTEM_USER = $_SERVER["USERNAME"]; $SYSTEM_USER == $WHO?$F=true:die ("For this user ($SYSTEM_USER) access denied into the volume."); exec ("subst $DiskVolume $DiskPath"); } $die_message = "USAGE: mountcontrol [params]\nTry mountcontrol --help for more description.\n"; $argc = $_SERVER ["argc"]; $argc>0?$F=true:die ($die_message); $argv = $_SERVER["argv"]; switch ($argv[1]){ case "--help" : help(); break; case "--start" : setControl(); break; default: die($die_message); } P.S. С командой mountvol пока не разобрался
kaspersky оно не скроет диск. Оно просто напишет при попытке открытия чтото типа "Access denied". Чтобы размонтировать диск с удалением буквы диска надо вызвать DeleteVolumeMountPoint( ) MSDN: DeleteVolumeMountPoint The DeleteVolumeMountPoint function unmounts the volume from the specified volume mount point. BOOL DeleteVolumeMountPoint( LPCTSTR lpszVolumeMountPoint // volume mount point path ); Parameters lpszVolumeMountPoint [in] Pointer to a string that indicates the volume mount point to be unmounted. This may be a root directory (X:\, in which case the DOS drive letter assignment is removed) or a directory on a volume (X:\mnt\). A trailing backslash is required. Return Values If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call GetLastError. Remarks It is not an error to attempt to unmount a volume from a volume mount point when there is no volume actually mounted at that volume mount point.
юзайте mountvol и diskmgmt.msc gpedit может, по моему, скрывать диски только в експлорере (ну и диалогах там стандартных открытия файла) для тотала тоже есть ключи в wincmd.ini, а используемый ini можно задавать с помощью ключа /i в коммандлайне - можно сделать каждому юзеру свои линки на тотал со своими дисками но это защита, конечно.. понятно )) kaspersky автомонтирование.. с никсами не перепутал? ))
Nouzui > с никсами не перепутал? )) нет, не перепутал. другой вопрос, что в никсах монтирование дисков документировано, а винде - нет и это так сказать ее "внутренняя" кухня, по разному реализованная в NT и 9x, но это уже детали. mountvol имеет тот минус, что на сменных носителях при обнаружении известной fs, винда их монтирует автоматически...
DeleteVolumeMountPoint работает. Все ок. Теперь пытаюсь сделать все красиво, чтоб при запуске ненужные диски отрубались, а при завершении работы подключались опять...