snapが怪しい…

イメージ
メインマシンの Ubuntu26.04が固まる 通常のUpdateを行なって、再起動が必要というので再起動を実施。 gdmのログイン画面は表示される ユーザ選択 パスワード入力 デスクトップに切り替わる途中で固まる マウスは動作せず キーボードは反応する あれ?タイミングの問題かな?と思い再度実施するが、改善はしない。 どうやら最後のUpdateが問題っぽい。 ということで、GRUBメニューからSafe Mode(Netoworkあり+root)で起動する 記憶では、Linux-Kernel関係が7.0.0-29に上がっていた表示を見ているので、前の7.0.0-28に戻す。 改善せず ちなみにメインマシンの環境は Ubuntu26.04(64GB) + GeForce3060(8GB) + デュアルディスプレイ SSD(1TB+2TB) , HDD(4TB)という構成 一応、sshでの接続はできるので、MacBookからリモートでこの状況のログを確認しながら作業する。 ログを渡してGeminiに確認するが、nvidiaのドライバと、kernel7.0.0-29の問題と指摘される。 まぁ過去にもアップデート後にドライバ入れ直すことは多々あったので、またかぁ…という感じ。 そこで、open版に入れ直したり、バージョン変えたり…。 どれもだめ。 結局3時間ほど粘ったが改善せず。

現場で書き換え…

ログインスクリプトでエラー

前回、マイクロソフトのサンプルに問題があって、修正が必要と書いたのだけれど、現場でテストしてみると、さらにエラーが発生する。


strGroups = LCase(Join(CurrentUser.MemberOf))

今度は、この記述だ・・・。
どうやら、ユーザのデータを引いた時のOUやグループの設定状況でデータ個数が配列で返らない場合に、うまくjoinできていないらしい。
そこで、

'strGroups = LCase(Join(CurrentUser.MemberOf))
if IsArray(CurrentUser.MemberOf) then
   strGroups = LCase(join(CurrentUser.MemberOf))
else
   strGroups = LCase(CurrentUser.MemberOf)
End if
てな感じで、配列かどうかで処理を分ける必要があるということが判明。
その場で、書き換えてテストしなければならない程の、逼迫ぶりで…。疲れましたゎ。

でも、これで何とか動作するようになり、OKです。
念の為、全て記述しておこう。
Const MANAGER_GROUP = "cn=manager"
Const SUPPORT_GROUP = "cn=support"
'Const STAFF_GROUP   = "cn=staff"
Set wshNetwork = CreateObject("WScript.Network")
'homeはプロファイル設定で掴ませることにするのでコメントアウト
'wshNetwork.MapNetworkDrive "i:" , "\\dc01\home$\" & wshNetwork.UserName
wshNetwork.MapNetworkDrive "s:" , "\\dc01\staff"
Set ADSysInfo = CreateObject("ADSystemInfo")
Set CurrentUser = GetObject("LDAP://" & ADSysInfo.UserName)
'strGroups = LCase(Join(CurrentUser.MemberOf))
if IsArray(CurrentUser.MemberOf) then
   strGroups = LCase(join(CurrentUser.MemberOf))
else
   strGroups = LCase(CurrentUser.MemberOf)
End if
If InStr(strGroups, MANAGER_GROUP) Then
    wshNetwork.MapNetworkDrive "m:" , "\\dc01\manager"
'    wshNetwork.MapNetworkDrive "n:" , "\\dc01\support"
End If
If InStr(strGroups, SUPPORT_GROUP) Then
    wshNetwork.MapNetworkDrive "n:","\\dc01\support"
       
End If

度重なる仕様変更

ちなみに、先のスクリプトは、前回とは後半部分が異なっている。
これは、作業途中で現場から、このドライブは共有して欲しくないとか…。
この場で、言うかよ〜! って話です。

まあ、今回導入したところは、基本的にネットワークのちゃんとした利用の仕方を知らないままなんとなく使ってきたという所もあり、いろいろな話をする中で、だったら…こうして欲しい。とか、こんな風に使えれば…みたいな話が出てくるので、利用している人たちの感性はまともと言えるかな。
結局、これまで管理していた人が、そういった情報を吸い上げず、こちらから提供しないことからうまく回っていなかったのかなぁと…。

そんなことを思いながらも、依頼主に確認をし、ドライブマッピングとユーザの関係を変更することに。導入作業前にも確認しているんだけどね〜。

ついでにバッチも実行

ログオンスクリプトには、もう1つ加えておくことにした。
もちろん、サーバは時刻合わせを行なっているんだけど、クライアントがずれてもらっては困る。といってデフォルトの時刻合わせは馬鹿すぎる。

そこで、nettime.batを作成。中身は簡単なもんです。以下の通り。
net time /domain:%userdnsdomain% /set /y
全クライアントが、ログイン時に実行するように設定しておきます。
これで、サーバとの同期は完了するので、困ることはございません。

いろいろと、検討したけどなるべくシンプルに運用したいので、この程度でやめておこうと思っています。

ふう、ドキュメントの作成もあるので、時間取られてなかなかBlogの更新ができませんなぁ
ちうことで、もう少し、今回手間取ったところあたりをまとめておきたいと思います。




コメント

このブログの人気の投稿

MEGAにも弱点があった?

Ubuntu24.04 でGUIが死んだ

VirtualBoxでUSBを使う方法が分かった!