Đặt hậu tố UPN mặc định để tạo người dùng mới trong Active Directory


12

Có cách nào để đặt hậu tố UPN mặc định để tạo người dùng mới một Active Directory không?

Ví dụ: nếu tôi có corp.mydomain.com làm miền AD của mình và tôi đã thêm hậu tố UPN thay thế trong Tên miền và Tín thác chỉ là mydomain.com, có cách nào để tên miền đó được mặc định khi tạo mới không người dùng?

Tôi biết tôi chỉ có thể tạo một người dùng mẫu và sau đó khi tôi sao chép nó, nó sẽ có hậu tố mặc định đúng, nhưng chỉ tò mò liệu có một cài đặt ẩn nào có thể kiểm soát điều này không.

Câu trả lời:


8

Không có cơ chế tài liệu nào mà tôi biết để thay đổi hậu tố UPN mặc định được chọn bởi Người dùng và Máy tính Active Directory. Tôi tin rằng công cụ này có dây cứng để lấy phần đầu tiên của thuộc tính "canonicalName" được xác định trên đối tượng "crossRef" cho miền được chỉ định trong "CN = Partitions, CN = Cấu hình, ..." trong khu rừng của bạn.

Người dùng và Máy tính AD tình cờ gặp khó khăn khi thực hiện việc này. Nếu bạn tạo tài khoản người dùng bằng các phương tiện khác (ví dụ: "NET USER ... / add") thì sẽ không có thuộc tính userPrincipalName nào được gán cho tài khoản. Hậu tố UPN mặc định thực sự chỉ là mặc định trong Người dùng và Máy tính AD, không phải là mặc định của chính dịch vụ thư mục.

