Để đọc hiểu bài viết này, bạn nên truy cập vào đường dẫn bên dưới để xem trước nội dung.
https://github.com/votinhthuong/bulk_users_in_active_directory
Đây là script viết bằng PowerShell tôi tham khảo trên mạng, sau đó edit lại (gần hết) để đáp ứng đúng nhu cầu của bản thân. Độ chính xác của script đã được kiểm chứng trên nhiều lần sử dụng, từ Windows Server 2008 tới 2016.
Câu hỏi đặt ra là, nếu script đã chạy ổn rồi, vậy dữ liệu đầu vào thì sao? Trong thực tế, ta phải tìm cách làm sao đó để lấy được danh sách nhân viên, sau đó tùy biến lại cho hợp lý rồi sử dụng. Nhưng nếu muốn test thử code với dữ liệu đầu vào là hàng trăm, hàng nghìn thì sao?
Ta vẫn phải chuẩn bị được một danh sách người dùng với tên đầy đủ của họ. Nhưng vấn đề về dấu tiếng Việt, các trường thông tin khác trong file CSV,… chẳng lẽ lại ngồi gõ tay?
Có nhiều cách để giải quyết các vấn đề vừa kể trên. Trong bài viết này, tôi chỉ nói qua một số vấn đề tôi gặp phải khi chuẩn bị tập dữ liệu đầu vào.
Vấn đề dấu tiếng Việt
Danh sách tôi nhận được là dạng bảng thô chỉ gồm tên nhân viên và các trường thông tin khác không có nhiều giá trị để sử dụng. Tôi chỉ muốn lấy ra giá trị Họ & Tên của người dùng ở dạng lọc bỏ dấu tiếng Việt. Liệu có cách nào đáp ứng được nhu cầu này không?
Có một cách để xử lý vấn đề này cực kỳ đơn giản, đó là sử dụng chính bộ công cụ gần như bị lãng quên trong Unikey – bộ gõ tiếng Việt phủ sóng 99,9999% các hệ máy tính.
Một lưu ý nhỏ là khi Copy, Cut và Paste trong Excel (hoặc Word), ta nên chọn Paste Special để kết quả trả về đúng nhu cầu.
Cụ thể, tôi chỉ muốn lấy ra giá trị text thôi, thì có thể chọn vào Values and number formats.
Quay trở lại vấn đề lọc dấu tiếng Việt, sau khi có được danh sách các cột Họ và Tên như mong muốn, ta quét chọn tất cả các dòng và nhấn Ctrl + C để copy nó vào clipboard của Windows.
Sau đó, tìm tới công cụ gõ tiếng Việt là Unikey, chọn vào menu Công cụ.
Trong cửa sổ UniKey Toolkit, bạn tick vào dòng Loại bỏ dấu và nhấn nút Chuyển mã.
Nếu thấy bảng thông báo như bên dưới, thì quá trình chuyển đã thành công.
Quay trở lại file CSV, chọn Paste Special và chọn theo hướng dẫn bên trên để dán dữ liệu văn bản không dấu tiếng Việt ra.
Vấn đề cắt ghép string
Một điều ta thường thấy trong các tài khoản người dùng đăng nhập máy tính là sẽ theo dạng alias. Ví dụ VÕ TÌNH THƯƠNG thì sẽ set alias là thuongvt. Vậy làm sao để với tập dữ liệu mẫu như trong bài viết này, tôi có thể kết nối tên và các chữ cái đầu của họ và tên đệm của người dùng lại?
Có nhiều cách làm nhưng tôi thường sử dụng nhất là kết hợp thêm một đoạn code Visual Basic ngắn sau đây để tạo ra 1 hàm riêng.
Đầu tiên, vào Excel và chọn menu File -> Options. Trong bảng mới xuất hiện, chọn vào Customize Ribbon bên trái và đánh dấu tick vào Developer bên phải.
Sau đó, quay trở lại file CSV và chọn vào thẻ Developer mới xuất hiện, chọn tiếp Visual Basic hoặc nhấn Alt+F11 để mở.
Trong cửa sổ mới, nhấn Insert -> Module để xuất hiện cửa sổ add code. Nhập vào đoạn code bên dưới và nhấn Save để lưu lại:
Function
GetFirstLetters(rng
As
Range)
As
String
'Update 20140325
Dim
arr
Dim
I
As
Long
arr = VBA.Split(rng,
" "
)
If
IsArray(arr)
Then
For
I = LBound(arr)
To
UBound(arr)
GetFirstLetters = GetFirstLetters & Left(arr(I), 1)
Next
I
Else
GetFirstLetters = Left(arr, 1)
End
If
End
Function


