Tìm thấy chủ đề này đã giúp tôi có được những gì tôi muốn. Để có được bất kỳ thuộc tính người dùng AD vào các biến môi trường. Kịch bản lệnh này lấy tất cả các thuộc tính mong muốn từ người dùng đã đăng nhập và đặt một biến môi trường tương ứng. Tôi đã thêm tiền tố vào các biến nhưng đó là tùy chọn, vì vậy tên biến trở thành "AD [tên thuộc tính]". Các thuộc tính là lựa chọn của bạn, chỉ cần thêm hoặc xóa thuộc tính của bạn sau -attr. Không hữu ích lắm cho các thuộc tính đa trị. Giá trị cuối cùng (một) đi vào biến môi trường.
Kịch bản này là cục bộ của cmd.exe hiện tại
for /F "tokens=1,* delims=: " %%A in ('dsquery * domainroot -l -filter "(&(objectCategory=Person)(objectClass=User)(sAMAccountName=%USERNAME%))" -attr adminDescription employeetype company department physicalDeliveryOfficeName street title mail') do set AD%%A=%%B
Để có được các biến môi trường toàn cầu trong windows, chúng ta có thể sử dụng "setx" trong windows 7. (Đối với bản ghi có lẽ ... nhưng chậm hơn nhiều.)
for /F "tokens=1,* delims=: " %%A in ('dsquery * domainroot -l -filter "(&(objectCategory=Person)(objectClass=User)(sAMAccountName=%USERNAME%))" -attr adminDescription employeetype company department physicalDeliveryOfficeName street title mail') do set AD%%A=%%B& setx AD%%A "%%~B" > NUL
: EDIT: một ký tự khoảng trắng ở cuối câu lệnh set trong ví dụ 2 khiến giá trị kết thúc bằng khoảng trống. Loại bỏ nó để sửa chữa. (Đặt %% A = %% B & setx ...) Cũng phát hiện ra rằng bạn phải xuất ít nhất hai thuộc tính để tập lệnh hoạt động chính xác.
Một hồi âm muộn, nhưng nếu nó có thể giúp bất cứ ai ngoài đó thì tôi rất vui.