Cho phép người dùng thay đổi mật khẩu đã hết hạn thông qua kết nối máy tính từ xa


13

THÔNG TIN:

  • Tôi có một tình huống buộc phải sử dụng máy chủ (Windows 2012 R2) KHÔNG phải là một phần của miền và KHÔNG có AD. Đây không phải là lựa chọn của tôi, không tối ưu, nhưng nằm ngoài tầm kiểm soát của tôi.

  • Tôi cũng có người dùng cục bộ kết nối với máy chủ này thông qua RDP và người dùng cục bộ có chính sách hết hạn mật khẩu.

  • Vì AD / Exchange không phải là một phần của bức tranh, người dùng không nhận được thông báo rằng mật khẩu của họ sắp hết hạn.

VẤN ĐỀ: Vấn đề là khi mật khẩu của người dùng đã hết hạn và họ cố gắng đăng nhập bằng Remote Desktop Connection. Nó không cho phép họ thay đổi mật khẩu của họ.

Tôi đã bỏ chọn "CHỈ cho phép kết nối từ các máy tính chạy Remote Desktop với Xác thực cấp mạng" từ phía máy chủ, vì vậy máy chủ KHÔNG yêu cầu NLA từ các phiên RDP đến.

Tuy nhiên, khi sử dụng Windows Remote Desktop Manager Manager, nó dường như đang buộc NLA.

Nếu tôi đang sử dụng Máy khách từ xa "Thiết bị đầu cuối", có một tùy chọn ở phía máy khách, để vô hiệu hóa bằng cách sử dụng "Xác thực cấp độ mạng". Nếu tôi vô hiệu hóa NLA thông qua máy khách Thiết bị đầu cuối và tôi kết nối với máy chủ, nó cho phép tôi thay đổi mật khẩu đã hết hạn của người dùng.

CÂU HỎI: Tôi đang đưa ra giả định, có lẽ không chính xác, chương trình Thiết bị đầu cuối chỉ nằm trên giao thức Windows Remote Desktop Connection và nếu bạn có thể vô hiệu hóa phía máy khách Xác thực cấp mạng thông qua chương trình Thiết bị đầu cuối, thì bạn cũng có thể vô hiệu hóa điều này thông qua Trình quản lý kết nối máy tính từ xa tích hợp trong Windows. Thật không may, tôi không thấy tùy chọn này trong GUI của trình quản lý kết nối và tôi không thấy bất kỳ tham số nào trong các tệp ".RDP" dành riêng cho NLA.

Nếu tôi nhấp vào "Giới thiệu" ở phía máy khách Trình quản lý kết nối máy tính từ xa, nó sẽ cho tôi biết rằng "Hỗ trợ xác thực cấp độ mạng". Từ ngữ khiến tôi tin rằng việc sử dụng nó là tùy chọn, nhưng một lần nữa, tôi thấy không có cách nào để tắt nó trong trình quản lý kết nối. BTW, trình quản lý kết nối cụ thể này là v10.


1
Tôi đã chỉnh sửa câu hỏi của bạn (tiêu đề cụ thể) để tập trung vào mục tiêu cơ bản của bạn, thay vì một phương pháp được đề xuất để đạt được mục tiêu. Xem vấn đề XY .
Tôi nói phục hồi Monica

Câu trả lời:


13

Bạn có thể giải quyết điều này bằng cách tiếp cận hai hướng:

1. Cài đặt vai trò RD Web Access và bật tùy chọn thay đổi mật khẩu từ xa

Các hướng dẫn sau đây được lấy từ bài viết trên woshub.com Cho phép người dùng đặt lại mật khẩu đã hết hạn thông qua RD WebAccess trong Windows Server 2012 :

Trong Windows 2012/2012 R2, một tùy chọn xuất hiện cho phép người dùng từ xa thay đổi mật khẩu của họ (hiện tại hoặc đã hết hạn) bằng cách sử dụng một trang web đặc biệt trên máy chủ RD Web Access. Mật khẩu sẽ được thay đổi như thế này: người dùng đăng nhập vào trang web đăng ký trên máy chủ với vai trò RD Web Access và thay đổi mật khẩu của mình bằng một hình thức đặc biệt.

Tùy chọn thay đổi mật khẩu từ xa có sẵn trên máy chủ với vai trò Truy cập Web Máy tính Từ xa (RD Web Access), nhưng nó bị tắt theo mặc định. Để thay đổi mật khẩu, mật khẩu script.aspx được sử dụng, được đặt trong C: \ Windows \ Web \ RDWeb \ Pages \ en-US .

  1. Để bật tùy chọn thay đổi mật khẩu, trên máy chủ có vai trò RD Web Access được cấu hình , hãy mở bảng điều khiển IIS Manager, đi tới [Tên máy chủ] -> Trang web -> Trang web mặc định -> RDWeb -> Trang và mở phần Cài đặt ứng dụng .

    nhập mô tả hình ảnh ở đây

  2. Trong khung bên phải, tìm tham số PasswordChangeEnables và thay đổi giá trị của nó thành true .

    nhập mô tả hình ảnh ở đây

  3. Bạn có thể kiểm tra cơ chế thay đổi mật khẩu đi đến trang web sau:

    https: //RDSServerName/RDWeb/Pages/en-US/password.aspx

    nhập mô tả hình ảnh ở đây

  4. Bây giờ khi cố gắng kết nối với máy chủ RD Web Access bằng mật khẩu đã hết hạn, người dùng sẽ được chuyển hướng đến trang web password.aspx và được đề nghị thay đổi mật khẩu.

    nhập mô tả hình ảnh ở đây

    Mẹo . Tính năng tương tự Windows Server 2008 R2 có thể trở nên khả dụng sau khi bạn cài đặt một bản vá đặc biệt - KB2648402 .


