カテゴリー: Windows

  • Windowsのライセンス認証で「0xc004e028」エラーがでた。

    Windows Server 2022のライセンス認証を行ったところ、下記のエラーが発生した。

    We can't activate Windows on  this device right now. You can try activatating again later or go to the Store to buy genuine Windows. (0xc004e028)

    今はライセンス認証のアクティベーションができなかった、あとでもう一度アクティベーションを行ってほしい、という内容のエラー。もう一度、アクティベーションを行おうと、システムの詳細情報をみてみると、ちゃんとライセンス認証されていた。

  • SQL ServerのDBを読み取り専用にする方法

    SQL Serverのデータベースを読み取り専用(リードオンリー)する、または解除するには、次のことを行う。

    1. SQL Server Management Studio (SSMS) を使い、管理権限のあるユーザで接続する。

    2. 対象のDBを選択して、右クリックして、プロパティを開く。

    3. オプションを開く。

    4. 「状態」の中にある「読み取り専用データベース」の項目を探す。

    5. 「読み取り専用」にする場合は、プルダウンで「True」を選択する。読み取り専用を解除する場合は「False」を選択する。

    6. 「OK」をクリックする。これを行うと、一度、該当DBへのすべての接続が切断されるので注意すること。

  • Windows Server 2022のインストールディスクを作る場合は、DVD-R DLで。

    久しぶりに物理サーバに、Windows Serverをインストールした。今の最新OSのWindows Server 2022をインストールするために、ISOファイルを落としたのだが、これのサイズが、5.31GBあった。DVD-Rだと、4.3GBの容量なので作成することができない。そのため、Windows Server 2022のインストールディスクを作るために、DVD-R DLのディスクを買いにいった。

    普通のDVD-Rだと、Windows Server 2022は容量が足りずに焼くことができないので注意。買いに行く前にISOファイルのサイズを確認したのでよかった。

  • APT攻撃やマルウェアを防ぐツールをテストするときに使えるツールのメモ。

    APT攻撃やマルウェアを防ぐアンチウィルスやEDRツールなどをテストしたいときに、使えるツールのメモ。

    下記に公開されているツールを、コマンドで実行すれば検知されるかどうかがわかるとのこと。

    APTシミュレーター:システムが APT 攻撃の被害者であるかのように見せるためのツールセット
    https://github.com/NextronSystems/APTSimulator

    まだ、試せていないので、余裕ができたら試してみたい。

  • 2023年3月のWindows Update後、MSPEAPの無線LANで接続エラー

    今月(2023年3月)のWindows Update後、MS PEAPで接続している無線で、急に接続できないエラーが多発した。メーカーや機種については、ばらつきがあるので、機種固有の問題ではなさそう。接続できているPCも多いので、トリガーをWindows Updateが引いただけで、今回のアップデートに何かがあるというわけでもなさそう。

    1回、無線LANの接続を消して、MS PEAP接続を再設定すると接続できるようになる。ただ、既存の接続設定だと、RADIUSの認証ではじかれてしまう。

    ちなみに、無線LANのAPは、Meraki。Merakiでは、下記のエラーが出ていた。

    Client made an 802.1X authentication request to the RADIUS server, but it did not respond.
  • ASP.NETで「Web.HttpRequest.GetEntireRawContent()」のエラーが発生

    ASP.NETのアプリで、アプリケーションがクラッシュした。出力しているログをみても、下記のような程度しかエラーが出ていない。コーディングしたところとは無関係なエラーが出力されてきた。

    2023-02-XX 10:mm:ss,sss ERROR :  - Global_asax.Application_Error[xx] :    場所 System.Web.HttpRequest.GetEntireRawContent() 
       場所 System.Web.HttpRequest.GetMultipartContent() 
       場所 System.Web.HttpRequest.FillInFormCollection() 
       場所 System.Web.HttpRequest.EnsureForm() 
       場所 System.Web.HttpRequest.get_Form() 
       場所 System.Web.HttpRequest.get_HasForm() 
       場所 System.Web.UI.Page.GetCollectionBasedOnMethod(Boolean dontReturnNull) 
       場所 System.Web.UI.Page.DeterminePostBackMode() 
       場所 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

    調べたところ、ファイルのアップロードで発生しており、「Web.HttpRequest.GetEntireRawContent()」のところで、POSTされてきた要求のサイズが大きすぎて、クラッシュしていることがわかった。

    調べてみると、IISの設定では、デフォルトでPOSTサイズは30MBまで。ASP.NETでは、デフォルトで4MBまで、だった。アップロードのファイルサイズが数メガあり、POSTサイズを超えたのが原因だった。

    対応としては、アップロードするファイルサイズを制限するか、ASP.NETの設定(web.config)を変えて、もっと大きいファイルサイズをアップロードできるようにするか、だ。

  • Web.configでASP.NETのPOSTサイズを設定する

    ASP.NETのアプリには、デフォルトの場合、POSTできるサイズが4MBに制限されている。POSTの制限なので、ファイルのアップロードをPOSTで行う場合も、このデフォルトの4MBの制限にかかる。(なお、IISのデフォルトは30MB)

    大きなファイルをアップロードするためには、Web.configに次の設定を行う。

    system.webセクションに、`<httpRuntime maxRequestLength=”サイズ指定” />` を追加し、サイズを指定する。単位はKbyteなので注意。

    system.webServerセクションに、` <requestLimits maxAllowedContentLength=”サイズ指定”/>` を追加し、サイズを指定する。単位はByteなので注意。

    今回指定しているのは、POSTなどでリクエストされるサイズなので、厳密のはアップロードされるファイルのサイズではない。他にも情報を送る場合には、MAXのファイルサイズ+送信データ量にする必要があるので注意。厳密に指定しなくてもよければ、大き目のサイズを指定しておくのがよい。

    web.configの設定例)

      <system.web> 
        <httpRuntime maxRequestLength="20480" /><!--20MB 単位はKbyte--> 
      </system.web> 
      <system.webServer> 
        <security> 
          <requestFiltering> 
            <requestLimits maxAllowedContentLength="20971520"/><!--20MB 単位はByte--> 
          </requestFiltering> 
        </security> 
      </system.webServer>

    参考:

    https://zukucode.com/2018/06/aspnet-upload-size.html

    ※参考にしたところは、微妙にWeb.configの設定ミスがあるので注意。

  • dotNET6のアプリがIIS上だと原因不明の500エラーになる

    .NET6のアプリをIISにデプロイしたが、500エラーで動作せず。コンパイル自体はエラーになっていなかったが、IIS上にデプロイして、実行するとエラーになった。

    いろいろと調べていくと、「アプリケーションの発行」の設定の「Entity Frameworkの移行」のところにバツマークがついていた。内容は、「dotnet tool restore」だ。これが影響しており、正常にアプリケーションの発行ができていなかった。

    対処として、ソリューションのクリーンとリビルドを行ったが、改善せず。

    表示されていたパスにある「dotnet-tools.json」を別のファイル名にリネームして、再度発行を試したところ、正常に発行ができて、IIS上でも動作した。「dotnet-tools.json」のファイルの更新で問題があったことが原因だった。

  • Powershellでプロレスのスレッド数をカウントするコマンド

    Powershellでコマンドレットを組み合わせて、Windows上で実行されているスレッドの数を確認する。

    Get-Process だけを実行すると、プロセス名がわかるので、そのプロセス名で絞り込むこともできる。

    例) Windows上で動作しているスレッド数をカウントするコマンドレット

    (Get-Process|Select-Object -ExpandProperty Threads).Count

    例) Windows上で動作しているプロセスのJavaで起動されているスレッド数をカウントするコマンドレット

    (Get-Process Java |Select-Object -ExpandProperty Threads).Count

    例) Windows上で動作しているプロセスのTomcatで起動されているスレッド数をカウントするコマンドレット

    (Get-Process Tomcat9 |Select-Object -ExpandProperty Threads).Count

    おまけ:例)プロセスの数をカウントするコマンドレット

    (Get-Process).count
  • Veeam Backup ver.11aでWindows Server 2003上のSQL Serverのバックアップ指定でエラーになる

    Veeam Backup Ver.11a で、ESXi上の仮想マシンのバックアップを取るとき、Windows Server 2003(Windows Server 2003 R2)の仮想マシンで、SQL ServerやOracle Databaseのバックアップを行うオプションを指定している場合、Ver.11aではWindows Server 2003(2003 R2)は、サポート対象外になっているため失敗する。

    Veeam Backupで表示されていたエラーは下記。

    Failed to prepare guest for hot backup. Error: Unable to perform application-aware processing: Microsoft Windows Server 2003 (Standard) guest OS is not supported 
    Error: Unable to perform application-aware processing: Microsoft Windows Server 2003 (Standard) guest OS is not supported

    Veeam Backup Ver.11aは、仮想マシンとしてはESXiで動作しているものはバックアップが正常に取得できる。Ver.11aでWindows Server 2003などのVeeam Backup 対象外のOSは、バックアップ設定で、「Enable application-aware processing」や「Enable guest file system indexing」のチェックを外し、設定を無効化することで、仮想マシンのイメージとしてのみ、バックアップがされるようになる。これでエラーは発生しない。

    仮想マシンのバックアップだが、バックアップの指定方法によっては、バックアップの対象外になるため、注意が必要。