sambaで作ったActive DirectoryではGet-ADDomainコマンドなどはエラーになる

sambaで作ったActive Directoryサーバ環境で、Windows ServerからPowerShellのGet-ADDomainコマンドを実行してみたところエラーとなった

PS C:\Users\administrator.ADSAMPLE> Get-ADDomain
Get-ADDomain : Active Directory Web サービスが実行されている状態で既定のサーバーを検索することはできません。
発生場所 行:1 文字:1
+ Get-ADDomain
+ ~~~~~~~~~~~~
    + CategoryInfo          : ResourceUnavailable: (ADSAMPLE:ADDomain) [Get-ADDomain], ADServerDownException
    + FullyQualifiedErrorId : ActiveDirectoryServer:1355,Microsoft.ActiveDirectory.Management.Commands.GetADDomain

PS C:\Users\administrator.ADSAMPLE>

サーバ名を指定すればいけるかな?と「Get-ADDomain -Server サーバ名」にしてもエラー

PS C:\Users\administrator.ADSAMPLE> Get-ADDomain -Server adsample.local
Get-ADDomain : サーバーと通信できません。サーバーが存在しないか、現在ダウンしているか、サーバー上で Active Directory Web サービスが実行されていない可能性があります。
発生場所 行:1 文字:1
+ Get-ADDomain -Server adsample.local
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ResourceUnavailable: (:) [Get-ADDomain], ADServerDownException
    + FullyQualifiedErrorId : ActiveDirectoryServer:0,Microsoft.ActiveDirectory.Management.Commands.GetADDomain

PS C:\Users\administrator.ADSAMPLE>

今度は「Active Directory Web サービスが実行されていない」ことがエラーの原因とされている。

Active Directory Web サービス について確認すると、どうやらsamba では提供されていないようだ。

2021年4月13日に作成されたsamba wikiのページ「ADWS / AD Powershell compatibility」に、「Samba does not support many of the AD PowerShell commands that manipulate AD objects,」とある

そこによると、2016年頃に「samba-adws」というPowerShellコマンドを使えるようにするプロジェクトが立ち上がって、開発中とのこと。

masterブランチの最終更新は2018年12月であるが、「garming-main」ブランチを見ると、2024年9月頃までなんかやっていたようで、それは https://github.com/GSam/samba-adws にておもに開発してたようで、それは https://github.com/GSam/samba で公開されているパッチ版で利用できるようだ

ただ、どちらにせよ、1年以上更新はされていないようだ

このため、PowerShellのActive Directory関連のコマンドレット群はsamba環境で使用できない、ということになるようだ

Ryzen 5 3500U環境でnested esxiを作ろうとしたらディスクが見えない

GMKtec NucBox G10 mini にESXi8 Freeをインストールして使っているんだけど、ESXi 7からESXi 8へのバージョンアップ手順を確認したくて、nested esxi環境を作ろうとした・・・

仮想マシンを[その他]-[VMware ESXi 7.x]で作成して

仮想マシンのCPU設定は詳細を開いて「ハードウェア仮想化」「IOMMU」「パフォーマンスカウンター」にチェックを入れて

SCSIコントローラは「VMware Paravirtual(PVSCSI)」で、ディスクはscsi0 で接続して作成

これでインストールを進めると選択できるディスクがない

この状態で、AlmaLinux 9.7のISOで起動すると普通にインストールできて起動してくる。

いろいろ悩んだ結果・・・

「IOMMU」と「パフォーマンスカウンター」のチェックを外してみたところ

ディスクが見えるようになりました

Intel N97環境でNested ESXiをインストールした際は、IOMMIとパフォーマンスカウンターにチェックが入っていてもディスクを認識してくれたのに、Ryzen 5 3500U環境ではダメなようです。

vSphere上の仮想マシンに物理サーバのBIOS情報を見せる

vSphere上の仮想マシンは、vSphere仮想基盤が提供している仮想のBIOS情報を参照している

この状態だと、物理サーバのBIOS内にあるキー情報などが読み取れないため、OEM版Windowsライセンスの認証が行えない。

これを解消するために「SMBIOS.reflectHost=TRUE」という設定を入れる、という話がある

DELLでも「Dell PowerEdgeシステムでROKメディアを使用するためのハイパーバイザーを準備する」にて vmxファイルにsmbios.reflectHost = TRUE を追加する、と記載している