Nếu bạn chạy vào bài viết Microsoft KB có tập lệnh trong đó chỉ cho bạn cách lập trình có được hậu tố UPN mặc định ( http://support.microsoft.com/default.aspx?scid=kb;en-us;Q269441 ), lưu ý rằng tập lệnh có một vài lỗi cú pháp trong đó (dòng 17 và 32 không đúng định dạng và srrNamingContext trên dòng 32 phải là strNamingContext). Tôi sẽ bao gồm một phiên bản cố định với một cải tiến nhỏ ở cuối bài này (nó sẽ hiển thị cho bạn tên của các OU riêng lẻ nơi các hậu tố UPN bổ sung có thể được xác định).

Tôi muốn được sửa chữa bởi một người "hiểu biết" hơn tôi, nhưng tôi không thấy cách nào để khiến Người dùng và Máy tính AD hành động khác đi.

' --- Get the naming contexts ----
Set RootDSE = GetObject("LDAP://RootDSE")
strNamingContext = RootDSE.Get("defaultNamingContext")
strConfigContext = RootDSE.Get("configurationNamingContext")

' -- Get the current domain name --
Set oDomain = GetObject("LDAP://" + strNamingContext)
strDomainName = oDomain.Get("name")

Set oPartition = GetObject("LDAP://CN=Partitions," & strConfigContext)

'-- Get the DNS name of the domain --
oDomain.GetInfoEx Array("canonicalName"), 0
strCanonical = oDomain.Get("canonicalName")
strDNSName = Left(strCanonical, Len(strCanonical) - 1) 'clip off "/"

'-- Display the default UPN suffix
wscript.echo strDNSName

'-- Get the defined upnSuffixes --
suffixes = oPartition.GetEx("UPNSuffixes")
For Each upnSuffix In suffixes
  wscript.echo upnSuffix
Next
Set RootDSE = Nothing
Set oDomain =Nothing
Set oPartition = Nothing

' -- Get the upnsuffixes defined on organizational units --
Set ADOconn = CreateObject("ADODB.Connection")
Set ADOcom = CreateObject("ADODB.Command")

ADOconn.Provider = "ADsDSOObject"
bstrADOQueryString = "<LDAP://" + strNamingContext + ">;(objectcategory=organizationalUnit);upnsuffixes,ADsPath;subtree"
wscript.echo bstrADOQueryString 
ADOconn.Open
ADOcom.ActiveConnection = ADOconn

ADOcom.CommandText = bstrADOQueryString
ADOcom.Properties("Page Size") = 99

Set objRS = ADOcom.Execute

While Not objRS.EOF
   If Not IsNull(objRS.Fields("upnSuffixes")) Then
    upnsuffixes = objRS.Fields("upnSuffixes")
    For Each upnsuffix In upnsuffixes
        wscript.echo objRS.Fields("adsPath") & " - Suffix: " & upnsuffix
    Next
   End If

   objRS.MoveNext
Wend

Set objRS = Nothing
Set ADOcom = Nothing
Set ADOconn = Nothing

Tôi đã hy vọng có một số mục đăng ký hoặc một cái gì đó. Tôi sẽ đánh dấu điều này là chính xác nếu không có ai khác bấm chuông với bất cứ điều gì trong 24 giờ tới.
Thương hiệu Adam

Trong trường hợp của chúng tôi, chúng tôi chạy tập lệnh hàng ngày để kiểm tra UPN của từng người dùng và nếu họ không đặt tên tiêu chuẩn, nó sẽ thay đổi họ thành tiêu chuẩn. Kịch bản này xem xét nhiều thuộc tính và sửa chúng nếu cần.
KAPes

@KAPes: Đó là một ý tưởng gọn gàng. Tại các trang web nơi nhiều quản trị viên AD được ủy quyền tạo tài khoản người dùng, tôi thường triển khai các tập lệnh để thực hiện hầu hết các công việc cung cấp. Tuy nhiên, tôi có thể thấy kịch bản lên một số truy vấn LDAP để tạo "Hey, dummy-- bạn đã cung cấp sai này!" email (hoặc, rõ ràng, để sửa chữa mọi thứ tự động khi máy tính có đủ thông tin để thực hiện tự động).
Evan Anderson

Câu trả lời của Evan vẫn đúng. Một số người cũng đã đề xuất thiết lập thuộc tính uPNSuffixes trên OU. Điều này chỉ đơn giản sẽ ghi đè danh sách uPNSuffixes được đặt trên tên miền nhưng vẫn sẽ mặc định là canonicalName của tên miền.
charleswj81

8

Điều này không thể được thực hiện theo như tôi biết (câu trả lời của Evan vẫn đúng 4 năm sau).

Điều đó nói rằng, tôi đã viết một kịch bản chạy trong trình lập lịch tác vụ cứ sau vài giờ tại nhiều khách hàng. Nó tìm kiếm một hậu tố cụ thể (mặc định trong hầu hết các trường hợp) và chuyển nó sang một hậu tố khác. Kịch bản có trên blog của tôi nhưng tôi cũng sẽ đăng nó ở đây :)

Import-Module ActiveDirectory


Get-ADUser -Filter {UserPrincipalName -like "*@ad.example.com"} -SearchBase "OU=SomeUserOu,DC=ad,DC=example,DC=com" |
ForEach-Object {
    $UPN = $_.UserPrincipalName.Replace("ad.example.com","example.com")
    Set-ADUser $_ -UserPrincipalName $UPN
}

Trong trường hợp này, người dùng được tạo bằng ad.example.comhậu tố UPN sẽ được cập nhật với example.comhậu tố.


Tôi đã suy nghĩ về việc sử dụng các thông báo thay đổi AD để thực hiện loại điều này trong thời gian thực nhưng điều đó sẽ là quá mức ngớ ngẩn.
Evan Anderson

1
UPN ngày càng trở nên quan trọng hơn với các yêu cầu O365 và dirsync cho ADFS SSO. Bạn sẽ nghĩ rằng bây giờ sẽ có thứ gì đó được nướng :)
MDMarra

Đôi khi tôi nghĩ tôi là người duy nhất thực sự sử dụng sản phẩm của Microsoft. > mỉm cười <Tôi đã sẵn sàng để thực hiện triển khai Office365 đầu tiên của mình trong vài tuần tới (hoàn thành trao đổi tại chỗ / trao đổi tại chỗ) vì vậy tôi sẽ sớm được trải nghiệm tất cả niềm vui của ADFS SSO và DirSync đủ.
Evan Anderson