2. Bật lời nhắc thông báo cho người dùng hết hạn mật khẩu đang chờ xử lý

  1. Chạy gpedit.msctrên máy chủ RDSH để mở Chính sách nhóm cục bộ
  2. Cố định Computer Configuration\Windows Settings\Local Policies\Security Options
  3. Chỉnh sửa cài đặt Đăng nhập tương tác: Nhắc người dùng thay đổi mật khẩu trước khi hết hạn và chỉ định số ngày hợp lý, chẳng hạn như 14.
  4. Người dùng, bao gồm cả những người đã đăng nhập qua Remote Desktop, sẽ nhận được thông báo trước khi mật khẩu hết hạn.

Cảm ơn @twisty, tôi đã đề cập rằng việc cài đặt Vai trò Máy chủ Máy tính Từ xa cũng không phải là một tùy chọn. Tuy nhiên, đây là thông tin tuyệt vời cho người khác trong tình huống tương tự. Những gợi ý là một điều tốt để biết mặc dù!
guht

3
Sau đó, bạn không có lựa chọn nào khác ngoài việc vô hiệu hóa NLA trên máy chủ máy khách để cho phép họ thay đổi mật khẩu. Nguy hiểm thay, điều này làm giảm đáng kể tính bảo mật của các kết nối RDP.
Tôi nói phục hồi Monica

10

Hóa ra điều này được kiểm soát thông qua một thuộc tính chưa được liệt kê trong tệp cấu hình .RDP có tên là "enablecredsspsupport", bằng cách đặt giá trị này thành "0", nó tải trang đăng nhập trong phiên RDP và cho phép người dùng thay đổi mật khẩu đã hết hạn.

Cú pháp chính xác cần thiết trong tệp cấu hình .RDP là:

enablecredsspsupport: i: 0

Nếu bạn cần tham khảo thêm hoặc đọc tại đây: Sự chuyên chế của Xác thực cấp độ mạng và CredSSP


7
Điều này chỉ hoạt động nếu máy chủ không yêu cầu NLA. Mặt khác, bạn sẽ nhận được một thông báo nói rằng hỗ trợ cấp độ mạng được yêu cầu bởi máy tính từ xa nhưng không được hỗ trợ trên máy tính cục bộ. Bạn nên giải thích những gì thiết lập này thực sự làm, có thể trích dẫn một đoạn từ bài viết được liên kết.
simlev

1
Lưu ý: nhấp vào nút Lưu trong Remote Desktop Connection sẽ tạo tệp cấu hình Default.rdc. (Nhấp vào nút Lưu dưới dạng để xem tệp được lưu trong thư mục nào.) Đó là tệp cần chỉnh sửa nếu bạn muốn cài đặt này theo mặc định. Hoặc bạn có thể đặt nó trong một tệp .RDP khác mà bạn mở thủ công khi bạn cần.
Bampfer

3

Không có tùy chọn nào phù hợp với tôi vì tôi đã bật NLA. Đây là một cách để thay đổi nó thông qua PowerShell - toàn bộ câu chuyện về Cách thay đổi mật khẩu đã hết hạn của chính bạn khi bạn không thể đăng nhập vào RDP .

function Set-PasswordRemotely {
    [CmdletBinding()]
    param(
        [Parameter(Mandatory = $true)][string] $UserName,
        [Parameter(Mandatory = $true)][string] $OldPassword,
        [Parameter(Mandatory = $true)][string] $NewPassword,
        [Parameter(Mandatory = $true)][alias('DC', 'Server', 'ComputerName')][string] $DomainController
    )
    $DllImport = @'
[DllImport("netapi32.dll", CharSet = CharSet.Unicode)]
public static extern bool NetUserChangePassword(string domain, string username, string oldpassword, string newpassword);
'@
    $NetApi32 = Add-Type -MemberDefinition $DllImport -Name 'NetApi32' -Namespace 'Win32' -PassThru
    if ($result = $NetApi32::NetUserChangePassword($DomainController, $UserName, $OldPassword, $NewPassword)) {
        Write-Output -InputObject 'Password change failed. Please try again.'
    } else {
        Write-Output -InputObject 'Password change succeeded.'
    }
}

Đơn giản chỉ cần chạy Set-PasswordRemotelyvà nó sẽ hỏi bạn 4 câu hỏi - tên người dùng, mật khẩu cũ, mật khẩu mới, bộ điều khiển miền và thay đổi mật khẩu cho bạn. Nó cũng hoạt động từ PC không thuộc miền tham gia. Yêu cầu kết nối với DC.


bạn có thể sử dụng ECHO% LOGONSERVER% để có bộ điều khiển miền của mình, điều này và quyền hạn ở trên hoạt động rất tốt
kevinsky
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.