他にBIOS情報を仮想マシンに反映するための設定ってあるのか?と探してみると「How to Pass Host Hardware Information to a VMware Workstation VM」に下記の様な記述が

I powered off the VM and used Notepad to add these three lines to the end of the VMX file:

SMBIOS.reflectHost = “TRUE”
SMBIOS.noOEMStrings = “TRUE”
smbios.addHostVendor = “TRUE”

SMBIOS.noOEMStrings 設定について調べると、例えば富士通/エフサスの出している「VMware vSphere 9 ソフトウェア説明書」の”PRIMERGY添付のWindows OS メディアの使用」の項目に、smbios.reflectHost=TRUE と SMBIOS.noOEMStrings=TRUE を追加する、と記載している。

他に調べると https://github.com/magliocchetti/SafeExamPwner/blob/main/AddToYourVmxFile.txt を発見

SMBIOS.reflectHost = "TRUE"
SMBIOS.assettag = "INTEL"
SMBIOS.useShortSerialNumber = "TRUE"
SMBIOS.noOEMStrings = "TRUE"
SMBIOS.addHostVendor = "TRUE"

これらをTRUE/FALSE設定していって状況を確認

lshwコマンドの出力結果

標準状態はコレ

localhost.localdomain
    description: Computer
    product: VMware20,1
    vendor: VMware, Inc.
    version: None
    serial: VMware-56 4d e4 49 78 d4 97 14-30 0a 2d e4 84 66 f9 db

SMBIOS.reflectHost = “TRUE” だけを設定

localhost.localdomain
    description: Computer
    product: NucBox_G10
    vendor: GMKtec
    version: None
    serial: Default string

注:GMKtec NucBox_G10 にはシリアルがちゃんと設定されていないのでこんな値になっている

SMBIOS.useShortSerialNumber = “TRUE”だけを設定

localhost.localdomain
    description: Computer
    product: VMware20,1
    vendor: VMware, Inc.
    version: None
    serial: VMWVk3kSXjUlxQwCi3khGb52w

SMBIOS.reflectHost = “TRUE” と SMBIOS.useShortSerialNumber = “TRUE” を設定

localhost.localdomain
    description: Computer
    product: NucBox_G10
    vendor: GMKtec
    version: None
    serial: Default string

このことから「SMBIOS.useShortSerialNumber」はVMwareが生成するserialに関する設定であるため、SMBIOS.reflectHost = “TRUE” を設定した際には効果がないと判断できる

SMBIOS.noOEMStrings , smbios.addHostVendor, SMBIOS.assettag については、試験した環境では lshw 上で有意な変化が見られなかった。(一部のUSBバスの番号が変わったりしたけど)

結論としては、基本的には「SMBIOS.reflectHost = “TRUE” 」を設定するだけで問題ない、ということになるかと思う


2026/02/20追記

ESXiをインストールする時にいろいろトラブルがあった影響で知った「localcli hardware platform get」コマンドで関連する情報が見れると知って試してみた

標準状態

SMBIOS.assettag = “TEST”だけ設定すると、「BIOS Asset Tag」に設定した文字列が入る

SMBIOS.noOEMStrings = “TRUE”とSMBIOS.assettag = “TEST”を設定では、変化無し

SMBIOS.noOEMStrings = “TRUE”、SMBIOS.addHostVendor = “TRUE”、SMBIOS.assettag = “TEST”を設定でも変わらず

上記3つに SMBIOS.useShortSerialNumber = “TRUE” を追加すると、”Serial Number”の文字列が変わる

ここにSMBIOS.reflectHost=TRUEを追加すると、”Product Name”,”Vendor Name”, “Serial Number”が物理サーバ由来の値に置き換わるが、”BIOS Asset Tag”については設定値を引き継いでいる

今度は逆にいくつかFALSEに変更

SMBIOS.noOEMStrings と SMBIOS.useShortSerialNumbeをFALSEとし、SMBIOS.reflectHostとSMBIOS.addHostVendor はTRUEのままとした場合、reflectHostの設定が最も優先されているので、状況に変化がない

SMBIOS.reflectHostだけTRUE(他はfalse)としても変化はない

SMBIOS.noOEMStrings と SMBIOS.addHostVendor はESXi 7.0以降では活用されていない設定なのか?

vCenterに作成したユーザのパスワード有効期限はデフォルト90日間

