Tag Archives: Mimbolovewindows

What I have learned after installing Windows 11

Written by elwood
  1. Windows 11 media creation tool is very, very buggy… You should have a lot of patience and luck to create a working bootable USB stick.
  2. The Windows 11 installation process is also buggy. The result (whether the installation will complete or fail) depends on what you choose in the keyboard layout and/or language packs select boxes.
  3. Surprisingly, you still don’t need a Microsoft account to proceed with OS installation. However, you have to know how to avoid this requirement (you can simply enter a local username and ignore the error).
  4. Hardware detection sometimes doesn’t work, and you will likely have troubles with the activation process.
  5. Windows Update is as buggy as usual. During the first install it didn’t finish successfully, but after 3 or 4 reinstalls it finally finished OK.
  6. If you need to change the keyboard repeat rate, you have to run a custom command to launch the settings app O_O
  7. Sometimes OS starts to utilize 15% CPU in idle mode, and it doesn’t stop until you reboot your computer.
  8. There is the Hibernate mode that activates automatically while computer sleeping. To disable it, I removed Hibernate from allowed modes using this guide

Пускаем внешний траффик мимо VPN

Written by elwood

Из-за медленного VPN на работе озаботились настройкой маршрутизации. Нужно было настроить так, чтобы весь трафик, кроме того, для которого реально требовался VPN, шел обычным образом – через шлюз по умолчанию. В результате нашли путь, который нам нужен:

1. В свойствах адаптера VPN-соединения зайти в IPv4 -> Advanced и снять галочку “Use default gateway on remote network”, в IPv6 тоже. После снятия галочки весь траффик, который раньше шел через VPN – будет идти так, как было без него. После этого нам будет нужно явно добавить маршрут (маршруты), для которых VPN необходим.
vpn-1
2. Определить адрес шлюза VPN-соединения – открыть статус адаптера на вкладке Details. В нашем случае это адрес 172.19.71.70
vpn-2
3. Определить номер интерфейса VPN-соединения командой route print. В нашем случае это номер 42.
vpn-3
4. Определить, какая подсеть (или отдельные адреса) нуждается в том, чтобы быть маршрутизируемой через VPN. Для этого уже не получится просто подсмотреть куда-нибудь, нужно знать, к каким IP-адресам вы подключаетесь. Либо задайте сами (если вы знаете), либо спросите у знающего коллеги. В моём случае это адреса 192.168.*.*, поэтому маска будет 255.255.0.0
5. Записать команду

route -p add 192.168.0.0 mask 255.255.0.0 172.19.71.70 if 42

Параметр -p означает, что добавляемый маршрут будет сохранён (persistent). Параметр if 42 означает, что этот маршрут будет применяться только при поднятом интерфейсе 42 (то бишь при подключенном VPN). Если не указывать if, то маршрут будет работать только до дисконнекта VPN. При дисконнекте Windows увидит, что маршрут неприменим, и уберёт его. И даже после переподключения, несмотря на то, что маршрут создан с параметром -p, он не активизируется. Придётся его удалять и добавлять снова вручную – и так при каждом переподключении. А если указать if, то при отключении от VPN система поймёт, что маршрут не нужно убирать, а нужно только деактивировать его до повторного поднятия интерфейса.

6. Переподключиться к VPN

7. Проверить маршрутизацию до публичных серверов (yandex.ru, например) и до внутренних компьютеров, доступных только в контексте VPN.

tracert yandex.ru
tracert 192.168.1.4

Первый маршрут должен идти так же, как и при отключенном VPN. Второй – через шлюз VPN-подключения.

Разные версии JDK на одной машине

Written by elwood

322px-java_logosvgДля взаимодействия с 32-разрядной COM библиотекой через jni4net понадобилось, чтобы приложение запускалось с помощью 32-разрядной JDK. Скачал, поставил, и напоролся на то, что установленная 32-битная версия 1.7_25 полностью заменила все имеющиеся JDK, закинув exe-файлы java.exe, javaw.exe прямо в Windows\System32. А мне хотелось, чтобы по умолчанию работала 64-разрядная версия. И только в определённых приложениях запуск производился с помощью 32-битной JVM. Нашел следующее решение:

  • Удаляем из System32 три exe файла, появившихся после инсталляции 32-битной JDK
  • Устанавливаем JAVA_HOME на 64-разрядную JDK. В Path прописываем путь к директории bin этой же 64-разрядной JDK. Это будет JDK по умолчанию.
  • В приложениях, которые требуют запуска с использованием недефолтной JDK, прописываем следующие строки в скрипт запуска:

    set JAVA_HOME=путь к JDK
    set PATH=%JAVA_HOME%\bin;%PATH%

Вот и всё! Теперь у нас в приложениях, где этих строк нет, будет запускаться дефолтная версия JVM, а в приложениях, которые мы сконфигурировали явно, будет стартовать именно та версия, которую мы прописали.