Форум » Для флейма » Видимость папки » Ответить

Видимость папки

fil: На сервере MS 2012 есть папка. Одни юзеры могут ее видеть и править в ней файлы. Другие эту папку не видят(или не могут править), но на их компах запускается прога, которая берет инфу из этой папки. Можно запаролить папку. Из проги открывать доступ к ней через netuse() Одна после этого папка становится доступной этому юзеру - изменяй/удаляй Каким путем можно разрешить данную прблемку ?

Ответов - 22, стр: 1 2 All

Dima: netredir не поможет ? 1. Сперва подключаешь 2. Считал инфу 3. А вот тут не проверял. Делаешь повторное подключение но с неверным паролем. Поиграться надо. fil пишет: netuse() Это из какой оперы ? Не нашел такой функции в Harbour PS У себя в проге аналогичную папку сделал с атрибутом Скрытая

fil: Ну.. на самом деле net use Эт я под FW, случайно

fil: Ну это если у юзера не стоит "Показывать скрытые файлы папки"


Dima: fil пишет: Ну это если у юзера не стоит "Показывать скрытые файлы папки" Эт я не правильно выразился. Писал о скрытом сетевом ресурсе. Что касается Net Use то он может не только подключать но и отключать.

fil: Да, скрытый сетевой ресурс это мысль. Только Total Commander (ежели таковой присутствует) надо будет глушить. Хотя может еще какие проги видят скрытые ресурсы

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

Dima: Haz Хороший вариант.

fil: Да, простенько и со вкусом.. Спасибо Haz

Haz: На форуме здесь Петр выкладывал Исходник запуска от другого пользователя . http://clipper.borda.ru/?1-4-0-00000424-000-0-0-1239369808

Dima: Haz пишет: На форуме здесь Петр выкладывал Исходник запуска от другого пользователя . Игорь ты что то меня запутал ;) То Павел выкладывал то Пётр. Где же истина ? ;) Если есть правильный исходник , выложи пожалуйста. Лично я потерялся

Haz: Dima пишет: То Павел выкладывал то Пётр. Да я сам запутался . Давно было, казалось Паша тогда помогал кому то решать проблемку. Еле нашел и оказалось не Паша а Петр Исходник рабочий вот, только вторым параметром в CreateProcessWithLogonW имя домена указывал function Main() ? cccc("notepad.exe") return nil #pragma BEGINDUMP #define UNICODE #define _WIN32_WINNT 0x0500 #include "windows.h" #include "hbapi.h" HB_FUNC( CCCC ) { wchar_t * szMsg; PROCESS_INFORMATION ProcInfo = {0}; STARTUPINFOW StartInfo = {0}; StartInfo.cb = sizeof(STARTUPINFOW); szMsg = hb_mbtowc( (const char *) hb_parc(1) ); //MessageBox( GetActiveWindow(), szMsg, L"Info", 0x40 ); hb_retni( CreateProcessWithLogonW(L"adm0n", L".", L"password", 1, NULL, szMsg, CREATE_DEFAULT_ERROR_MODE|CREATE_NEW_CONSOLE, NULL, NULL, &StartInfo, &ProcInfo) ); hb_xfree( (void *) szMsg ); } #pragma ENDDUMP

Dima: Haz Спасибо !

fil: Процесс создался А как его визуализировать ?

Haz: fil пишет: Процесс создался А как его визуализировать Этот процесс - запуск внешнего приложения. Либо запускается либо нет. Мы тут говорили о том что можно сделать загрузчик для программы , который ее запускает по именем пользователя которому видны нужные папки в сети. Приведенный пример просто запускает внешнюю программу под указанным пользователем. Fil не совсем понял провизуализацию Можно напрячься и написать подобный загрузчик функции в отдельном потоке и с правами нужного пользователя , но там возможны трудности с видимостью рабочих областей и прочего. Проще всю задачу с правами запускать

Haz: Fil идея в том, чтобы твою задачу запускать от имени пользователя которому видна нужная папка , при том что за компом ее запускает пользователь которому ее не видно. 1 Пишем загрузчик для твоей программы и из него запускаем твою программу скажем под "админом" 2 в твоей программе первыми строками делаем проверку если GetUseerName() <> "админ" то сообщаем что нужно запускать загрузчик и выходим таким образом и папка видна из программы будет и пользователь компа туда не залезет и программа работает только с правами нужного пользователя

fil: Я понимал это так, что через загрузчика пользователь запускает мою прогу. Работает в ней с инфой в нужных папках. Но при этом если он залезет в какой-нить Total Commander, то этих папок не увидит. Вот я и спросил про визуализацию notepad.exe (поскоку он используется для примера). Ну висит он как процесс, а работать в нем как ? Хотя, скорее, не догоняю я

PSP: fil пишет: Ну висит он как процесс, а работать в нем как ? Если он запущен от имени другого пользователя, то никак. В сеансе текущего пользователя он не будет отображаться.

Haz: PSP пишет: Если он запущен от имени другого пользователя, то никак. а вот тут действительно облом ... Даже от админа не будет отображаться ? PS на локальном компе без сети запустил от имени админа - и вижу его

PSP: Haz пишет: PS на локальном компе без сети запустил от имени админа - и вижу его Да, странно. Надо разобраться.

Haz: PSP пишет: Надо разобраться. Скорее всего действительно надо разбираться. Функция CreateProcessWithLogonW имеет два флага запуска BOOL CreateProcessWithLogonW( LPCWSTR lpUsername, // имя пользователя LPCWSTR lpDomain, // домен пользователя LPCWSTR lpPassword, // пароль пользователя DWORD dwLogonFlags, // опция входа в сеть LPCWSTR lpApplicationName, // имя исполняемого модуля LPWSTR lpCommandLine , // командная строка DWORD dwCreationFlags, // флажки создания LPVOID lpEnvironment, // блок новой конфигурации LPCWSTR lpCurrentDirectory, // имя текущей папки LPSTARTUPINFOW lpStartupInfo, // информация предустановки LPPROCESS_INFORMATION lpProcessInfo // информация о процессе ); первый определяет будет ли грузиться профиль пользователя , второй - наследование консоли может в них проблема. Тут без бутылки не понять , но ведь работает же в винде " запуск от имени администротора" - с Shift который по ярлыку и запускаемый процесс виден в сеансе текущего пользователя.



полная версия страницы