Saya membuat pengguna (lokal) untuk menjalankan layanan Windows sebagai. Saya punya alasan bagus untuk tidak ingin menggunakan LAYANAN JARINGAN, LAYANAN LOKAL, atau SISTEM LOKAL.
Saya membuat pengguna melalui net user foobar "Abcd123!" /add
- ini berfungsi dengan baik.
Pada titik ini, c:\users\foobar
tidak ada.
Jika saya membuat direktori home pengguna, sebelum pengguna masuk (atau, lebih tepatnya) atau layanan yang digunakan pengguna untuk memulai, Windows membuat profil pengguna di sebelah yang disebut c:\users\foobar-{gibberish/SID/whatever}
- ini bukan nama yang dapat diprediksi.
Saya memerlukan direktori home pengguna untuk memuat hal-hal seperti .ssh
direktori, a .gitconfig
- tools seperti itu (tidak terbatas pada tools itu) yang membuat asumsi bahwa itu akan menjadi orang yang menggunakannya, dan konfigurasi pengguna masuk ke dalam ~/...
. Biasanya, alat dari warisan Unix.
Pertanyaan aktual
Jadi - apakah ada cara terprogram (lebih disukai, PowerShell, atau out-of-the-box) untuk memberitahu Windows untuk membuat profil pengguna untuk pengguna lokal?
Atau, ada solusi lain?
Hal-hal yang belum pernah saya coba:
- NSSM start / pre hook yang menyalin file dari tempat lain ke direktori profil pengguna yang diharapkan ada pada saat ini berdasarkan Windows memulai layanan, membuat profil pengguna kemudian menyerahkan kontrol ke pembungkus NSSM yang menjalankan hook sebelum memulai.
- Mengatur variabel lingkungan USERPROFILE untuk layanan berada di tempat lain selain direktori profil pengguna yang sebenarnya. Ini menurut saya sebagai off-piste yang berbahaya tetapi juga bisa bekerja dengan baik.
Konteks lain:
- Windows Server 2016, pengalaman desktop.
- Tidak dapat menggunakan Core / Nano.
- Tidak ada direktori aktif yang sedang dimainkan. Tidak akan ada.
- Ini adalah pengguna lokal.
- Saya melakukan ini melalui Ansible, yang menggunakan PowerShell di bawah tenda untuk hal-hal Windows. Khususnya modul win_user , dengan Ansible 2.7.5.
- Saya tidak ingin membuat
C:\users\default
(yang setara dengan/etc/skel
), karena ada beberapa pengguna layanan yang berbeda dan satu ukuran tidak cocok untuk semua. Ini juga tidak mempengaruhi ketika profil pengguna dibuat, hanya apa yang akan ada di dalamnya ketika itu. - Saya menggunakan NSSM untuk mengelola layanan.
Hal yang sudah saya coba
- memulai layanan dan memungkinkan Windows untuk membuat direktori
- Saya tidak ingin melakukan ini, karena layanan ini membutuhkan rahasia sebelum memulai, dan jadi jika saya melakukan ini di dalam proses pembuatan gambar saya maka saya perlu membersihkannya, dan juga memastikan layanan saya tidak melakukan pekerjaan apa pun selama fase memanggang. Saya ingin menghindari kedua bit fiddly itu.
net user
dimiliki (mis./HOMEDIR
Atau/PROFILEPATH
)? . Lihatnet user /help
. Dari pemahaman saya (yang belum diuji), Anda dapat membuat direktori untuk pengguna, dan mengatur ini sebagai homedir dengan/HOMEDIR
sakelar.