年: 2022年

  • ランチ:鮨かみやま(2022/1/20)

    めちゃくちゃ美味しかった。とても幸せ(幸せすぎてコメントも思いつかない)。また、これにしたいが予算的に難しい。

  • Windows10 ver.21H2でOfficeツールへのログインでTPMのエラーがでる。

    クリーンインストールした直後のWindows10 Ver.21H2で、Officeツール(Microsoft 365のWordやExcelなど)にログインすると、TPMのエラーが出てログインできない。エラーの内容は下記。

    問題が発生しました
    
    ご使用のコンピュータのトラステッドプラットフォームモジュールが正しく機能していません。このエラーが解決しない場合は、システム管理者に連絡して、エラーコード 80090034 をお知らせください。
    
    サーバメッセージ: 暗号化に失敗しました

    試したことは・・・

    • これの対処として、PCを工場出荷状態に戻して再セットアップしたり、TPMのクリアなども行ったが、解決できなかった。
    • M365のアカウントも作り直してみたが、関係なし。
    • エラーになったユーザで、別のPCでログインすると問題なし。
    • PCのローカルアカウントでログインすると、M365アカウントでログインできるが、Active Directoryのユーザだと、このエラーが発生する。
    • BitLockerでドライブを暗号してみたが、M365のアカウントのログインではエラーになる。BitLockerの暗号化は正常に終了しているのに。

    最初は1台だけだったのだが、同じセットアップで、かつ別メーカーのPCでも、同じ現象が発生することがわかった。2台で同時に発生しているので、TPMの故障という可能性は薄くなった。

    さらに切り分けていった結果、2022年1月のWindows Update(つまり今月のWindows Update)で配信されていた「KB5009543」をアンインストールして、WordやExcelからM365アカウントでログインすると正常にログインできた。PCを再起動させてみたが、再起動後もログインされた状態はキープされており、問題がなかった。

    Windows10の21H2で、AD環境で、2022年1月のWindows Updateで、KB5009543が適用されており、新規にM365のアカウントで、Officeにログインをするときに発生する問題と思われる。Windows Updateは厄介だ。

    このM365でアカウントでログインするときのTPMのエラーの調査だけで、先週から何時間というか何日使ったことことだろうか。Windows Updateは厄介だ。最新版にして、これなので、辛い。

    追記。

    Windows11でも同じことが発生して、そちらはWindows Updateのアンインストールでは解消しなかった。かわりに、レジストリキーの変更で回避できる。レジストリキーでの対処は、Windows10でも有効だった。方法は下記。

  • 今日の富士山(2022/1/18)

    朝方と夕方の富士山。

    夕方は霞んでしまいはっきりとは見えなくなっていた。でも、その分、夕焼けでシルエット幻想的でよい。

  • ランチ:ルシェロのナポリタン(2022/1/18)

    ルシェロのランチが再開していたので、久しぶりに行ってきた。このケチャップっぽいナポリタンがいい。再開してくれてよかった。

    しかし、蔓延防止法が出たらランチを続けるかはわからないとのこと。今日、行けて良かった。

  • Oauth2-proxyとGoogle CloudのOauthを連携させるときの注意点

    Oauth2-Proxyで、Google CloudのOauth2.0を連携させたときの注意点として、Oauthでの認証時にGoogle Cloudで設定したOauth2.0クライアント名が表示されてしまう。

    これは、Google Cloud側の設定には、「OAuth 2.0 クライアントの名前。この名前はコンソールでクライアントを識別するためにのみ使用され、エンドユーザーには表示されません。」とあったところだ。

    そのため、気軽に「何とか-test」で名前をつけて、設定したり、テストしていたのだが、Oauth2-Proxyからアクセスしたときの画面に、この「クライアントの名前」が表示されていた。

    これを修正するには、

    1. Google Cloudでプロジェクトを開く。
    2. APIとサービスを開く。
    3. 認証情報を開き、修正するOAuth2.0クライアントIDを探す。
    4. その行の右側にあるペンマークをクリックして、編集する。
    5. 「名前」の部分を変更して、保存する。
  • ランチ:吉野家のキムチ牛丼(2022/1/17)

    今日はあまり時間がなかったので、吉野家でさくっと済ませてきた。キムチ牛丼に生卵で、味噌汁なし。これでも、600円オーバーになった。安くない。なんだかんだで牛丼も値段が上がっているので、財布に優しくなくなっていた。

  • ランチ:ヒーロー弁当(2022/1/12)

    今日のランチは、節約してほっかほっか亭のお弁当。いろいろな種類のおかずがちょっとずつ入っているヒーロー弁当にした。1つ1つが少量なので、飽きずに食べることができるのがいい。ハンバーグ、コロッケ、から揚げと主役クラスが揃っているのもいい。子供向けな気がするけれど、気にしない。

  • アメリカザリガニの飼育は、容認されるようでよかった

    個人的に、気になっていたアメリカザリガニのザリガニ釣りや家での飼育について、特定指定外来種入りで、できなくなるのかが気になっていた。どうやら、捕獲や家での飼育は、最後まで飼育することを前提に容認されるようだ。ついでに、ミドリガメ(ミシシッピアカミミガメ)も。

     答申は、飼育を禁止すると一般の人が大量放棄する恐れがあるとして、野外で捕獲した個体をペットとして飼ったり、譲渡したりすることは認めると記載。山口環境相は同日の閣議後記者会見で「既に飼っている人は野外に放したりせず、最後まで責任を持って飼い続けてほしい」と述べた。

    アメリカザリガニ規制答申 放出禁止、飼育は容認へ:東京新聞 TOKYO Web (tokyo-np.co.jp)
    https://www.tokyo-np.co.jp/article/153559

    観察する対象としても手軽でよいアメリカザリガニは、重宝する。脱皮が見れたりと、飼うのも楽しい。飼育はできるのでよかった。

    新たな販売や輸入は禁止されるとのことなので、ちゃんと守られるのかは心配だけど。食用のアメリカザリガニの場合は、加工品のみになるのかな。釣り餌のアメリカザリガニはどうなるんだろうか。使うことはないので、気にしても仕方ないけれど。

  • GASからMySQLに接続して、Select文を実行する

    select文の実行は、DBへのコネクションを行った後、ステートメントのオブジェクトを作成し、「.executeQuery(‘select文’)」を実行する。実行結果は、「.getInt(‘カラム名’)」や「.getString(‘カラム名’)」などで型を指定して、取得する。

    サンプルコードは下記。

    function myFunction() {
      dbConnection();
    }
    
    // --------------------------------
    // SSL 接続なしで接続する
    // --------------------------------
    function dbConnection(){
      Logger.log('start dbConnection function.');
    
      // 接続先設定
      var connectionIp = 'xxx.xxx.xxx.xxx'; // 接続のMysqlのIPアドレス(ホスト名も可)
      var userName = 'user'; // 接続で使うユーザ名
      var passwd = 'password'; // 接続で使うパスワード
      var databaseName = 'database'; // データベース名
      var addr = 'jdbc:mysql://' + connectionIp + '/' + databaseName;
    
      Logger.log('start mysql con');
      Logger.log(addr);
    
      var connectionInfo = {
        user: userName,
        password: passwd
      }
    
      // DBにコネクションをはる
      var connection = Jdbc.getConnection(addr, connectionInfo);
      Logger.log(connection.getCatalog());
    
      // Select文を実行するための処理 ここから
      // sqlステートメントをデータベースに送信するためのオブジェクトを作る
      var statement = connection.createStatement();
    
      // sqlを実行して結果をオブジェクトに入れる
      var result = statement.executeQuery('select * from List');
    
      // 結果を取り出す
      while (result.next()) {
        // 数値の場合は、getInt('カラム名')を使う。
        var id = result.getInt('id');
        // 文字列の場合は、getString('カラム名')を使う。
        var name = result.getString('listname');
        // 取得した内容をログに出力する
        Logger.log(id + ':' + name);
      }
    
      // Select文を実行する処理はここまで
      // コネクションを閉じる
      connection.close();
    }
  • GASからMySQLに接続して、Insert文を実行する(UpdateやDeleteも)

    Google Apps Script(GAS)で、Insert、Update、Deleteなどの更新系の処理を行うには、DBへのコネクションを行った後、ステートメントのオブジェクトを作成し、「.executeUpdte(‘Insert文など’)」 を実行する。実行結果は、0なら失敗、1以上なら成功(更新した行数が返るので1以上)となる。

    サンプルコードは下記。

    function myFunction() { 
      dbConnection(); 
    }
    
    // -------------------------------- 
    // SSL 接続なしで接続する 
    // -------------------------------- 
    function dbConnection(){ 
      Logger.log('start dbConnection function.'); 
    
      // 接続先設定 
      var connectionIp = 'xxx.xxx.xxx.xxx'; // 接続のMysqlのIPアドレス(ホスト名も可) 
      var userName = 'user'; // 接続で使うユーザ名 
      var passwd = 'password'; // 接続で使うパスワード 
      var databaseName = 'database'; // データベース名
    
      var addr = 'jdbc:mysql://' + connectionIp + '/' + databaseName; 
      Logger.log('start mysql con'); 
      Logger.log(addr);
    
      var connectionInfo = { 
        user: userName, 
        password: passwd 
      }
    
      // DBにコネクションをはる 
      var connection = Jdbc.getConnection(addr, connectionInfo); 
      Logger.log(connection.getCatalog());
    
      // テーブルにInsertを行う処理 
      // sqlステートメントをデータベースに送信するためのオブジェクトを作る 
      var statement = connection.createStatement();
    
      // Insert文を発行 
      var resultInsert = statement.executeUpdate('Insert Into List (id,listname) values ("5","kanagawa")');
    
      // 実行結果が0なら失敗、1以上なら成功 
      Logger.log(resultInsert);
    
      // ステートメントを閉じる 
      statement.close();
      // テーブルにInsertを行う処理はここまで
    
      // コネクションを閉じる 
      connection.close(); 
    }