Задать вопрос
  • Получить вывод команды командной оболочки в переменную makefile?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    В командной строке:
    for /F %i in ('powershell.exe $PSVersionTable.PSVersion.Major') do set PSVER=%i

    Если вставляете в командный файл - замените %i на %%i
    Ответ написан
  • Как ограничить вывод?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Powershell работает с объектами и фильтровать надо объекты. По факту вы хотите получить элементы свойства Access и отфильтровать их - вот и пишите этот фильтр явно, а потом преобразовывайте выдачу в нужный вам формат . Для одного субъекта это делается примерно так(выдачаформатируется так же, как и у вас):
    (Get-Acl \\addr\addr).Access | Where {$_.IdentityReference -ne 'Домен\Группа'} | ForEach ([String]$_.IdentityReference, String]$_.AccessControlType, [String]$_.FileSystemRights) -join ' '}

    Чтобы отфильтровать несколько групп либо добавьте в команду Where дополнительные аналогичные условия, объединив их по && , либо добавьте команды Where для каждой такой группы
    Теоретически, можно отфильтрофать и результат команды Format-List, которой вы пользуетесь, но это сложнее: она возвращает не строки, а весьма нетривиальные объекты, которые потом формируют выдачу
    Ответ написан
    2 комментария
  • Ошибка репликации, как победить?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Похоже, у вас, на самом деле, всё нормально.
    Другое название папки на Win2012 - это след давней миграции репликации SYSVOL с FRS на DFSR.
    Код ошибки 0x800706e4 при проверке сервера Win20212 c Win2019 означает "Запрошенная операция не поддерживаяется" - т.е. налицо некоторая несовместимость версий по диагностическим механизмам, этим можно пренебречь, а состояние Win2012 - проверить с него самого.
    Не прошедший тест DFS Replications означает всего лишь то, что в журнале событий этой службы были ошибки и предупреждения. Посмотрите, какие были. Ошибки и предупреждения могут появляться и при нормальной работе репликации: например, при перезагрузке другого КД (ошибка потеря связи с ним) или при резервном копировании КД (предупреждение о заморозке записи в БД репликации в момент создания теневой копии системного тома).
    Для того, чтобы упокоиться, можете выполнить опрос состояния репликации на КД через WMI (из командной строки в режиме администратора):
    For /f %i IN ('dsquery server -o rdn') do @echo %i && @wmic /node:"%i" /namespace:\\root\microsoftdfs path dfsrreplicatedfolderinfo WHERE replicatedfoldername='SYSVOL share' get replicationgroupname,replicatedfoldername,state

    Числа в state означают следующее:
    0 = Uninitialized
    1 = Initialized
    2 = Initial Sync
    3 = Auto Recovery
    4 = Normal
    5 = In Error
    Ответ написан
    Комментировать
  • Как установть обновление windows10.0-kb5010414-x64 на Windows 10?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Наверное, только если обновить Windows 10 до Winows 11 ;-) : в Knowledge Base написано, что это обновление предназначено для Windows 11
    Ответ написан
    Комментировать
  • Нужно ли знать многопоточность и асинхронность в c#, чтобы начать учить asp.net?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Мое мнение: есть некоторая неопределенность для ответа. С одной стороны, при решении типовых задач с помощью базирующихся на ASP.NET Core фреймворках высокого уровня - MVC, Razor, Minimal API, Blazor (за последний не совсем уверен, правда), с асинхронностью и многопоточностью вы сталкиваться будете не сильно и не часто, потому что в них приложены усилия, чтобы изолировать разработчика от связанных с этим трудностей - короче, потребуется разве что, умение использовать async/await. Но в целом ASP.NET Core - это фреймворк асинхронный и многопоточный, поэтому для более плотной работы с ним понимание асинхронность и многопоточность и связанные с ней знания (например, про примитивы синхронизации, состояние гонок и т.п.) может быть полезно, иногда - например, если вы захотите использовать объекты, к которым возможен доступ из нескольких веб-запросов параллельно - просто необходимо.
    Короче, мое мнение: начинать изучать перечисленные фреймворки высокого уровня можно и без особых знаний про асинхронность, достаточно научиться использовать await в async-методах (это просто). Но в дальнейшем тему асинхронности и многопоточности надо вкурить, чтобы можно было работать смелее и свободнее, выходя за рамки фрейворка, и не допускать при этом труднообнаружимых ошибок.
    Ответ написан
    Комментировать
  • C#, обработка исключений, почему нельзя обратится к свойству, через имя класса?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    если я не хочу создавать переменную

    А вы её и так, и так не создаете: экземпляр исключения создается при возбуждении исключения (помните синтаксис - throw new Exception() )? А вот чтобы обратиться к полям/свойствам/методам этого экземпляра, надо дать ему имя в конструкции catch и обращаться к нему по этому имени. А при указании в качестве имени экземпляра имени класса, вы, как выше вам написал Василий Банников , как и в любом другом месте, обращаетесь к статическому полю (или свойству) этого класса. Такой вот синтаксис у языка C#: обработчик исключения у него - это обычный блок, никаких специальных соглашений там нет( пока что, по крайне мере ;-) ).
    Ответ написан
    2 комментария
  • Сменилась ip адресация. Перешла на ip v6. Что могло быть причиной?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Чтобы выяснить причину, надо смотреть.
    1. Что у вас выдает местный сервер DHCP, cмотреть - командой ipconfig с командной строки и/или GetNetIPAddresses из Powershell
    2. Посмотрите, во что у вас разрешаются нужные вам имена домена Resolve-DnsName имя (в powershell)
    3. Если у вас часть инфраструктуры (AD, DNS) связана с головной организацией - переадресуйте этот вопрос им.

    4. Если зона rcss.local - это ваш домен AD, и доступ к домену сломался из-за DNSSec (ну да, кто-то проспал срок действия подписей) , и вы управляете локальным сервером DNS, то можно для восстановления работы отключить на нем проверку DNSSec (в Windows Server это делается в свойствах сервера, там есть галочка).
    Ответ написан
    Комментировать
  • Зависит ли какой указан SSL-порт для работы SMTP соединения сайте?

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

    PS В SMTP есть два механизма передачи по зашифрованному каналу:
    1. По установленному заранее соединению SSL (обычно называется "SMTP over SSL" или SMTPS, обычно используется порт 465)
    2. Переходом от незашифрованного соединения к зашифрованному по команде SMTP STARTTLS ("SMTP Service Extension for Secure SMTP over TLS", используются те же порты (587 - клиентское подключение, 25 - сервер-сервер)

    Клиенты (MS Outlook, к примеру) для использования этих разных механизмов требуют разных настроек.
    И сервер и клиенты SMTP вполне могут не поддерживать один из этих механизмов (например, потому что SMTPS какое-то время считался устаревшим).
    Ответ написан
    Комментировать
  • Как опубликовать решение на GitHub без перезаписи существующей ветки?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Я правильно понимаю, что результат нужно публиковать в том же репозитории, но в своей ветке?
    Если так, то создайте себе локально такую ветку на основе вашей локальной main с переходом в нее (git checkout -b ветка ) и пошлите в репозиторий (git push -u origin ветка) уже её.

    Если нужно публиковать результат как-то иначе - уточните, как именно: сначала - для себя, у автора теста, заетем - здесь в комментарии.
    UPD: Написал команду git push целиком.
    Ответ написан
  • Как сделать ограничение на кол-во неправильно введённых паролей Active Directory?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Вы в какой политике меняете блокировку учетных записей, на каком уровне она применяется? Надо - в политике, применяемой к домену в целом (например, в Default Domain Policy).
    Ответ написан
  • Издержки полиморфизма или неправильный дизайн?

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

    PS Но лично мне не нравится сама такая архитектура: в ней получается, что использующая иерархию этих классов программа должна знать все типы, поддерживаемые этой иерархией, а это может вызвать проблемы с расширяемостью. Впрочем, выбор архитектуры - это вопрос всегда конкретный, завязанный на решение конкретной задачи.
    Ответ написан
    Комментировать
  • Почему надо явно добавлять пакет Microsoft.NET.Test.Sdk в гл проект, если в одном из пакетов он уже есть?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Так нужно, потому что ссылки не транзитивны. Средства разработки не могут взять метаданные (описания сборок, классов и т.д.), которые нужны для работы и компилятора, и других средств разработки (IDE, в частности), из ссылок того проекта (по факту - тоже сборки), на который ссылается текущий. Так что для использования какой либо сборки (в данном случае - из состава пакета), ссылку на нее нужно добавлять в проект явно.
    Ответ написан
    2 комментария
  • Как лучше хранить данные фиксированных таблиц в JSON или в отдельных полях?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Касательно БД ответ зависит о того, что вы с этими данными, в основном, делать будете. Если просто выводить весь набор, без (или почти без) фильтрации, поиска и т.д. на бэке, то лучше хранить объекты в том виде, в котором они через API отдаваться будут, т.е. в JSON. Если активно будете пользоваться поиском и фильтрацией по свойствам объектов, то лучше хранить свойства объектов - по крайней мере, используемые для поиска фильтрации, а, возможно, и все - как отдельные поля БД. Остальные свойства при этом можно хранить и в JSON: современные БД, и, в частности, PostgreSQL, умеют с ним работать. Если ожидается что у разных объектов будет разный набор свойств, и по этому набору поиск/фильтрация не будет производиться (по крайней мере - часто), то таким свойствам совершенно точно место в JSON (или использовать альтернативный подходы, про которые пока писать не буду).
    Короче, выбор тут конкретный, и, нередко - творческий.
    Ответ написан
    Комментировать
  • Почему не удаляются папки?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Скорее всего, в этих папках есть открытые файлы. А Windows откладывает удаление папок и файлов до тех пор, пока все файлы закрыты не будут.
    Список открытых файлов и процессов, которые их открыли можно посмотреть с помощью утилит от Sysinternals (это уже давно часть MS) Process Explorer или handle.exe(с командной строки), см. например https://serverfault.com/questions/1966/how-do-you-...
    Ну, а дальше разбирайтесь, что с этими процессами делать.
    Ответ написан
  • Как Найти этот предел не используя правило лопиталя?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Расписывать все преобразования не буду, изложу идею.
    1. Раскрыть тангенс tg(x) по определению, как sin(x)/cos(x)
    2. Расписать sin(2x) и cos(2x) по формуле синуса и косинуса двойного угла
    3. Сократить числитель и знаменатель на 2*sin(x)
    4. Привести выражение в числителе к общему знаменателю, перенести этот знаменатель вниз в основному знаменателю и сократить члены в числителе; в числителе останется sin(x)^2, в знаменателе - произведение трех сомножителей: -(1-cos(x)) и ещё двух, имеющих пределом 1
    5. Выделить из числителя сомножитель (1-cos(x)) (см. в комментариях к предыдущему ответу) и сократить на него числитель и знаментаель

    После этого в знаменателе не останется выржений, стремящих к 0, и можно будет посчитать предел нормальнм образом. Получится -2
    Ответ написан
  • Почему не доступна видимость занятости пользователей в Outlook?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Разрешение для этого пользователя на папки Календарь п/я тех пользователей, чье расписние желаете видеть, посмотрите.
    Ответ написан
  • Может ли вредоносное ПО запуститься без автозапуска и планировщика?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    В дополнение: есть такая утилита от Sysinternals (это уже давно часть Microsoft), она показывает все места, откуда возможен автоматический запуск, и что в этих местах содержится.
    Ответ написан
    2 комментария
  • Почему я не могу выбрать проект для дебага?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Если надо один раз: правой кнопкой мыши на нужный проект -> Debug -> Start New Instance
    Если надо изменить на постоянку: правой кнопкой мыши на нужный проект -> Configure Startup Project...
    или Меню->Project->Startup Project...
    Предполагается, что все эти проекты входят в одно Решение (Solution)
    Ответ написан
    Комментировать
  • Пользователь с ipv6 localhost с именем совпадающим c именем компа пытается авторизоваться в системе. Что это может быть?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Коды ошибки показывают, что какая-то программа пытается подключиться к вашему компьютеру с него самого или, возможно, - с другого компьютера через какую-то выполняющуюся на вашем компьютерее программу, типа веб-сервера, через сеть с указанной (и не существующей) учетной записью.
    Чтобы понять, какая программа на вашем компьютере это пытается, попробуйте включить ненадолго аудит процессов, чтобы получить сведения о програмах и поискать корреляцию.
    Ответ написан
    Комментировать
  • Ошибка выпуска сертификата Enterprise CS. Не могу выпустить серт под админом, поможете?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    У вас проблема с профилем пользователя на машине, с которой вы пытаетесь выпустить сертификат.
    Закрытый ключ сертификата дожен храниться в профиле пользователя, а у вас там пользователь работает с временным профилем.
    Разбирайтесь с загрузкой профиля при входе в систему: ищите события в журнале событий в момент входа, описывающие ошибку.
    Ответ написан