FortiClientの自動起動を停止する

 

FortiClientの自動起動が鬱陶しいので、停めてみました。

Windows10 2004と、FortiClient 6.4.0.1464にて確認しています。

  1. スタートアップで起動されていないことを確認する

    確認すべき場所
    • shell:startup
    • スタートアップ アプリ
    • タスクマネージャー→スタートアップ
    • レジストリ
      • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
      • HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
  2. サービスの自動起動を停止

    サービスを起動
    • スタートを右クリック→コンピューターの管理→サービスとアプリケーション→サービス
    • services.msc を直接実行
     など

    FortiClient VPN Service Scheduler を『手動』に変更

以上です。

Docker Desktop for Windows にて Kubernetes を有効化出来ないとき

 

Docker Desktop から Kubernetes を起動しようとすると、ぐるぐるが終わらずにスタック状態となる場合があります。

PowerShell上から

Get-Content C:\Users\foo\appdata\local\Docker\log.txt -wait -tail 0

でログを観察してみると、

[12:48:25.326][GoBackendProcess ][Info ] external: POST /events 200 \”Go-http-client/1.1\” \”\
[12:48:26.340][ApiProxy ][Info ] cannot list nodes: Get https://kubernetes.docker.internal:6443/api/v1/nodes: x509: certificate signed by unknown authority

のような感じで延々繰り返していることがわかります。

cannot list nodes: Get https://kubernetes.docker.internal:6443/api/v1/nodes: EOF

の場合もあります。

これを解決してみます。

手順

  1. Docker Desktop for Windows をアンインストール

  2. C:\Users\foo\.kube を削除

  3. Hyper-Vを無効化(OS再起動が要求されるので再起動します)

  4. C:\Windows\System32\drivers\etc\hosts に kubernetes.docker.internal を追加
    127.0.0.1       kubernetes.docker.internal
  5. 管理者権限コマンドプロンプトにて
    netsh int ipv4 add excludedportrange protocol=tcp startport=6443 numberofports=1
    を行い、6443/tcpを予約

  6. Hyper-Vを有効化(OS再起動が要求されるので再起動します)

  7. 管理者権限コマンドプロンプトにて
    netsh int ipv4 show excludedportrange protocol=tcp
    を行い、6443/tcpが除外予約されていることを確認

  8. Docker Desktop for Windows をインストール

  9. Docker Desktop for Windows を起動し、必要な設定を行う
    ※この時点ではまだ Kubernetes を有効化しません

  10. Proxy配下でない時は15.に

  11. Proxy配下の時は、GUI上にてProxy/noProxyとDNSを設定


  12. Docker Desktop for Windows を一旦終了

  13. Proxy配下の時は、C:\Users\foo\.docker\config.json にProxy/noProxyを設定
    config.jsonの例
    {
      "auths":
      {
        "https://index.docker.io/v1/":{}
      },
      "credsStore":"desktop",
      "proxies":
      {
        "default":
        {
          "httpProxy":"http://yourid%40yourdomain:yourpass@proxy-ip:proxy-port",
          "httpsProxy":"http://yourid%40yourdomain:yourpass@proxy-ip:proxy-port",
          "noProxy":"127.0.0.1,localhost,*.internal,*.local,your-docker-subnet/24"
        }
      },
      "stackOrchestrator":"swarm"
    }
  14. Docker Desktop for Windows を起動

  15. ログの監視を開始
    Get-Content C:\Users\foo\appdata\local\Docker\log.txt -wait -tail 0
  16. Kubernetes を有効化


  17. https://kubernetes.docker.internal:6443/api/v1/nodes:… が出続けますが、しばらくすると消えます
    [10:12:29.091][GoBackendProcess  ][Info   ] adding tcp forward from 127.0.0.1:6443 to 127.0.0.1:6443
    [10:12:29.098][LinuxWSL2Engine   ][Info   ] time="2020-07-31T01:12:29Z" level=info msg="adding tcp forward from 127.0.0.1:6443 to 127.0.0.1:6443"
    [10:12:29.098][GoBackendProcess  ][Info   ] external: POST /forwards/expose/port 200 \"Go-http-client/1.1\" \"\
    [10:12:29.099][ApiProxy          ][Info   ] waiting for kube-system pods
    [10:12:29.100][GoBackendProcess  ][Info   ] external: POST /events 200 \"Go-http-client/1.1\" \"\
    [10:12:29.100][ApiProxy          ][Info   ] waiting for node to be ready
    [10:12:29.100][GoBackendProcess  ][Info   ] external: POST /events 200 \"Go-http-client/1.1\" \"\
    [10:12:30.129][ApiProxy          ][Info   ] cannot list nodes: Get https://kubernetes.docker.internal:6443/api/v1/nodes: EOF
    :
    :
    [10:13:56.923][ApiProxy          ][Info   ] Cluster is ready
    :
    :
    [10:13:56.924][GoBackendProcess  ][Info   ] external: POST /events 200 \"Go-http-client/1.1\" \"\
    [10:13:56.924][ApiProxy          ][Info   ] waiting for system pods
    [10:13:56.924][GoBackendProcess  ][Info   ] external: POST /events 200 \"Go-http-client/1.1\" \"\
    [10:13:59.945][ApiProxy          ][Info   ] 0/3 system pods running, found labels  but still waiting for labels k8s-app=kube-dns, component=kube-controller-manager, component=kube-apiserver...
    :
    :
    [10:14:56.953][GoBackendProcess  ][Info   ] external: POST /events 200 \"Go-http-client/1.1\" \"\
    [10:14:57.956][ApiProxy          ][Info   ] 3/3 system pods running
    [10:14:57.957][GoBackendProcess  ][Info   ] external: POST /events 200 \"Go-http-client/1.1\" \"\
    [10:14:57.976][ApiProxy          ][Info   ] installing compose-on-kubernetes and storage-provisioner
    :
    :
    [10:15:00.870][GoBackendProcess  ][Info   ] external: POST /events 200 \"Go-http-client/1.1\" \"\
    [10:15:00.871][ApiProxy          ][Info   ] 0/2 system pods running, found labels  but still waiting for labels component=storage-provisioner, component=vpnkit-controller...
    :
    :
    [10:15:12.064][GoBackendProcess  ][Info   ] internal: GET /forwards/list 200 \"Go-http-client/1.1\" \"\
    [10:15:12.880][ApiProxy          ][Info   ] 2/2 system pods running
    [10:15:12.888][GoBackendProcess  ][Info   ] external: POST /events 200 \"Go-http-client/1.1\" \"\
    :
    :
    [10:15:23.985][ApiProxy          ][Info   ] kubernetes is up and running
  18. GUI上の表示が Kubernetes running となったら、動作確認
    C:\>kubectl get nodes
    NAME             STATUS   ROLES    AGE   VERSION
    docker-desktop   Ready    master   86m   v1.16.6-beta.0

  19. \(^o^)/

