2009-03-06 9 views
1

Visual Studio (2008) yükleyicisi kullanılarak yüklenen bir Windows hizmetim var. Sistem olarak çalıştırılmaktan kaçınmak istedim, bu yüzden manuel olarak 1) bilgisayarda yeni bir Windows hesabı oluşturdum ve 2) kurulum sırasında \ kullanıcı adı ve şifreyi bilgisayar kullanıcı adı olarak giriyorum.Otomatik olarak yeni bir kullanıcı oluşturun ve Visual Studio Yükleyici'yi kullanarak Windows hizmeti yüklemesini sessiz bir şekilde kullanın

Bunun için çok az kullanıcı müdahalesine ihtiyaç duymak isterim, bu yüzden yeni bir Windows kullanıcısı oluşturmak ve bilgisayar adını, kullanıcı adını ve parolayı otomatik olarak vermek istiyorum.

Bunu nasıl başarabilirim?

cevap

-2

Bu, kullanıcının güvenliğini tehlikeye atar ve hizmet uygulaması buna izin veriyorsa, aynı zamanda kötü bir uygulamadır. Aynı zamanda mevcut güvenlik bilgilerini bozacaktır.

Bildiğim kadarıyla, her türlü windows hizmeti, arka plan görevi olması beklenen bir görev yürütüyor ve her zaman arka planda çalışıyor. Ve her zaman bu niyetle oluşturulur: arka plan görevini çalıştırır ve her zaman çalışır, bu nedenle yeni kullanıcı oluşturma gibi kullanıcı iznini (yani, kullanıcının bilmesi gereken) gerektiren her türlü tehlikeli eylem.

Yanılmıyorsam, her durumda, Windows hizmeti her zaman arka planda çalıştığı ve herhangi bir kullanıcı arabirimi olmadığı için hizmet uygulamanız her zaman bildirim olmadan yeni kullanıcılar oluşturacaktır. Bu nedenle uygulama sürdürülebilirlik tarafında, aynı zamanda tavsiye edilmez. Hata ayıklama bahsetmiyorum Windows hizmeti, çoğumuz için oldukça zordur.

+0

ben sürekli kullanıcı hesapları oluşturmak için benim hizmet için sormuyorum - Ben kurulum sırasında Hizmetimde * için bir kullanıcı hesabı * oluşturma hakkında soruyorum. Amacımın bir kısmı daha iyi bir güvenliğe sahip olmaktır, çünkü süper kullanıcılardan daha sınırlı ayrıcalıklara sahip bir kullanıcı oluşturabilirim. – pc1oad1etter

+0

Oh, bunu ilk sorunuzda söylemediniz. Bu oldukça kolaydır, sadece MSI kurulumunuzda özel eylemler oluşturun ve işiniz bitti. Bunların pek çok örneğini MSDN'de bulabilirsiniz. –

+0

Bu nasıl olur * * geçerli güvenlik bilgileri kırılır? Bu ifade çok anlamlı değil. Esasen bir hizmet hesabı yaratıyor. Bu alışılmadık değildir ve güvence altına alınabilir. Bu, masaüstüyle etkileşime girebileceği anlamına gelmiyor, sadece farklı bir haklar/kimlik bilgileri grubuyla çalışıyor. – Mick

0

"sc.exe" komutunu (WinXP ve daha yeni sistemlerde yüklü) çalıştırmak için MSI'nızda özel bir eylem oluşturun. Sc.exe'nin sistemde bulunmama ihtimalinden endişeleniyorsanız, MSI'nize ikili tabloya ekleyin veya ürünle birlikte yükleyin.

sc config the_service_name obj = theDomain \ johndoe şifre = :

MSI hizmetini oluşturduktan sonra

aşağıdaki (kendi kullanıcı/geçiş için değiştirme) çalıştırmak özel eylem var Ancak

StackOverflow'daki, düz metin olarak MSI doğrudan şifreyi depolamak bir son derece kötü bir fikir olduğuna dikkat edin.

Yukarıdaki tüm sc komutunu şifrelemek için kolay (ve basit) bir çözüm free tool CPAU'u kullanmaktır. Bu komutu (CPAU kullanarak) kendi sisteminizden şifreleyip, bu kodlanmış dizgiyi CPAU'ya geçirirsiniz (MSI'nıza dahil etmeniz veya sisteme kurulumunu yapmanız gerekir). CPAU, girdiğiniz dizenin kodunu çözecektir. Bu, yukarıdaki sc komutunun kodunu çözecek ve hizmette kullanıcı adı ve şifreyi daha güvenli bir şekilde ayarlayacaktır.

+0

Mick, Eğer doğru bir şekilde okuyorsam - hala yeni bir kullanıcı yaratmanın bir yolunu tarif etmiyorsun - sadece hizmeti başlatmak için bir kullanıcı adı ve parola atamak nasıl (daha güvenli)? – pc1oad1etter

+0

Ayrıca görsel stüdyosunda processInstaller * kurulum için bir kullanıcı adı ve parola belirlemenize izin verir * sc yardımcı programın hizmeti (cleartext olarak) yapılandırmasıyla eşdeğer (güvenlik açısından) olur mu yoksa VS daha iyi işliyor mu? ? – pc1oad1etter

+0

Doğru, Bunu yapmanın bir yolu ile yeni bir yorum ekleyeceğim. – Mick

2

Taken from this website

basit bir cevabı da, ancak kullanıcının sadece ek otomatikleştirmek mümkündür (/ domain) ekleyin/net kullanıcı kullanmaktır, fakat onun/onu gruplarına ek olarak kullanıcı hesabı dizin yapısının oluşturulması.Birçok kuruluşun, word, excel dizinleri ve bazı şablon dosyaları ile temel yapısı var. Bu, temel bir komut dosyasıyla otomatik olabilir. Örneğin

REM addnew.bat 

net user %1 password /add /homedir:\\<server>\users\%1 /scriptpath:login.bat /domain 
net localgroup "<local group>" %1 /add 

REM repeat for local groups 
net group "<groups>" %1 /add /domain 

REM repeat for global groups 
xcopy \\<server>\users\template \\<server>\users\%1 /e 
nltest /sync /server:BDCname 

REM repeat for all BDCs you might be authenticating to 
sleep 20 
cacls \\<server>\users\%1 /e /r Everyone 

REM remove the everyone permission to the directory 
cacls \\<server>\users\%1 /g %1:F /e 
cacls \\<server>\users\%1 /g Administrators:F /e 
İlgili konular