Подскажите, у меня настроено по аналогии с вами, но VPN в Польше, однако реклама на ТВ появилась польская, как у вас настроено, чтобы еще и рекламы нет?
mdkolpakov,
Первое - Когда вы определяете переменную внутри функции, например $kat_addr в функции Get-Srv, то она определена только внутри этой функции, за ее пределами функции она пуста. Вызывая переменную $kat_addr в функции Get-Kat вы не получите те значения, которые она принимала в функции Get-Srv, $kat_addr будет пуста, отсюда и отсутствие значений в $lol2.
Второе - Настоятельно не рекомендуется вызывать функцию из функции. Сделайте функцию, которая не будет обращаться к другой функции, а если нужен цикл - воспользуйтесь любым из имеющихся, например While и вызывайте из него функции по очереди, сколько нужно. Вывод функции можно привязать к переменным и крутить по кругу, если необходимо.
Третье - что это за командлет такой Get-Children ? Возможно вы имели в виду Get-ChildItem ?
Не делайте так! Когда вы объявляете функцию Get-Srv, в ней вызов функции Get-Kat, а в функции Get-Kat объявляете вызов функции Get-Srv, то в вашем случае при срабатывании блока Else у вас будет бесконечный цикл выполнения без выхода, подумайте над другой реализацией вашего сценария.
Роман Безруков, если прогонять в цикле без задержки - то да, есть иногда сообщения о недоступности, но это как мне кажется из-за того, что файл не успевает на диск записаться, если поставить хотя бы небольшую задержку - то ошибок нет
Alex G., Причиной блокировки файла hosts иногда могут быть антивирусы, проверьте параметры антивируса или попробуйте отключить его, иногда в их настройках бывает отдельный параметр по защите файла hosts, так же могут быть и другие причины блокировки файла, это надо изучать локально, например посмотреть утилитой Process explorer.
Второй момент. Если вы планируете менять IP адрес записей этим скриптом, вам необходимо изменить условия в блоках Where-Object { $_ -notmatch "^$ipAddress1`t$hostName1" }
В той записи, что у вас сейчас скрипт будет просто добавлять новые записи и не будет удалять старые, для изменения нужно блок привести к такому виду Where-Object { $_ -notlike "*$hostName1" }
Drawn, Рекомендую сделать FS - один сервер, DHCP - второй, MS AD - третий. По версиям ОС в теории можно использовать репликацию сервисов (FS/DHCP/MS AD) и на разных версиях ОС 2016/2019/2022, но для удобства администрирования я бы рекомендовал использовать одинаковые версии ОС. Так же вы не ограничены версией ОС, например вы можете произвести миграцию без простоя сервиса, можно развернуть второй контроллер MS AD на MS Server 2022, перенести на него FSMO роли с первого, затем грохнуть первый, и развернуть первый на MS Server 2022. Так же можно поступить и с остальными сервисами. Но можете и не заморачиваться и развернуть все на 2016, поддержка там еще до 27-го года будет. (но я бы поновее сервера выбрал, чтобы не переделывать потом).
Ну для начала Best Practice от Microsoft - 1 сервис - 1 сервер, в вашем случае из этих сервисов DNS+DHCP+AD+FS+GPO
отдельными являются FS, DHCP и DNS+AD+GPO - это работает как один сервис в рамках MS AD
Оптимальным решением будет брать две физические машины, разворачивать на них системы виртуализации и разворачивать на каждой из них набор этих сервисов в отдельных виртуалках.
Теперь об отказоустойчивости, каждый из сервисов поддерживает работу в режиме репликации
MS AD - если вы поднимаете дополнительный контроллер домена - клиенты автоматически будут подключаться к тому, что будет доступен, первый выйдет из строя - подключатся ко второму и наоборот. Там есть нюансы с FSMO ролями, но на вашем уровне об этом можно особо не заморачиваться)
DHCP - разворачиваете второй DHCP сервер, авторизовываете его в AD, настраиваете репликацию с первым и там есть несколько режимов, можно чтобы оба одновременно выдавали адреса или второй будет выдавать только если первый помрет, или есть еще варианты, зависит от настройки, но репликация так же автоматическая.
FS - тут можете использовать встроенный механизм репликации в сервис DFS Namespaces и DFS Replication эти сервисы так же сделают доступ к файловым ресурсам отказоустойчивым, но места требуют х2
pfsenses, Давайте пообщаемся голосом, я расскажу подробнее про кавычки и как их правильно расставлять, писать это очень долго. Можете написать или позвонить мне на телеграм, мой ник @Top_EV
Не совсем понимаю что вы имеете в виду, вас интересует сортировка? Вы можете сделать обратную сортировку дописав к sort -property name -Descending
Будет, чем больше цифра в имени файла, тем раньше он был создан.
Так, смотрите, вы указали создать 2 записи с одним именем. В AD не может быть две записи с одним и тем же именем, о чем вам консоль и говорит в самой первой строке ошибки.
$input = Read-Host 'Enter a name' Вы сюда заносите имена пользователей, тут только одно имя или несколько? Если несколько, то есть ли у них какой либо разделитель? Мне кажется тут получится тип данных String и все имена будут восприниматься как одна строка. Самое оптимальное, как мне кажется, это создать CSV/текстовый файл, со списком имен пользователей, где каждое имя будет на новой строке. После этого подгружать эти имена в скрипт как массив и делать Foreach не по количеству указанному вами вручную, а по всем элементам загруженного массива пользователей где будет по отдельности браться каждое имя.