vSphere 8.0環境で、vCenter上に作成した新規ユーザのパスワード有効期限は、標準設定のままだと90日間となっている。

バックアップ専用に新規ユーザを作成する場合など、特殊なユーザに対してだけ、有効期限設定を無効化したい場合は、VCSA仮想マシンに対してsshログインして、設定を行う必要がある。

ドキュメント:vSphere IaaS Control Plane 7.0 「dir-cli コマンド リファレンス

(1)VCSA仮想マシンにsshでログイン

sshでアクセスし、rootユーザでログイン

(2)shellモードに移行

ログインすると「Command>」というプロンプト
そこに「shell」と入力し、UNIXコマンドが利用できるようにする

Connected to service

    * List APIs: "help api list"
    * List Plugins: "help pi list"
    * Launch BASH: "shell"

Command> shell
Shell access is granted to root
root@vcsa [ ~ ]#

(3)dir-cliコマンドで現在のアカウント状態を確認

/usr/lib/vmware-vmafd/bin/dir-cli user find-by-name –account アカウント名 –level 2
「Password never expires:」が「FALSE」となっているとパスワード有効期限設定が有効で「Password expiry」にある日付で無効化される状態です。

root@vcsa [ ~ ]# /usr/lib/vmware-vmafd/bin/dir-cli user find-by-name --account backupuser --level 2
Enter password for administrator@vsphere.local:
Account: backupuser
UPN: backupuser@VSPHERE.LOCAL
Account disabled: FALSE
Account locked: FALSE
Password never expires: FALSE
Password expired: FALSE
Password expiry: 874 day(s) 18 hour(s) 17 minute(s) 48 second(s)
root@vcsa [ ~ ]#

(4)dir-cliコマンドで パスワード有効期限を無効とします

/usr/lib/vmware-vmafd/bin/dir-cli user modify –account アカウント名 –password-never-expires

root@vcsa [ ~ ]# /usr/lib/vmware-vmafd/bin/dir-cli user modify --account backupuser --password-never-expires
Enter password for administrator@vsphere.local:
Password set to never expire for [backupuser].
root@vcsa [ ~ ]#

(5)dir-cliコマンドでアカウント状態が変更されたことを確認

/usr/lib/vmware-vmafd/bin/dir-cli user find-by-name –account アカウント名 –level 2
「Password never expires:」が「TRUE」となっているとパスワード有効期限設定が無効です
「Password expiry:N/A」と有効期限も未設定となっています

root@vcsa [ ~ ]# /usr/lib/vmware-vmafd/bin/dir-cli user find-by-name --account backupuser --level 2
Enter password for administrator@vsphere.local:
Account: backupuser
UPN: backupuser@VSPHERE.LOCAL
Account disabled: FALSE
Account locked: FALSE
Password never expires: TRUE
Password expired: FALSE
Password expiry: N/A
root@vcsa [ ~ ]#

ちなみにlevel 2オプションなしで実行した場合は下記情報しかみれません

root@vcsa [ ~ ]# /usr/lib/vmware-vmafd/bin/dir-cli user find-by-name –account backupuser
Enter password for administrator@vsphere.local:
Account: backupuser
UPN: backupuser@VSPHERE.LOCAL
root@vcsa [ ~ ]#

LinuxでのUI日本語文字化け時のパッケージメモ

RHEL系

OSの言語対応「sudo dnf install glibc-langpack-ja」

RHEL7ぐらいまでフォント対応「yum install vlgothic-fonts vlgothic-p-fonts」

RHEL8以降のフォント対応「sudo dnf install google-noto-cjk-fonts-common google-noto-sans-cjk-ttc-fonts google-noto-serif-cjk-ttc-fonts」

Debian/Ubuntu系

OSの言語対応「sudo apt install language-pack-ja firefox-locale-ja」

フォント対応「sudo apt install fonts-arphic-uming fonts-takao-gothic」

古めのフォント対応「sudo apt install fonts-arphic-uming fonts-takao-pgothic」(パッケージ名が変わった)

このblogでの関連記事

Zentyalを日本語で使う場合の設定手順

armbianで起動したchromiumが文字化けする

最小インストールのRHEL7環境で文字化けせずにNetBackup管理画面を表示するために必要なパッケージ

Windows 11 Insider Preview環境でWSLg経由で起動したUbuntu 20.04のfirefoxが日本語文字化けする