Задать вопрос
  • Как отследить что грузит виртуалку?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Используйте Performance Monitor (монитор производительности). Использовать его можно и с другого компьютера в локальной сети. А можно настроить запись данных в файл. Счетчиков там много разных, выбирайте те, кототорые вам сообщат нужные данные.
    Ответ написан
    Комментировать
  • Перенос системы на аппаратный Raid 1?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Перед переносом нужно настроить загрузку драйвера в процессе начальной загрузки системы. Требуется сделать следующее
    1. Установить драйвер для RAID-контроллера
    2. Установить для драйвера тип запуска boot, например - командой sc config имя_драйвера start= boot
    Имя_драйвера можно найти, посмотрев список драйверов командой sc query type= driver (возможно, чтобы увидеть весь список потребуется увеличить размер буфера параметром bufsize= ).
    Ответ написан
    Комментировать
  • Возможно ли решить по другому вывод информации?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Простейший способ решить вашу задачу - найти того, кто ее вам решит: человека - за деньги, по дружбе и пр. - или ChatGPT и т.п. LLM. Человека искать - это не здесь (если на Хабре, за деньги - то есть раздел Freelance).

    Если же вам почему-то хочется решить задачу самому, и нужна подсказка, то, прежде всего, задачу надо сформулировать, примерно - как в математике: что дано и что требуется получить. А потом - задать конкретный вопрос по тому, что мешает вам решить. Если это не сделать, то придется вам ждать помощи телепата или ясновидящего.

    В частности (я не телепат, но попробую угадать), если вам мешает неудобная работа с TimeSpan, то стоит вспомнить (или узнать), что он представляет собой число фиксированных мелких промежутков времени, именуемых tick. Вы можете прочитать это число в его свойстве Ticks, работать с ним как с обычным числом - не только сравнивать, но и умножать, делить, складывать, вычитать - а потом, если надо, перевсти обратно в TimeSpan методом TimeSpan.FromTicks.

    PS Если будете описывать задачу, лучше всего пользуйтесь не автоматически даваемыми названиями элементов интерфейса - dateTimePicker2, textBox6 и пр. - а названиями указывающими на их смысл - лучше всего их переименовать соответствующим образом, это - крайне рекомендованная практика при программировании вообще.
    Ответ написан
    2 комментария
  • Почему не удается перезаписать документ PDF в сетевой папке?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Видимо, файл действительно открыт другим приложением. Например - антивирусом: в PDF, в отличие от тектового файла можно разместить исполнимый код, а потому антивирусы им могут интересоваться.

    Так что смотрите на сервере/устройстве, где размешена сетевая папка, кем и чем он открыт. Как именно смотреть - зависит от ОС, которая предоставляет сетевую папку.
    Ответ написан
  • Exchange+Proxmox, настройка Set-SendConnector -Identity?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Exchange, если нет разрешения на применение команды, пишет именно то, что команда не найдена, а не то, что нет разрешения.
    Поэтому проверьте наличие нужной для управления соединителем роли у пользователя, под которым запускаетте EMS. Чтобы сильно не заморачиваться, просто используйте пользователя с членством в ролевой группе Organization Management (ролевые группы представлены как одноименные универсальные группы в AD, можете проверить безо всякого Exchange члество пользователя там).

    PS Я предполагаю, что у вас разрешения Exchange установлены по умолчанию и split permissions не используется. Если это не так - придется рыть конкретно, что и как у вас там настроено, варианты возможны весьма разнообразные.
    Ответ написан
    5 комментариев
  • Почему блокируется CORS POST запрос, хотя GET запросы работают?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Есть подозрение, что к s38vm (это имя компьютера, да?) при запросе из браузера добавляется доменный суфикс компьютера. Проверяйте по логам IIS, на какое имя у вас приходят запросы POST.
    Ответ написан
  • Два домена в Exchange 2019. Настройка DNS-записей?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Для приема почты достаточно одной:
    mydomain2.com MX mail.mydomain1.com

    Ну и для отправки для проверки отправителя (SPF или что у вас там) - аналогично первому домену, чтобы тоже указывала на mail.mydomain1.com.
    Ответ написан
    1 комментарий
  • Как правильно настроить роутер?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Скорее всего, Win10 не может найти адрес роутера по его имени. В Win7 ЕМНИП по умолчанию в локальной сети поиском алреса по имени занимались NetBIOS и LLMNR. Все это поддерживается и на Win10, но как там у вас конкретно настроено, я отсюда не вижу. И что роутер поддерживает, и как настроен - тоже не вижу. Так что, смотрите что и как у вас там настроено.

    PS Наиболее вероятным мне кажется, что на роутере включен только NetBIOS, а в Windows 10 он сейчас выключен. Но это не точно.
    Ответ написан
  • Возможно ли реализовать TCP на Delphi?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    В принципе, PCAP перенесли и в Windows (ключевое слово - WinPCAP), так что можно поэкспериментировать и в Windows.
    В принципе, из Delphi можно вызывать функции API, написанные на C (С++ тут избыточен).
    Вопрос только, как перенести описания функций в Delphi.
    Почти наверняка это кто-то когда-то уже сделал, возможно - не единожды. Поищите по ключевым словам pcap и Delphi. Я, например, сразу наткнулся на ссылку https://github.com/den-kozlov/Snoop (но не спрашивайте меня, я туда даже не заглядывал).
    PS Согласно старой (времен Win7/Win2K8R2) документации MS ограничения на работу raw socket с TCP были только на клиентских ОС, на серверные ОС они не распространялись (но надо было быть членом группы Админнистраторы). Может быть, это вам поможет.

    А вообще, по жизни я согласен с предыдущим отвечающим Сергей Сахаров: не занимайтесь ерундой в образовательных целях.
    Ответ написан
  • Как ввести в работу контроллер домена после 5-дневного простоя?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Просто включите и работайте: все изменения, сделанные на других КД, будут на него перенесены репликацией. AD сконструирована так, что изменения никуда не пропадают в течение срока их хранения. А 5 дней - это значительно меньше срока хранения: для базы данных AD он очень редко в наше время (это когда домен - родом с Win2K) бывает 60 дней, обычно - 180, а для изменений в папке SYSVOL (там лежат политики и скрипты) - 90 дней.
    PS Для диагностики отсутствия проблем с КД испольуйте команду dcdiag /q из командной строки в режиме администратора. Если нет ошибок, она не вернет ничего. Правда, в первые сутки после запуска там даже в норме могут быть сообщения об ошибках в журналах событий (во время запуска), в таком случае загляните в эти журналы.
    Ответ написан
    4 комментария
  • Пытаюсь сделать миграцию с 2003 на 2012?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Сначла не дочитал. Увидел ошибку куда серьезнее:
    Запуск проверки: Replications
    [Проверка репликации,Replications Check] Входящая репликация
    отключена.
    Для исправления выполните "repadmin /options SERVER2012
    -DISABLE_INBOUND_REPL"
    [Проверка репликации,SERVER2012] Исходящая репликация отключена.
    Для исправления выполните "repadmin /options SERVER2012
    -DISABLE_OUTBOUND_REPL"
    ......................... SERVER2012 - не пройдена проверка

    Не вздумайте выполнять эту рекомендацию!
    Это может быть признаком USN Rollback (из образа КД не восстанавливали случаем?). Я писал в свое время статью - проверьте остальные признаки по ней.
    Если USN Rollback, то AD на SERVER2012 придется сносить, с принудительным понижением, захватом ролей FSMO на существующем КД и чисткой AD от его следов.

    Старый ответ.
    Ключевая ошибка:
    Запуск проверки: FrsEvent
    За последние 24 часа после предоставления SYSVOL в общий доступ
    зафиксированы предупреждения или сообщения об ошибках. Сбои при
    репликации SYSVOL могут стать причиной проблем групповой политики.
    ......................... SERVER2012 - пройдена проверка FrsEvent

    (из комментариев).
    SERVER2012 не смог реплицировать себе содержимое SYSVOL, поэтому он не объявляет себя контроллером домена.
    Где именно ошибка - смотреть для начала в журнали событий Службы репликации файлов на SERVER2012. По опыту: проблема почти наверняка на старом сервере под Win2K3: пока онбыл один, репликация SYSVOL была никому не нужна, и, скорее всего, она когда-то тихо померла (например, она не переживает внезапное отключение питания). Поэтому, при малейшем подозрении (а можно даже сразу) перезапустите на 2K3 Службу репликации файлов, подождите минут 5-15 и посмотрите в ее журнал событий: скорее всего, там ошибка, может быть даже - с рекомендациями по ее исправлению.
    Внимание! Прежде чем пытаться исправлять эту ошибку обязательно сделайте резервную копию содержимого SYSVOL: бывает, что при попытке исправления оно пропадает.
    Если затрудняетесь исправить сами - пишите в комментарии, помогу.
    PS Снимать галку с Global Catalog(GC) не надо: GC в лесу могут быть хоть все КД (собственно, в наше время нет оснований не делать GC на каждом КД), хотя для леса с одним доменом это, в общем-то, безразлично.
    Ответ написан
  • Как использовать Bitmap в .NET в 7.0?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Либо использовать для проекта Windows Forms, либо явно добавить в проект нужный пакет System.Drawing.Common
    Ответ написан
  • Что не так с репликацией AD?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Про 9e895472-e19f-4eb8-a124-c0a83ae40777._msdcs.kubstu.edu. Репликация использует псевдонимы КД в DNS, завязанные на GUID их копии AD. Что это за КД - сморите в DNS, в зоне _msdcs.kubstu.edu на какое имя указывает этот псевдоним.

    Для понимания, работает ли репликация реально, выполните на каждом КД из командной строки в режиме администратора команду repadmin /showrepl.

    Причиной ошибки, которую вы видите, может быть то, что вы выполняете команду не в режиме администратора. Другая возможная причина - что вы выполняете команду из корневого домена под учетной записью, которая не имеет достаточных прав в дочернем домене: проверьте что она либо входит в группу Администраторы предприятия (она определена в корневом домене, но действует по всему лесу).
    Ответ написан
    5 комментариев
  • Как исправить ошибку подключения в Dotnet?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    WIN-4NMDVUAQV42\\SQLSERVER


    Есть подозрение, что проблема тут. Там точно нужны два обраттных слэша, или вы это откуда-то типа программы на C скопировали (их там нужно два потому что один имеет спейиальное значение)? Потому что обычно там один.
    Ответ написан
  • Стоит ли разделить микросервис Account на микросервис по авторизации и микросервис пользователей?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    микросервис должен выполнять только один функционал

    Микросервис никому ничего не должен. Даже - существовать отдельно от приложения.
    И в вашем приложении, скорее всего, он тоже не нужен, а список пользователей и авторизацию можно сделать частью самого приложения. Но если вы хотите потренироваться с микросервисной архитектурой, то смотрите по своей задаче.
    Если у вас нет пользователей, которые просто числятся и никогда не авторизуются, то отдельный микросервис для пользователей вам точно не нужен. Потому что в таком случае атрибуты авторизации - это неотъемлемая часть сущности "пользователь".
    В противном случае возможны варианты, но нужно взвесить все за и против. В частности - возможную потерю целостности, когда какие-нибудь авторизационные данные не будут соответствовать ни одному пользователю.
    Ответ написан
    Комментировать
  • Как исправить ошибку поделючения к WIM?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Пробовал менять реестр , ставил обновы и ничего


    Так как непонятно, что вы там делали, для начала попробуйте вот решение из вот этого ответа
    https://www.linuxshop.ru/forum/f5/t41632--resheno-...
    Ответ написан
  • Как реализовать историю заказа в БД?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Если я правильно вас понял, то в истории заказа вам не нужно хранить весь слепок заказа (ибо там ничего кроме статуса не меняется, в том числе - и в зависимой таблице Готовые_фото), а нужны только идентификатор заказа, статус заказа (то есть, его идентификатор в справочнике) и дата обновления.

    В таком случае всё просто: замените поле слепок_заказа полем, содержащим ссылку (внешний ключ) на запись справочника статусов заказа с нужным статусом.

    Если нет - тогда придется объяснить нам тут схему того JSON слепка, который вы там храните, и что в этом слепке может поменяться.
    Ответ написан
  • Как правильно использовать составные первичные ключи в таблицах?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Хоть помеченный ответ уже есть, но лучше поздно, чем никогда.
    Ответ на вопрос зависит от того, являются ли ли эти таблицы отображением самостоятельных сущностей или просто реализацией связи "многие-ко-многим". Понять, являются ли эти таблицы сущностями, можно ответив себе на простой вопрос: есть ли и будут ли у этих кандидатов в сущности какие-либо атрибуты, которые зависят сразу от комбинации PK обеих связываемых таблиц с сущностями. Если ответ на это вопрос - "нет", то эти таблицы самостоятельных сущностей не содержат а потому составной первичный ключ для них - правильное решение, хотя и вопреки существующей моде.
    Если же такие атрибуты есть или, хотя бы, допускаются, то к этим таблицам надо относиться как к таблицам для сущностей, и здесь суррогатный первичный ключ может оказаться полезен.

    PS Вообще, при выборе решения надо исходить из условия задачи, а не из соответствия решения какому-нибудь "единственно верному учению", или из текущей моды AKA "best practices".

    PPS Разницы по скорости вы, скорее всего не заметите.
    Ответ написан
    Комментировать
  • Что происходит со свойством класса при присвоении извне?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    class - это функция. Которая выполняет роль конструктора класса при вызове через new. Если вы добавите к функции свойство, то у функции это свойство останется. А вот в созданный ей объект оно просто так не попадает. И не унаследуется - потому что в ссылку на протоип ([[Prototype]] и т.д.) созданного объекта операция new записывает содержимое свойства prototype функции-конструктора. Хотите добавить свойство в экземпляры class SomeClass - добавляте его в SomeClass.prototype. Или же добирайтесь через свойство constructor объекта-экземпляра (constructor.word) - вот оно указывает на функцию-конструктор.
    Ответ написан
    Комментировать
  • Батчинг входящих запросов с неблокирующим ожиданием?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    А вам точно это нужно?
    Потому что тут у вас появляется нюанс, который не совсем ложится на схему работы веб-приложения: у ваших отдельных запросов появляется общее состояние. Как минимум, это - накапливаемый пакет запросов, а ещё, наверное, в это состояние входит нечто общее для всех запросов для работы с БД: подключение или, если используется Entity Framework, DbContext. Это общее состояние придется как-то хранить, регулировать доступ к нему (DbContext к примеру, параллельный доступ не поддерживает в принципе), и вовремя это состояние удалять. Если посмотреть на стандартные механизмы ASP.NET Core, то сессия (ISession) для этого, наверное, не подойдет - там можно хранить только сереализуемые в байты пассивные объекты, и насчет регулировки доступа там непросто. Подойдет концентратор (Hub) SignalR, у которого есть сохраняемый между вызовами контекст подкючения - но ради него, скорее всего, потребуется менять способ вызова API из браузера: у него там своя клиентская библиотека.
    Ну и, по-любому, как-то надо реализовывать активную часть - которая, собственно, отслеживает пакет изменений и вовремя отправляет его в БД.
    Ваша идея
    Шедуллер в фоне будет периодически читать коллекцю объектов на запись и устанавливать результат выполнения в соотвтвующий TaskComplitionSource.

    мне не совсем нравится. Зачем периодически? Kучше чтобы эта активная часть срабатывала по факту добавления запроса в пакет - например, асинхронно ожидала Task от TaskComplitionSource. который метод добавления запроса завершал бы по факту добавления завершающего пакет запроса. Но и завершение по таймауту тоже предусмотреть надо - по жизни оно всякое бывает: обычно для таких целей используется WaitAny для комбинации основной ожидаемой задачи с Delay по таймауту.
    Ну, а ещё требуется, наверное, чтобы для каждого пользователя состояние было свое. В принципе, это делается, но надо делать. Для SignalR для этого можно использовать Hub.Context.Items - это словарь, который может содержать произвольные объекты, и сохраняется на время действия всего подключения.

    А ещё у меня, в принципе, есть своя самодельная библиотека, которая решает ту же задачу - сохранение контекста сеанса, в том числе - активного, с выполняющимся кодом. Я описывал ее недавно в статьях (кроме основной статьи есть дополнительная) на Хабре. Можете попробовать её, если переделывать API не хочется: она вполне годится для работы с API на базе MVC API Controller. или Minimal API. В принципе, она заточена немного под другую задачу - получние и возврат дополнительных результатов в фоне, но для вашей задачи она тоже подойдет. Напишу тут сразу технические подробности как использовать: ссылку на активную часть, собирающую и отправляющую пакет, можно хранить в IActiveSession.Properties, точно так же, как если бы вы хранили ее в Hub.Context.Items, а обработчик завершения, который прибирает за собой (в SignalR его место в OnDisconnect) - привязать к IActiveSession.CompletionToken через его метод Register. В общее для всез запросов состояние входит свой контейнер сервисов со своей областью действия в течение всего существования состояния, так что, если для работы с БД требуется Scoped-сервис из DI-контейнера, то его можно получить оттуда (в дополнительной статье написано, как, а также написано, как защититься от нежелательного одновременного доступа к такому сервису).

    Только вот библиотека эта, естественно, ни разу не стадартная, use at your own risk. Но если попробуете ее, мне будет интересно, что получилось. В том числе - и обнаруженные ошибки, заодно я и для вас их исправлю :-) .

    PS И неплохо было бы IMHO, чтобы дальнейший диалог, если он будет, шел на русском языке, без "батч", "эвейтить", "шедулер" и прочих транслитераций, IMHO лучше уж по-английски писать, если перевод неизвестен. А то я человек старый, мне читать этот пиджин тяжеловато.

    PPS А ещё благодарю за идею, о том, в какую сторону мне развивать мою библиотеку.
    Ответ написан
    1 комментарий