Tôi không trực tiếp làm O365 (chúng tôi có một vài nhân viên collab), nhưng tôi đã thực hiện một số công việc Intune sử dụng cùng một đối tượng thuê Azure. Tôi hy vọng chuyến đi đầu tiên của bạn suôn sẻ hơn chuyến đi của tôi :)
MDMarra

Thêm một lưu ý rằng .Replace có phân biệt chữ hoa chữ thường, vì vậy nếu UserPrincipalName là "username@AD.Example.com", thì nó sẽ không khớp với chuỗi "ad.example.com". Điều này có thể thêm phương thức .toLower () như thế này trước: $ UPN = $ _. UserPrincipalName.toLower (). Thay thế ("ad.example.com", "example.com")
Chad Rexin

0

Bạn có thể đặt các Hậu tố UPN được phép, bằng cách vào ADSIEDIT.MSC, cắm xuống Cấu trúc OU, nhấp chuột phải vào OU (trong cấu hình mặc định) và chỉnh sửa Thuộc tính OU. Thuộc tính OU để chỉnh sửa là UPNSuffixes. Tuy nhiên, điều này không ảnh hưởng đến UPN mặc định được gán cho người dùng được tạo trong OU đó. Thêm Suffix UPN mong muốn vào danh sách này. Tiếp theo, tạo một người dùng mẫu để Sao chép. Nhấp chuột phải vào OU, tạo người dùng mới để sử dụng làm mẫu, gán Hậu tố UPN chính xác, sau đó nhấp chuột phải vào người dùng sau khi đã tạo và vô hiệu hóa tài khoản. Để tạo người dùng mới, nhấp chuột phải vào người dùng mẫu và sao chép .. điền vào các trường đã chọn và người dùng mới sẽ được tạo bằng UPN thích hợp. Tạo nhiều người dùng mẫu cho các UPNS khác nhau. Hoặc, nếu nghi ngờ, hãy chuyển sang powershell.


-3

Trên thực tế, bạn có thể chạy trong Mô-đun Active Directory cho Powershell: Set-ADOrganloymentUnit "OU = XXX, DC = Domain, DC = com" -Add @ {upnsuffixes = "@ UPNSuffix.com".

Hoặc bạn có thể sử dụng "Get-ad OrganloymentUnit" với công tắc -Filter và đường ống dẫn đến 'Set-ADOrganloymentUnit -Add @ {upnsuffixes = "@ UPNSuffix.com"'

Tôi đã tìm thấy điều này sau khi tìm kiếm khá lâu, vì vậy tôi hy vọng điều này sẽ giúp được bất cứ ai.


Câu hỏi là về việc đặt hậu tố mặc định để thêm người dùng mới, không thêm hậu tố lên.
austinian

-4

Bài viết kỹ thuật này mô tả cách thêm hoặc xóa hậu tố UPN trong miền của bạn:

http://technet.microsoft.com/en-us/l Library / cc756018 (WS.10) .aspx

Cũng có một cuộc thảo luận về nó ở đây:

http://technet.microsoft.com/en-us/l Library / cc739093 (WS.10) .aspx

Tôi không thể bảo đảm điều đó vì tôi chưa bao giờ phải làm điều này, nhưng có một điều khiến tôi bận tâm. Nếu bạn sẽ làm điều này, bạn sẽ cần phải nhớ rằng trong khi AD sẽ hoạt động chính xác, thì điều tương tự có thể không xảy ra đối với bất kỳ phần mềm bên thứ 3 nào bạn có, có thể cho rằng hậu tố UPN luôn là tiêu chuẩn . Xem xét hậu quả cẩn thận trước khi thực hiện thay đổi, nói cách khác.


2
Có, tôi biết cách thêm hậu tố UPN. Câu hỏi của tôi là về việc đặt hậu tố mặc định để thêm người dùng mới.
Thương hiệu Adam
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.