以上です。

Proxy設定の自動検出のON/OFFについて(その2)

 

先般ポストした『Proxy設定の自動検出のON/OFFについて』だけでは対応出来ないケースがありましたので、バッチファイルに追加するべき物を残しておきます。

  • 自動構成スクリプト(http://hoge.local/proxy.pac)を使う
    reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v "AutoConfigURL" /t REG_SZ /d "http://hoge.local/proxy.pac" /f
  • 自動構成スクリプトを使わない
    reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v "AutoConfigURL" /f
  • プロキシサーバー(proxy.local:12345)を使う
    reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v "ProxyEnable" /t REG_DWORD /d "1" /f
    reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v "ProxyServer" /t REG_SZ /d "proxy.local:12345" /f
  • プロキシサーバーを使わない
    reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v "ProxyEnable" /f
    reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v "ProxyServer" /f

以上です。

BranchCacheを停めてみる

 

WSL2上でDockerコンテナを -p 80:80 で建てたときに、http://localhost/ で接続出来ない時の対処法です。

80/tcpを塞いでいるのがBranchCacheサービスの場合で、単純にサービスを停めただけでは復活してしまう場合に本手法が使えるかと思います。


対処前の状態

C:\>netstat -ano | findstr :80
TCP 0.0.0.0:80 0.0.0.0:0
:
:


対処方法

  1. services.mscを起動し、BranchCacheサービスを停止/無効化します
  2. gpedit.mscを起動し、ローカルコンピューターポリシー→コンピューターの構成→管理用テンプレート→ネットワーク→BranchCache→BranchCacheを有効にする、に進み、無効を選択、適用します
  3. OSを再起動します

  4. netstat -ano | findstr :80 にて、80/tcpが空いていることを確認下さい

以上です。

EdgeでIE-onlyなサイトにアクセスする

 

IEのみ利用可なサイトのためにIEをわざわざ起動するのは面倒臭い避けたいという場合にどうぞ。

Windows10 2004 と Edge 83.0.478.64 にて動作確認を行っています。

次の3つのケースを想定します。

  1. EdgeのIE互換モードで動くサイト
    ActiveX等が動けば良い場合

  2. EdgeのIE互換モードで動くサイト(リダイレクトあり)
    途中で認証等のために他のサイトに飛ばされる場合
    サイト全体ではなく、一部分だけに適用したい場合

  3. EdgeのIE互換モードでは対応不可なサイト
    IEにインストールされたアドオン等が要求される場合
    EdgeからIEを起動します

 

作業手順

  1. レジストリ設定
    管理者権限のコマンドプロンプトまたはPowerShellにて以下2行を実行
    reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge" /v "InternetExplorerIntegrationLevel" /t REG_DWORD /d "1" /f
    reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge" /v "InternetExplorerIntegrationSiteList" /t REG_SZ /d "file:///c:/IE_MODE/sites.xml" /f

    レジストリではなく、グループポリシーから設定したい場合、以下のⅰとⅱの作業を行います
    ポリシー設定内容が次のOS起動時に上記レジストリキーに上書きされます

    1. Chromium版Edgeの管理テンプレートをポリシーエディタのフォルダに配置
      • 次のURLに移動
        https://www.microsoft.com/en-us/edge/business/download
      • CHANNEL欄からEdgeのバージョンを選択(2020/07/14現在 Stable83)
      • BUILD欄からEdigeのビルド番号を選択(2020/07/14現在 83.0.478.64)
      • PLATFORMでOSのバージョンを選択(Windows 64-bit)
      • GET POLICY FILES をクリックして、テンプレートファイル(MicrosoftEdgePolicyTemplates.cab)をダウンロード
      • CABファイルを適当な場所に展開
      • 必要なファイルをコピー
        展開したアーカイブ内の
        \windows\admx\msedge.admx
        \windows\admx\msedgeupdate.admx
        を、C:\Windows\PolicyDefinitions にコピー
        \windows\admx\ja-JP\msedge.adml
        \windows\admx\ja-JP\msedgeupdate.adml
        を、C:\Windows\PolicyDefinitions\ja-JP にコピー
    2. ポリシー設定
      ポリシーエディタ(gpedit.msc を実行、等)を開いて、
      の2項目を、のように設定
  2. サイトリスト配置
    フォルダ C:\IE_MODE を作成し、次のファイルを文字コードUTF-8で sites.emie2 として保存
    <site-list version="1">
      <created-by>
        <tool>EMIESiteListManager</tool>
        <version>12.0.0.0</version>
        <date-created>07/01/2020 00:00:00</date-created>
      </created-by>
      <site url="case1.example.com" comment="普通にIEモードで">
        <compat-mode>IE11</compat-mode>
        <open-in>IE11</open-in>
      </site>
      <site url="case2.example.com/subfolder/" comment="サイト内の一部分に適用/リダイレクトあり" flagged="false">
        <compat-mode>IE11</compat-mode>
        <open-in allow-redirect="true">IE11</open-in>
      </site>
      <site url="case3.example.com" comment="別窓のIEで開く場合">
        <compat-mode>IE11</compat-mode>
        <open-in app="true" allow-redirect="true">IE11</open-in>
      </site>
    </site-list>
  3. サイトリストの適用
    1. Microsoftのサイトから“Enterprise Mode Site List Manager (schema v.2)”をダウンロードし、インストール
    2. Enterprise Mode Site List Manager を実行
    3. File→Import にて C:\IE_MODE\sites.emie2 をインポート
    4. File→Save to XML で C:\IE_MODE\sites.xml として保存
    5. Edgeを開き、edge://compat/enterprise に移動→『強制的に更新』をクリック
  4. サイトリストの更新を行う場合
    1. Enterprise Mode Site List Manager を実行
    2. サイト追加
      Add ボタンを押してデータ投入後、Save をクリック
    3. サイト編集
      対象行をクリックしてから Edit ボタンをクリック、編集完了後に Save をクリック
    4. サイト削除
      対象行をクリックしてから Delete ボタンを押下
    5. 最後に File→Save to XML で C:\IE_MODE\sites.xml として保存
    6. edge://compat/enterprise に移動→『強制的に更新』をクリック
      エンタープライズモードリストはIE11の場合65秒毎に更新されるようですが、Edgeはキャッシュの内容を使い続けるため、強制更新が必要となったようです

※sites.xmlを直接編集した場合
 edge://compat/enterprise に移動→『強制的に更新』をクリック
 但し Enterprise Mode Site List Manager の内容と合わなくなります