カテゴリー: OS

ひと目でわかるActive Directory Windows Server 2022版 / Inc. Yokota Lab

定番書として評価の高い「ひと目でわかるActive Directory」シリーズに、待望のWindows Server 2022版が登場です! Active Directoryの概念および導入、構成管理方法を、詳細な手順と豊富な画面を使ってわかりやすく解説します。
 Active Directoryは、ドメインサービス(DS)、ライトウェイトディレクトリサービス(LDS)、証明書サービス(CS)、Rights Managementサービス(RMS)、フェデレーションサービス(FS)の5つのサービス群の総称です。本書では、ドメインサービスを中心に解説し、その他のサービスについても概要を紹介します。
 Active Directoryを初めて使う方でも、画面を見ながら手順に従って操作するだけで簡単に目的の作業を行うことができます。ある程度使い慣れている方には、Active Directoryをより使いこなすためのリファレンスとしてお使いいただけます。

kindle版を¥3,267で購入した模様。
久しぶりにActiveDirectoryを触ろうと思い、Windows Server2022の試用版を落としてきて、DSとLDS辺りを試した。

それ以降の機能に関しては読んだだけ(ノ∀`)タメシヨウガナカッタンヤ
まあ基本的な部分に関しての変更はあんまりないような印象。当たり前か。

よくある概念説明+詳細操作という構成。
可もなく不可もなく。

入れるヒントが少なかったのか"サーバーマネージャーが表示されない場合には"というヒントがヘビローテーションで存在してて、「無理して入れなくてもいいじゃん…(´・ω・`)」という残念な気持ちにさせられた。つーか目障りだったw


この本の後にAzure ADの本をちょっと読んで試そうとしたが、ADテナントの取得辺りでやめた(ノ∀`)

Web絡みで面倒くさくなったのとやってて飽きたからw

Azure ADとWindows ServerのADは機能や使用目的が違うということだけ知っているだけでいいだろう。

多分、この先、AzureADを触るような仕事に就くことはないだろうし。正直それ程興味がわかなかった。

コンテキストメニューの”編集”からストアアプリ版Paint.Netを開く

<あらすじ>
前回(一年半ほど前)、ストアアプリ版Paint.Netに複数画像を"送る"で、ストアアプリ版のPaint.Netで選択した複数画像を開く方法を確立し、自らを天才かと錯覚し歓喜していた俺氏だったが、日に日にその操作量に不満を募らせていた…

( ゜σ・゚)ホジホジ。oO(コンテキストメニューから[送る]-[ToPaintDotNET.cmd]を選択するのってめんどくせぇな…)

というわけでなんか作業量を減らす方法を調べてみる。


面倒くさいから結論から書くが、レジストリエディタ開いて、
[HKEY_CLASSES_ROOT\SystemFileAssociations\image\shell\edit\command]の値というかデータで指定されている実行プログラム("%systemroot%\system32\mspaint.exe")の部分を、どっかに置いた"ToPaintDotNET.cmd"のフルパスにすれば良いだけだった。

具体的には[ 『"C:\Users\username\AppData\Roaming\Microsoft\Windows\SendTo\ToPaintDotNET.cmd" "%1"』という感じにする。面倒くさいのでSendToに置いてあるのをそのまま指定した(ノ∀`)

