カテゴリー: Windows

  • SQL Server 2019からSQL Server 2005へのリンクサーバ経由でアクセスするプロシージャーがエラー

    SQL Server 2019からSQL Server 2005へのリンクサーバ経由でアクセスするプロシージャーでエラーが発生した。

    SQL ServerにSSMSでアクセスしてみると、リンクサーバーは存在する。リンクサーバーへの接続も問題なし。Select文でもリンクサーバー先のテーブルを参照できる。プロシージャーを実行すると、OLEDBのエラーが表示される。

    リンク サーバー "サーバ名" の OLE DB プロバイダー "MSOLEDBSQL" から、メッセージ "トランザクションは既に暗黙的または明示的に、コミットまたは中止されています。" が返されました。
    メッセージ 7391、レベル 16、状態 2、プロシージャ dbo.プロシージャー名、行 99 [バッチ開始行 2]
    リンク サーバー "サーバ名" の OLE DB プロバイダー "MSOLEDBSQL" で分散トランザクションを開始できなかったので、この操作を実行できませんでした。
    リンク サーバー "サーバ名" の OLE DB プロバイダー "MSOLEDBSQL" で分散トランザクションを開始できなかったので、この操作を実行できませんでした。

    状況をまとめると・・・

    • SQL Server 2005もSQL Server 2019も稼働している。
    • もともとはプロシージャーも正常に実行できていた。
    • リンクサーバーの接続確認は問題なし
    • Select文などを発行すると、正常にリンクサーバーのテーブルにアクセスできる。(Viewでも同様)
    • プロシージャーは、失敗する。
    • 分散トランザクションの設定はちゃんとできている(もともとは成功していた)。
    • リンクサーバーの接続で使用するユーザはアクティブであり、パスワードも問題なし。
    • 実行結果を見ていくと、ごくまれに成功しているときがある(SQL Serverへのコネクションは異なる)

    いろいろと切り分けた結果、認証先?のAD(Active Directory)のOSバージョンによって、プロシージャーの実行が成功するか失敗するかが分かれていた。古いWindowsOSのADに問い合わせがいくと成功する。新しいOS(Windows Server 2022)だと失敗する。

    Windows Server 2022のADに問い合わせされて、SQL Server 2005にアクセスされると、プロトコルとかセキュリティのキーセットの問題ではじかれて分散トランザクションが失敗して、タイムアウトになっているようだ。古いものは、互換性も無くなってきているので、きつい。

  • .NET アプリがどのランタイムバージョンで動作しているかを調べる

    現在、稼働している.NETのアプリが、どのバージョンのライタイムで、アプリケーションが動作するようになっているのかを調べてみる。この方法は、.NET5よりも後の.NETアプリについて、調べることができる。

    アプリのフォルダで、下記の名前のファイルがあるかを調べる。[appname]の部分には、そのアプリの名前がついている。

    [appname].runtimeconfig.json

    次のそのJSONファイルを開く。メモ帳などのテキストエディタで開けばよい。

    下のような中身になっているので、「tfm」や「version」の部分を確認し、どの.NETバージョンを利用するようになっているのかを確認する。

    {
      "runtimeOptions": {
        "tfm": "net8.0",
        "includedFrameworks": [
          {
            "name": "Microsoft.NETCore.App",
            "version": "8.0.5"
          },
          {
            "name": "Microsoft.AspNetCore.App",
            "version": "8.0.5"
          }
        ],
        "configProperties": {
          "System.GC.Server": true,
          "System.Reflection.Metadata.MetadataUpdater.IsSupported": false,
          "System.Reflection.NullabilityInfoContext.IsSupported": true,
          "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
        }
      }
    }

    参考: https://learn.microsoft.com/en-us/dotnet/core/runtime-config/

  • Windowsの設定に「Wi-Fi」の項目が表示されなくなったときの対処

    Windows10で、設定の「ネットワークとインターネット」の中で、「Wi-Fi」が表示されなくなる現象に遭遇した。ネットワークにつながらないので、ネットワークの修復を行ったら、「Wi-Fi」が消えたという。

    ネットワークアダプタを見てみると、WiFiのアダプタはある。デバイスマネージャーで見ても、デバイスは表示され、正常だという表示がされる。だが設定には表示されていない状態だ。

    試したこと1

    1. WiFiアダプタ(Intel WiFi6 AX201)のドライバが古いので、最新のドライバに更新。

    2. その後、OSを完全シャットダウンして、起動して確認。

    3.  変化なし。

    試したこと2

    1. デバイスマネージャーを開く。

    2. 「ネットワークアダプタ―」から「Intel WiFi6 AX201」(これは環境によって読み替える)を右クリックし、「デバイスのアンインストール」を選択して、アンインストールする。

    3. デバイスマネージャーの「ネットワークアダプタ―」を右クリックし、「ハードウェア変更のスキャン」を実施する。

    4. WiFiの設定やWiFiのアイコンが出てくるようになった。

    なんともめんどくさいが、とりあえず正常にWiFiがつかえるようにはできた。

  • Windows 2000 Server のADの降格手順

    Windows 2000 ServerのADの降格の難点は情報が少なくなってしまっているところ。そして、一番大変なのは、AD設定用のウィザードを表示させるところ。

    Active Directory のインストールウィザードの表示ができれば、後はGUIでウィザードに沿って作業するだけだ。

    降格手順

    1. ファイル名を指定して実行を選択する

    2. 「dcpromo」と入力して、Enter。

    3. 「Active Directory のインストール ウィザードの開始」が起動する

    4. あとは、ウィザードに従って、ADの削除を行う。

  • Win11のVS2019からSQL Server 2005に接続できない

    開発環境をWindows10からWindows11にアップグレードした。Windows11のVisual Studio 2019の開発環境のコードから、Windows Server 2003 R2上のSQL Server 2005に対して、接続ができなくなった。接続時のセキュリティの不一致のため。

  • Microsoft 365 Apps for businessでも、Copilot Chatのデータ保護が適用されるようになった

    Microsoft 365の管理センターで、ユーザ割り当てのライセンスのところbに「Microsoft Copilot 向け商用データ保護」が追加されていた。

    調べてみると、Copilotのデータ保護機能の対象範囲が拡大されており、Microsoft 365 Apps for businessも商用データ保護の対象になっていた。

    実際にBingのCopilotにアクセスしてみると、保護済みを示す緑のマークがついており、データ保護されているようだ。ノートブックは、ログイン状態なので18,000字まで利用できる。WebもGPT4が利用できる。DALL-E3もCopilot Chatから使えるので画像生成もできる。

    ただし、Copilot in WordなどのオフィスツールのCopilotについては、別ライセンスが必要なので、有効にはならない。そっちは、企業用のCopilotのライセンスを別途購入する必要がある。

    参考:

    https://japan.zdnet.com/article/35215422

    https://learn.microsoft.com/ja-jp/microsoft-365-copilot/microsoft-365-copilot-privacy

  • メモ:Windows Server 2012 R2はTLS1.3に対応していない

    メモとして。Windows Server 2012 R2、Windows Server 2016は、TLS 1.3に対応していない。TLS 1.2まで。

    TLS 1.3のリリースが、2018年8月10日にIETFが「RFC 8446」として公開したので、それよりも前のOSは対応していないのはしかたない。

    参考)

    https://learn.microsoft.com/en-us/answers/questions/874023/tls1-3-on-windows-2012-r2

    https://learn.microsoft.com/en-us/answers/questions/958442/how-to-enable-tls-1-3-in-windows-server-2016

  • Photoshop Elements 2023で、拡張子JFIFのファイルを開けない。

    拡張子 .JFIFは、JPEG File Interchange Format の略で、JPEGファイルに付加情報をつけた形の画像ファイル。

    Photoshop Elements 2023で、拡張子JFIFのファイルを開けない。Photoshopで開くには、拡張子を「.jfif」から「.jpg」に変えると読み込むことができる。

    https://en.wikipedia.org/wiki/JPEG_File_Interchange_Format

  • Windows11でISOファイルをDVD/CDに書き込む

    Windows11でISOファイルをDVD/CDに書き込む手順は以下。ISOファイルがあれば、標準ツールのみで行える。

    1. 書き込みが可能なDVD/CDドライブに空のメディアを入れる。

    2. ISOファイルを右クリックして、「その他のオプションを確認」を選択する。

    3. 「ディスクイメージの書き込み」を選択する。

    4. Storeの警告が開いた場合は、インストールを選択する。

    5. 「Windowsディスクイメージ書き込みツール」が開いたら、書き込み用ドライブを選択して、「書き込み」をクリックする。

    6. 書き込みが終わるまで待つ。

  • Windows Defenderが暗号化ZIPファイルをウィルス判定してしまう。

    ちょうど、3月(2024年3月)くらいから、ChromeでGmailの添付ファイルをダウンロードすると、暗号化されたZIPファイルがウィルス判定されて、ダウンロードできなくなった。

    チャンと調べたところ、Gmail側の添付ファイルはスキャンできないという表示だけなので、Gmail上はグレー判定。Chrome自体にウィルスチェック機能は付加していない。ウィルスチェックは、Windows11のWindows Defenderで行っている。ダウンロードされた直後に、Windows Defenderでのウィルスチェックが行われて、そのまま削除されていた。1つのZIPファイルだと、ウィルス混在の可能性があったので、気にしなかった。これが複数のまったく別の件の添付されたZIPファイルで同じ動作になった。

    Windows11で、一時的にWindows Defenderを無効化すれば、ダウンロードおよびZIPファイルの展開は可能。展開後に、Windows Defenderをオンにして、チェックを行うと、ZIPファイルはウィルス判定されて、削除される。展開されたファイルは、ウィルス判定されなかった。(どうしてもダウンロードが必要ならば、一時的にWindows Defenderを無効化する、自己責任で)

    このことから、Windows Defenderが暗号化ZIPファイルをウィルス判定してしまう状況という判断になった。