Tôi đang tạo một người dùng (cục bộ) để dịch vụ Windows chạy. Tôi có lý do chính đáng cho việc không muốn sử dụng DỊCH VỤ MẠNG, DỊCH VỤ ĐỊA PHƯƠNG hoặc HỆ THỐNG ĐỊA PHƯƠNG.
Tôi tạo người dùng thông qua net user foobar "Abcd123!" /add
- điều này hoạt động tốt.
Tại thời điểm này, c:\users\foobar
không tồn tại.
Nếu tôi tạo thư mục chính của người dùng, trước khi người dùng đăng nhập (hoặc, thường xuyên hơn) hoặc dịch vụ mà người dùng sẽ khởi động, Windows sẽ tạo một hồ sơ người dùng bên cạnh c:\users\foobar-{gibberish/SID/whatever}
- đây không phải là tên có thể dự đoán được.
Tôi cần thư mục chính của người dùng để chứa những thứ như .ssh
thư mục, một .gitconfig
- công cụ như thế (không giới hạn ở những công cụ đó) đưa ra giả định rằng đó sẽ là một người sử dụng chúng và vì vậy cấu hình người dùng sẽ vào bên trong ~/...
. Thông thường, các công cụ từ một di sản Unix.
Câu hỏi thực tế
Vậy - có cách lập trình (tốt nhất là PowerShell hoặc dòng lệnh ngoài luồng) để báo cho Windows tạo hồ sơ người dùng cho người dùng cục bộ không?
Hoặc, bất kỳ cách giải quyết khác?
Những điều tôi chưa thử:
- NSSM start / pre hook sao chép các tệp từ nơi khác vào thư mục hồ sơ người dùng hy vọng tồn tại vào thời điểm này nhờ Windows khởi động dịch vụ, tạo hồ sơ người dùng sau đó trao quyền điều khiển cho trình bao bọc NSSM chạy hook trước khi khởi động.
- Đặt biến môi trường USERPROFILE cho dịch vụ ở một nơi khác ngoài thư mục hồ sơ người dùng thực tế. Điều này gây ấn tượng mạnh với tôi như là piste nguy hiểm nhưng cũng có thể hoạt động tốt.
Bối cảnh khác:
- Windows Server 2016, trải nghiệm máy tính để bàn.
- Không thể sử dụng Core / Nano.
- Không có thư mục hoạt động trong chơi. Sẽ không có.
- Đây là những người dùng địa phương.
- Tôi đang thực hiện việc này thông qua Ansible, công ty đang sử dụng PowerShell trong phần mềm dành cho Windows. Cụ thể là mô-đun win_user , với Ansible 2.7.5.
- Tôi không muốn tạo
C:\users\default
(tương đương/etc/skel
), vì có một vài người dùng dịch vụ khác nhau và một kích thước sẽ không phù hợp với tất cả. Điều này cũng không ảnh hưởng khi hồ sơ người dùng được tạo, chỉ những gì sẽ có trong đó khi có. - Tôi đang sử dụng NSSM để quản lý các dịch vụ.
Những điều tôi đã thử
- bắt đầu dịch vụ và cho phép Windows tạo thư mục
- Tôi không muốn làm điều này, vì dịch vụ yêu cầu bí mật trước khi khởi động, và vì vậy nếu tôi làm điều này trong quy trình nướng hình ảnh của mình thì tôi sẽ cần phải dọn sạch chúng, và cũng đảm bảo dịch vụ của tôi không làm bất kỳ công việc trong giai đoạn nướng. Tôi muốn tránh cả hai bit khó khăn đó.
net user
có (ví dụ/HOMEDIR
hoặc/PROFILEPATH
)? . Xemnet user /help
. Từ sự hiểu biết (chưa được kiểm tra) của tôi, bạn có thể tạo một thư mục cho người dùng và đặt thư mục này là homedir với công/HOMEDIR
tắc.