※ちなみにパスを直書きではなく
"%APPDATA%\Roaming\Microsoft\Windows\SendTo\ToPaintDotNET.cmd" "%1"』とすると下記の確認というか選択ダイアログが出てきて、うざいことこの上なくなるので注意が必要である(ヽ'ω`)ナゼカハシラン


ストアアプリの実体exeらしきものの場所は調べてわかったけれど、単純にそれを指定しても権限だかなんかで実行出来なかったので、前回同様にbatをはさんだ。もっと良い方法があるのかもしれないが、まあこの方法でも複数画像を開けるので、これはこれで良しとする(`・ω・´)

本当はコンソールウィンドウの表示も抑制したいけど、VBSとかで起動しないと駄目そうだからやめとこうw

Windows11でWSLを入れた。

Windows11のインストール

インストール中にTPMチェックをレジストリで無効にすれば古いマシンにでもWindows11がインストール出来ると知り、無謀にもdynabook R732/Fという第3世代Core i5マシンへの導入を試みる(`・ω・´)

あれ(´・ω・`)?

特に何もせずにインストール出来た?
もしかするとWindows Insider Programに参加していたからかな?
まあよくわからないが普通にインストール出来て動いたわw
結局のところ、元々はただの21H2かなんかだもんな。

ちなみにいつも通り、一回目のWindows Update後に起動しなくなった…(ヽ'ω`)
再インストールして数日間経ってから累積更新プログラムを当てたら、特に問題なく起動するようになった。

内容が修正されたのか、うちのマシンの問題なのか知らないが、これはうちのR732/Fではよくあることなので、余り気にしない(ノ∀`)


WSLのインストール

故あってWordPressのページ等を触る必要が生じたので、仮想環境を入れることにしたが、VMWareもVirtualBoxも改めて入れるのは面倒くさいなと思い、WSLの利用を思い立つ。

WSLは仮想環境じゃないけど、WordPressの挙動等を確かめるだけなら、別に問題はないしな(`・ω・´)

なんて甘く考えていたけど、なんか色々と紆余曲折があった。
きっちりとエントリ化するのは面倒くさいのでダイジェストの覚書で。

結論から言うと、WSL のインストールにある通り、

wsl --install

でインストール出来たのだが、そこに至るまでなんかハマった(´・ω・`)

  1. よくわからないが文字化けする。
    Windows PowerShell ISEで実行したのだが、よくわからないエラーが出ているようだった…
    いや、もしかするとインストールに成功していたのかもしれないが、メッセージが文字化けしていた為に何がどうなってるかわからなかったw
  2. ぐぐって見つけた文字化け回避方法を試すも上手く行かない。
    Powershellの実行権限も変えてみても上手く行かない…
  3. よくよく見たら、Powershell用の文字化け回避方法だった(ノ∀`)
    PowerShell起動時、文字コードをUTF-8に変える方法
    Powershellの文字化けを直す方法

    Windows PowerShell ISEは取れる引数も違うようなので、取り敢えずPowershellの方で作業を実行。インストール後に再起動したんだったかな?

  4. インストールに成功し、ユーザーを追加したけれども、なんか通らないコマンドが沢山出てくる(´・ω・`)?

    どうもsystemdがPID1じゃないのが問題らしい。
    Windows 10 or 11 Home(WSL2)のUbuntuでsystemctlを利用する方法(systemdをPID1で動作させる方法)

  5. 上記のサイトの方法でなんとか無事にSystemdをPIDで起動させることは出来たが、ここでもいくつかつまづいた…(ヽ'ω`)

    接続状況が悪かったせいか、一発目の

    sudo apt install -y daemonize dbus dotnet-runtime-5.0 gawk libc6 libstdc++6 policykit-1 systemd systemd-container
    

    ではエラーが出た。

  6. 次のdotnet-runtime-5.0のインストール後に上記のコマンドを再度実行したら、上手く行った…ような……

    そもそもなんでdotnet-runtime-5.0を2回インストールするんだろうか?

    ※2回目に試していたらなんかやり方を間違えたのか、dotnet-runtime-5.0がUnable to locate package dotnet-runtime-5.0になってしまった(´・ω・`)

    Ubuntu に .NET SDK または .NET ランタイムをインストールするの20.04のとこのランタイムのインストールのとこの"aspnetcore"を"dotnet"にしたら入ったみたい…

    sudo apt-get update;
    sudo apt-get install -y apt-transport-https &&  sudo apt-get update && sudo apt-get install -y dotnet-runtime-5.0
    
  7. wsl-transdebianのリポジトリ設定でまたまたはまる(´・ω・`)

    毎回調べて、毎回忘れるヒアドキュメントちゃん(´・ω・`)
    まあこれ自体が問題ではなかった。
    知ると便利なヒアドキュメント

  8. まあ、見たらわかると思うんですが sudo の効果はリダイレクトまでは有効にならないご様子

    sudoしてもリダイレクトで権限のないファイルに書き込めない時の対処法
    ということらしいので、

    sudo -s
    

    してからコマンド実行したら上手く行った。

  9. その後も再起動してなくて、なんか変な感じになったりしたけれども、再起動したりして続けたら何とか上手く行って、ubuntuでのコマンドでも不具合がなくなった。

リンク先の途中に出てくるlsb_releaseはディストリビューションのバージョン確認コマンドか。
Ubuntu Version確認からディストリビューションのメモ


まあなんやかんやでWSLをインストールしてubuntuが使えるようになった模様(・∀・)


尚、WordPressを入れて、テーマを変えて、それに付随するプラグインを入れたらWordPressが起動しなくなった…(ヽ'ω`)

wp-config.phpでデバッグをONにしようとしたら文字化け状態…(ヽ'ω`)
単純にデバッグをONにするだけでいいのだけれども一応ぐぐる。

取り敢えず治った(`・ω・´)
【WSL2】Ubuntu 20.04 で日本語を表示したい


WordPressとプラグインを入れてなんかおかしくなったので、WSLを再インストールしてやり直した…(ヽ'ω`)

やっぱり仮想環境でやったほうがええんかな…

『Android Kotlin Fundamentals』をやった(4)

Android Kotlin Fundamentals: Lifecycles and logging

3. Explore the lifecycle methods and add basic logging

Step 1: Examine the onCreate() method and add logging

項番6が改行されていない。


4. Use Timber for logging

Step 2: Create an Application class and initialize Timber

Warning: It might be tempting to add your own code to the Application class, because the class is created before all of your activities and can hold global state. But just as it's error-prone to make readable and writable static variables that are globally available, it's easy to abuse the Application class. Avoid putting any activity code in the Application class unless the code is really needed.

ふーむ、Applicationクラスには余計なコードを書かないのがお作法なのね(´・ω・`)


5. Explore lifecycle use cases

Use case 3: Partially hide the activity

Whatever code runs in onPause() blocks other things from displaying, so keep the code in onPause() lightweight.

onPause()内は軽めに…φ(・ω・` )メモメモ…


6. Explore the fragment lifecycle

Lifecycles and loggingの後は次のComplex Lifecycle Situationsへのリンクがない?


Android Kotlin Fundamentals: Complex Lifecycle Situations

4. Task: Use the Android lifecycle library

Step 1: Turn DessertTimer into a LifecycleObserver

LifecycleOwnerをimplementしてるのはFragmentActivityのsuperclassのComponentActivityではなかろうか…


5. Task: Simulate app shutdown and use onSaveInstanceState()

Step 1: Use adb to simulate a process shutdown

The Android Debug Bridge (adb) is a command-line tool that lets you send instructions to emulators and devices attached to your computer.

Android Debug Bridge(adb)はコンピュータに接続されたデバイスまたはエミュレータへ指示を送るコマンドラインツールと…φ(・ω・` )メモメモ…

4.Type adb and press Return.
今も向こうではエンターじゃなくてリターンキー呼びが主流なんだろうか。

んー、
adb shell am kill com.example.android.dessertclicker
が上手く動いてないのか、Recents Screenから復帰(?)させても、前の状態が残ってるな…
何か間違ってるな(ノ∀`)

adb server version (41) doesn't match this client (40); killing...
could not read ok from ADB Server
* failed to start daemon
error: cannot connect to daemon

って出てるけど、これは問題あるのかないのかがまずわからん(・∀・)

コマンドプロンプトで上のコマンドを放ったら、何のエラーメッセージも出さずに終了出来た模様。Recents Screenから復帰させたら、無事に前の状態がリセットされていた。

なんでASだと上手く行かないんだろうと悩んだが、一回コマンドプロント側で上手く行ったら、ASでも上手く行くようになった。原因はよくわからないが、取り敢えず解決したからいいか(ノ∀`)
adb.exeが複数起動してたんかな?

Step 2: Use onSaveInstanceState() to save bundle data

A bundle is a collection of key-value pairs, where the keys are always strings.

前にも説明があったが、キーは必ず文字列なんだねぇ。

Generally you should store far less than 100k, otherwise you risk crashing your app with the TransactionTooLargeException error.

サイズは100KB以下に抑えないと駄目と…φ(・ω・` )メモメモ…

The putInt() method (and similar methods from the Bundle class like putFloat() and putString() takes two arguments:
putString()の後に閉じ括弧が抜けてる?

Step 3: Use onCreate() to restore bundle data

So if the bundle is not null, you know you're "re-creating" the activity from a previously known point.

それで判定が出来るわけか。

which in turn
which in turnって何?非制限用法(付加用法)って?
「which in turn,」の訳し方について 下記の文章で「which in turn,」はどう訳せば良いでし…


ようやっとここまででLesson4が終わった…(ヽ'ω`)
勉強になるけど長いなw