Bir Windows hizmetinin çalışması için (yerel) bir kullanıcı oluşturuyorum. AĞ HİZMETİ, YEREL HİZMET veya YEREL SİSTEM'i kullanmak istememek için iyi nedenlerim var.
Ben kullanıcı üzerinden oluşturmak net user foobar "Abcd123!" /add
- bu iyi çalışıyor.
Bu noktada c:\users\foobar
yok.
Eğer ben hem de kullanıcı günlükleri (veya daha önemlisi) veya kullanıcı başlar yukarı için olduğuna servisten önce kullanıcının ana dizini oluşturmak denilen kapı yanındaki Windows kullanıcı profil oluşturur c:\users\foobar-{gibberish/SID/whatever}
bu öngörülebilir bir isim değil -.
Kullanıcının ana dizini bir .ssh
dizin, bir şey gibi .gitconfig
bu araçları (bu araçlarla sınırlı değildir) bunları kullanan bir kişi olacağı varsayımları yapmak ve böylece kullanıcı yapılandırma içeriyor ~/...
. Genellikle, bir Unix mirasından araçlar.
Gerçek soru
Peki - Windows'a yerel bir kullanıcı için kullanıcı profilini oluşturmasını söylemenin programlı (tercihen PowerShell veya kullanıma hazır komut satırı) yolu var mı?
Veya başka bir geçici çözüm var mı?
Henüz denemediğim şeyler:
- Bir NSSM başlat / ön kanca başka bir yerde o kullanıcı profili dizine kopyalar dosyaları umarım sayesinde bu noktada var Windows'un devreye almadan önce kancayı çalışan sarıcı sonra NSSM için teslim kontrolünü kullanıcı profili oluşturarak, hizmet başlangıç.
- Hizmetin USERPROFILE ortam değişkenini, gerçek kullanıcı profili dizininden başka bir yerde olacak şekilde ayarlama. Bu beni tehlikeli bir şekilde devreden çıkarıyor ama aynı zamanda işe yarayabilir.
Diğer bağlam:
- Windows Server 2016, masaüstü deneyimi.
- Core / Nano kullanılamıyor.
- Oyunda aktif bir dizin yok. Olmayacak.
- Bunlar yerel kullanıcılar.
- Bunu Windows şeyler için kaputun altında PowerShell kullanan Ansible üzerinden yapıyorum. Özellikle winible kullanıcı modülü, Ansible 2.7.5 ile.
- Bir
C:\users\default
(eşdeğer/etc/skel
) oluşturmak istemiyorum , çünkü birkaç farklı hizmet kullanıcısı var ve bir boyut hepsine uymuyor. Bu, kullanıcı profilinin ne zaman oluşturulduğunu da etkilemez, sadece olduğunda ne olacağını etkiler. - Hizmetleri yönetmek için NSSM kullanıyorum .
Denediğim şeyler
- hizmeti başlatma ve Windows'un dizini oluşturmasına izin verme
- Bunu yapmak istemiyorum, çünkü hizmet başlamadan önce sır gerektiriyor ve bu yüzden bunu görüntü pişirme sürecimde yaparsam, onları temizlemem ve ayrıca servisimin yapmadığından emin olmalıyım pişirme aşamasında herhangi bir çalışma. Bu iki bitten de kaçınmak istiyorum.
net user
(ör./HOMEDIR
Veya/PROFILEPATH
) olduğunu kontrol ettiniz mi? . Bkznet user /help
. (Test edilmemiş) anlayışımdan, kullanıcı için bir dizin oluşturabilir ve bunu/HOMEDIR
anahtarla homedir olarak ayarlayabilirsiniz .