Active Directoryユーザー名:なぜ正規名が異なるのですか?それらを均一にするために何かできますか?


10

私は、30台以下のPCでのWindowsログインに使用される仕事用Active Directoryネットワークの独学管理者です。私はこのシステムを、Microsoftの直接トレーニングを受けていない他の誰かから受け継いだため、いくつかのことで暗くなっています。

ネットワーク自体には、ドメインコントローラー、DNS、ファイル共有などとして機能する単一のWindows Server 2008 R2マシンがあります。ログインは正常に機能しますが、古いアカウントを無効にしているときにユーザーのリストを探し回っていましたが、よくわからないことに気付きました。

次に、いくつかのユーザーアカウントの例を示します。

  1. ログオン名:john
    名:John
    姓:Smith
    表示名:John Smith
    オブジェクトの正規名:domain.com/Users/john

  2. ログオン名:bob
    名:Bob
    姓:フランス語
    表示名:Bobフランス語
    オブジェクトの正規名:domain.com/Users/Bobフランス語

現在のドメインコントローラーは、Windows Server 2003を実行するために使用されていた別のドメインコントローラーから交換されました。最初のサンプルアカウントはServer 2003ボックスがDCのときに作成され、2番目は新しいServer 2008 R2ボックスがDCのときに作成されました。Canonical Nameが異なるのはなぜですか?

私は、Active Directoryブラウザのユーザーリストに、アカウントの半分が「firstname」、残りが「firstname lastname」という事実に悩まされています。

機能しているアカウントを壊すことなく、それらすべてを同じにするために何かをすることができますか?


ユーザーを実際にdomain.com/UsersOU に保存していますか?それとも単なる例ですか?
マティアスR.ジェッセン2014

はい-それらはすべてdomain.com/Users/にあり、いくつかのセキュリティグループも含まれています。これは悪い習慣ですか?それらを移動する必要がありますか?すべてを壊すことなくそれらを移動できますか?
evilspoons 2014

2
認証に単純なバインドを使用する外部アプリケーションがない限り、はい-それらを安全に移動できます-必要があります。既知のセキュリティグループからそれらを分離するために、グループポリシーアプライアンスをはるかに制御できます。私もこれをカバーするように回答を更新します
Mathias R. Jessen

2
これは、ADにあるオブジェクトの数と、それらをどのように整理するかによって異なります。一般に、OUに配置して整理し、GPOを適用することをお勧めします。既定のコンテナー(「ユーザー」など)をそのままにしておくことをお勧めします。
Massimo

回答:


8

Active Directoryは、個別の各属性の値がスキーマ定義。

Active Directoryユーザーとコンピューター(およびその他の多くのダイアログ)の「新しいユーザー」フォームの動作は、Windows Server 2003とWindows Server 2008 R2の間で大幅に変更されました。これがおそらく、一貫性がない理由です

PowerShellを使用して非システムアカウントを移動し、ユーザーを確認して、ユーザーの表示名を任意の名前に変更できます。

# Create new OU named RegularUsers
New-ADOrganizationalUnit -Name RegularUsers -Path "dc=domain,dc=com"

# Retrieve all users that are not critical system objects
$users = Get-ADUser -SearchBase "CN=Users,DC=domain,DC=com" -SearchScope OneLevel -Filter {-not(isCriticalSystemObject -like '*')}

# Go through each and move to the new OU
foreach($user in $users){
    Move-ADObject $user -TargetPath "OU=RegularUsers,DC=domain,DC=com"
}

# Retrieve all users in the new OU
$movedUsers = Get-ADUser -SearchBase "CN=Users,DC=domain,DC=com" -SearchScope OneLevel -Filter '*'

foreach($user in $movedUsers){
    # Test if Display Name and object Name is the same, if not - rename
    if($user.DisplayName -ne $user.Name)
    { 
        Rename-ADObject $user -NewName "$($user.DisplayName)" 
    }
}

最初のステップとして、ADUCですべてのユーザーアカウントを強調表示し、それらを別の場所にドラッグアンドドロップすることもできます。


2

オブジェクトのCN / DNは、ADとLDAPクエリで内部的にのみ使用されるため、それほど重要ではありません。エンドユーザー(および管理者)がそれを見ることさえほとんどありません。オブジェクトの完全なLDAPパスが含まれているため、オブジェクトを移動すると、実際には自動的に変更されます。

それを標準化したい場合は、副作用なしにこれを行うことができます。ユーザーが実際に関係している唯一のことは、彼らのログオン名で、長い間、あなたが変わらないとしてとしてそれを、彼らはいつものようにログオンしていきます。

これを変更するには、ADUCコンソールまたはPowerShellコマンドRename-ADObjectを使用できます。


2
アプリケーションとの統合に関しては、CN / DNが重要だと思います。通常、LDAPの場合と同様に、AD統合は通常は見つかりません。CN / DNが標準に準拠していると便利です。それもきれいに見えます:)実際にそれを変更する方法についての素晴らしい情報。
スティーブバトラー

1

dsmoveのコマンドでは、あなたのための正規名を変更することができるはずです。私はこれをテスト環境で実行しましたが、ライブ環境では行っていないため、注意して続行することをお勧めします。

また、準関連しているので、別のドメインコントローラーを実装して、唯一のDCがダウンした場合の頭痛を回避することをお勧めします。


ドメインとフォレストの機能レベルがServer 2008 R2である場合、古いServer 2003ボックスはセカンダリDCとして機能できますか、またはそのマシンのOSをアップグレードする必要がありますか?
evilspoons 2014

2
ドメイン/フォレスト内のすべてのDCに少なくともそのOSリリースがなければ、ドメイン/フォレストの機能レベルをバージョンXに上げることはできません。
マッシモ

@evilspoonsはい、できますが、massimoが言うように、そのためには2003ドメインレベルである必要があります。
スティーブバトラー

4
@SteveButler DFL / FFL 2008R2はレベル2008以降に戻すことができないので、「はい」は間違いなくここでの答えではありません
Mathias R. Jessen

了解しました。私の選択肢は、2003レベルでドメインを再構築する(起こらない)か、2003ボックスを2008 R2にアップグレードする(これもおそらく起こらない)、上司が新しいマシンにお金をかけるよりも、古いもの)。私は念のために何かがダイ... DOES、けれども余分必ず私たちのバックアップが良いです作ってあげる
evilspoons
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.