Есть файл с общим доступом. Файл находится на общем сетевом жёстком диске. С этим файлом постоянно работают много человек. 1. Необходимо выяснить, открыт ли у в настоящее время у кого-нибудь из сотрудников данный файл. 2. Желательно выяснить, у кого именно открыт.
Нужно это знать для того, чтобы внести изменения, которые невозможны при включённом общем доступе, и вот для этого нужно его отключить, но лишь в тот момент, когда файл никем не используется (ибо пользователи не смогут сохранить их изменения, если им отрубить общий доступ).
P.s. Доступа к администрированию сетевого ресурса (управление компьютером) нет.
Есть файл с общим доступом. Файл находится на общем сетевом жёстком диске. С этим файлом постоянно работают много человек. 1. Необходимо выяснить, открыт ли у в настоящее время у кого-нибудь из сотрудников данный файл. 2. Желательно выяснить, у кого именно открыт.
Нужно это знать для того, чтобы внести изменения, которые невозможны при включённом общем доступе, и вот для этого нужно его отключить, но лишь в тот момент, когда файл никем не используется (ибо пользователи не смогут сохранить их изменения, если им отрубить общий доступ).
P.s. Доступа к администрированию сетевого ресурса (управление компьютером) нет. Aleksio
Сообщение Есть файл с общим доступом. Файл находится на общем сетевом жёстком диске. С этим файлом постоянно работают много человек. 1. Необходимо выяснить, открыт ли у в настоящее время у кого-нибудь из сотрудников данный файл. 2. Желательно выяснить, у кого именно открыт.
Нужно это знать для того, чтобы внести изменения, которые невозможны при включённом общем доступе, и вот для этого нужно его отключить, но лишь в тот момент, когда файл никем не используется (ибо пользователи не смогут сохранить их изменения, если им отрубить общий доступ).
Инструктор по применению лосей в кавалерийских частях РККА
igrtsk
Дата: Пятница, 28.02.2014, 16:38 | Сообщение № 6
Инструктор по применению лосей в кавалерийских частях РККА
Stormy
Дата: Пятница, 28.02.2014, 16:53 | Сообщение № 7
alekZZandr, А разве пользователь открывший в режиме Чтения или Уведомления, может блокировать сохранение? Пользователь А открывает файл первым Пользователь Б вторым Пользователь А редактирует файл и преспокойно его сохраняет Пользователь Б в случае режима Чтение даже и не подозревает о закрытие файла, в случае режима Уведомление, получает уведомление.
Я в чем-то ошибся?
alekZZandr, А разве пользователь открывший в режиме Чтения или Уведомления, может блокировать сохранение? Пользователь А открывает файл первым Пользователь Б вторым Пользователь А редактирует файл и преспокойно его сохраняет Пользователь Б в случае режима Чтение даже и не подозревает о закрытие файла, в случае режима Уведомление, получает уведомление.
Я в чем-то ошибся? Stormy
Сообщение alekZZandr, А разве пользователь открывший в режиме Чтения или Уведомления, может блокировать сохранение? Пользователь А открывает файл первым Пользователь Б вторым Пользователь А редактирует файл и преспокойно его сохраняет Пользователь Б в случае режима Чтение даже и не подозревает о закрытие файла, в случае режима Уведомление, получает уведомление.
в VBScript пытаюсь создать подключение к excel файлу. но эта книга лежит на сервере, иногда эта книга бывает занята другим пользователем. как я могу получить имя пользователя кто занял данную таблицу? уведомление во вложении. Имя пользователя как зарегистрирован в office
я могу читать данные о пользователях через aplication.userstatus. но для этого она должна быть открыта для редактирования нескольким пользователям. Как можно узнать кем занята книга для редактирования
Все ответы
во вложении изображении скриншоты что я хочу видеть
По данным вами ссылкам, результат един:
Да, я Жук, три пары лапок и фасеточные глаза :))
во вложении изображении скриншоты что я хочу видеть
The opinion expressed by me is not an official position of Microsoft
что будет если открыть файл и посмотреть пользователей которые открыли файл? я прочел что вы можете получить список пользюков, но только после того как откроете, а открыть вы не можете потому что файл занят, и именно на последнее я вам и дал предположительный ответ
и еще тут описан воркераунд по вашей теме. и еще одно похожее обсуждение
The opinion expressed by me is not an official position of Microsoft
$ и там можно как то узнать кто открыл файл для редактирования.Если верно, то подскажите где в этом файле я могу узнать имя пользователя
На вкладке Правка в списке Файл открыт следующими пользователями просмотрите имена пользователей.
Да, я Жук, три пары лапок и фасеточные глаза :))
На вкладке Правка в списке Файл открыт следующими пользователями просмотрите имена пользователей.
Да, я Жук, три пары лапок и фасеточные глаза :))
The opinion expressed by me is not an official position of Microsoft
Он открывает файл через устаревшие «Общие книги» размещённую в сети предприятия, но файл у него открывается в режиме «Только для чтения» и он не видит кто из пользователей открыл файл. Для решения этой задачи, он возможно пишет в VBA код выполняющий задачу:
«Если при попытке открыть файл, файл можно открыть только в режиме «Только для чтения», VBA выводит окно «Файл занят пользователем: Имярек», в противном случае открыть файл на редактирование.»
Допускаю, что ему необходим «UserName» или его аналог для VBA.
Да, я Жук, три пары лапок и фасеточные глаза :))
да мне нужно это. как можно реализовать?
Да, я Жук, три пары лапок и фасеточные глаза :))
Внимательно изучите статью «Общие книги», ссылку на которую я вам дал ранее. В ней пошагово в девять шагов, написано как создавать и работать с Общей книгой. Также внимательно изучите «Дополнительные сведения».
По вашему скриншоту, файл не является Общей книгой и открыт в монопольном режиме :
Дополните, что у вас имеется уже сейчас, и что может ваш макрос.
В дополнение, если бы вы внимательно прочитали статью и выполнили все рекомендации статьи, ссылку на которую вам дал ранее, то у вас был бы результат отображения всех пользователей открывших книгу на редактирование:
и не нужно было бы создавать макрос, так как Общая книга открывается для редактирования у всех открывающих Общую книгу:
При наличии Skype, вы также могли бы обмениваться мгновенными сообщениями с совместно работающими пользователями.
Давайте попробуем решить эту задачу. Итак, нам нужно:
Этап 1. Создаем «Лог»
Добавим в нашу книгу новый лист, куда будет записываться информация о всех пользователях и назовем его, например, Лог. На нем создадим простую шапку будущего журнала учета посетителей:
Этап 2. Макросы фиксации входа-выхода
Теперь добавим макросы для записи на лист Лог даты-времени и имен пользователей при открытии и закрытии книги. Для этого нужно открыть редактор Visual Basic с помощью сочетания Alt+F11 или с помощью кнопки Visual Basic на вкладке Разработчик (Developer) и найти в левом верхнем углу панель Project (если она не отображается, то включить ее можно сочетанием клавиш Ctrl+R):
Двойным щелчком откройте модуль ЭтаКнига (ThisWorkbook) и вставьте туда пару наших макросов для обработки событий открытия и закрытия книги:
В первом приближении все уже должно работать. Попробуйте открыть-закрыть этот файл пару раз и убедитесь, что на лист Лог попадает ваше имя пользователя (логин входа в Windows) и дата-время:
Этап 3. Улучшаем надежность
Можно было бы скрыть лист Лог и на этом остановиться, но есть одно «но»: если у пользователя, который открывает нашу книгу, макросы разрешены по умолчанию либо он сам их разрешает, нажав в окне предупреждения на кнопку Включить содержимое, то все в порядке:
Но что если пользователь не разрешит выполнение макросов или они отключены у него по умолчанию? Тогда наши макросы отслеживания выполняться не будут и фиксации имени и даты не произойдет 🙁 Как же заставить пользователя разрешить использование макросов?
Чтобы обойти эту проблемку воспользуемся небольшой тактической хитростью. Добавьте в нашу книгу еще один чистый лист, назовите его Предупреждение и вставьте на него следующий текст:
Чтобы реализовать все описанное, слегка изменим наши процедуры в модуле ЭтаКнига (ThisWorkbook):
Чтобы просмотреть скрытый Лог откройте редактор VisualBasic (Alt+F11), выделите лист на панели Project и измените его видимость на панели Properties, используя свойство Visible:
Если пользователи настолько продвинутые, что знают про суперскрытые листы и могут их отобразить через редактор Visual Basic или нарушить работу наших макросов, то можно дополнительно поставить пароль на просмотр и изменение макросов. Для этого щелкните правой кнопкой мыши по имени файла в панели Project (строка VBAProject (blackbox.xls)), выберите команду VBA Project Properties и включите флажок Lock project for viewing и задайте пароль на вкладке Protection:
Теперь точно никто не уйдет безнаказанным. Большой Брат следит за тобой! 😉
Случалось ли вам волноваться по поводу утечки корпоративных или личных данных за пределы круга допущенных к ним лиц? Если вы руководитель, скажем, отдела, то, я думаю, ответ будет утвердительным. А если же вы руководитель более крупного ранга или хозяин бизнеса, то эти «волнения», полагаю, у многих носят перманентный характер, плавно переходящий в невроз. Но как узнать, кто помимо авторизованных лиц просматривает ваши файлы? Об этой задаче я думал давно, но для успешной реализации всегда чего-то не хватало. И вот недавно, наконец, все компоненты нашлись, сложились в единое целое и я готов вам представить готовый продукт.
Идея контроля
Ну и последнее возражение: «Вся эта защита в Excel ломается за 1 минуту». И я должен сказать, что это правда. Любая стандартная защита Excel потрошится весьма быстро, однако, много ли вы лично знаете таких потрошителей? Ради интереса проведите опрос среди своих друзей, знакомых и коллег. Задайте один единственный вопрос, почему на планете Земля существует такое явление, как смена времён года (зима и лето). Провели? Если люди в своём подавляющем большинстве не знают ТАКИЕ фундаментальные вещи, то о каком потрошении защиты Excel вы изволите говорить? Смешно! Всё это будет работать на УРА в 80-90% случаев.
Пошаговая инструкция
Настройка защиты
Пройдёмтесь по полям:
Ваши данные должны быть скопированы в мой файл, а не наоборот. В вашем файле не должно быть макросов.
Держите в тайне информацию, что файл защищён.
Активация защиты
Призведите настройку согласно раздела «Настройка защиты»
Выйдите из файла. Он сохранит изменения автоматически.
Переименуйте файл, если в этом есть необходимость.
Запустите файл снова. Вы должны увидеть, что лист Signal исчез (он становится скрытым) и видны только листы с данными. Однако, если файл запущен с выключенными макросами, то вы увидите единственный лист Info с предложением включить макросы для корректной работы с файлом (иллюстрация уже приводилась в начале статьи).
Деактивация защиты
Отчёт от защиты
Вот отчёт, который сформирован на моём ноутбуке:
Технические замечания для профессионалов
Мне очень понравился сервис SendGrid. Сообщения я отправляю методом HTTP POST. Это позволяет отправить сообщение, если в компании открыт только TCP 80. SMTP порты, конечно же, в 99% организаций закрыты наглухо. Рекомендую ознакомиться с кодом отправки сообщений.
Наконец-то научился делать профессиональные формы по типу приведенной выше с настройками программы. Согласитесь, выглядит отлично.
Механизм ввода и хранения пароля тоже довольно любопытен.
Ну и последнее, что заслуживает внимания, это реализация динамического скрытия / показа листов. При сохранении все листы кроме Info скрываются на случай, если следующий запуск будет без макросов.
Предупреждение
ГРАЖДАНЕ! ДАННОЕ СРЕДСТВО ПРЕДНАЗНАЧЕНО ДЛЯ ЗАЩИТЫ ВАШИХ ДАННЫХ. Я КАТЕГОРИЧЕСКИ ВОЗРАЖАЮ, ЧТОБЫ ВЫ ЕГО ИСПОЛЬЗОВАЛИ ДЛЯ ЛЮБЫХ ИНЫХ ЦЕЛЕЙ. ИСПОЛЬЗУЙТЕ ДАННЫЙ ИНСТРУМЕНТ НА СВОЙ СТРАХ И РИСК. Я НЕ НЕСУ НИКАКОЙ ОТВЕТСТВЕННОСТИ ЗА ПРЯМЫЕ И/ИЛИ КОСВЕННЫЕ НЕГАТИВНЫЕ ПОСЛЕДСТВИЯ, ЕСЛИ ВДРУГ ТАКОВЫЕ БУДУТ ИМЕТЬ МЕСТО. В ТО ЖЕ ВРЕМЯ Я ПОДТВЕРЖДАЮ, ЧТО ДАННАЯ ПРОГРАММА СОДЕРЖИТ В СЕБЕ ТОЛЬКО ЗАЯВЛЕННУЮ ФУНКЦИОНАЛЬНОСТЬ И НИЧЕГО СВЕРХ НЕЁ.
Скачать программу
Версия 1.00 от 12.04.2015
Если вы вдруг почувствовали внезапное непреодолимое желание отблагодарить автора, то вы можете это сделать тут: