Kan man installera och avinstallera services från ett program? Jag har sökt lite och hittat att installutil.exe kan fixa sånt från kommandotolken, men finns den med i .NET Framework redistributable? Kan och kan... teoretiskt är det möjligt, men knappast vettigt. Dels pga att du behöver admin rättigheter å sen så är ju inte alla övertygade om installutil.exe:s förträfflighet. Administratörsrättigheter är inget problem. Varför är inte installutil.exe bra? Finns det något annat sätt? Hej Kodexemplet förstår jag tyvärr inte så mycket av. Finns det nån kod för service control manager för VB.NET? Jag har skapat en testservice och försökt installera den med installutil.exe, men då kommer rutan "Ange tjänstinloggning" upp. Där måste jag ange användarnamn och lösenord. Vad är det för användare och lösenord? Borde vara vilket konto du vill att tjänsten ska köras som? Ja jo, nu när du säger det så låter det väldigt självklart. Kan man ange det direkt i kommandotolken? Har för mig att det finns någon växel till installutil? :/ Man fick tydligen fram mer hjälp om man skrev i sökvägen till servicen tillsammans med /?. Hur som helst så fanns det /username=xxx och /password=xxx som löser det problemet, men helst skulle jag vilja slippa den frågan. ok, du ska köra med installutil ändå. LocalSystem fungerar bra nu, men att den ska startas automatiskt verkar inte fungera. När ska starten ske? Hej När startas den vid automatiskt start? Så fort Windows startar, innan en användare loggar in, eller bara när nån är inloggad? En service startas oavsett om någon är inloggad eller inte. Det är det som själva idën med en service. Så svaret är , när windows startas.Installera en Windows Service från ett program
Och hur hittar jag sökvägen till framework-katalogen i så fall?
/ThomasSv: Installera en Windows Service från ett program
Sv:Installera en Windows Service från ett program
/ThomasSv: Installera en Windows Service från ett program
Du behöver använda service control manager.
Kodexempel finns här:
http://www.codeproject.com/system/windows_nt_service.asp
Alternativ är annars att exportera en service från registret, ändra värdena så det passar dig och därefter importera dem.
Services återfinns under:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
Denna metod kräver omstart.
Mvh
AndreasSv:Installera en Windows Service från ett program
/ThomasSv: Installera en Windows Service från ett program
Självklart är jag administratör och kommandotolken har administratörsrättigheter.
/ThomasSv:Installera en Windows Service från ett program
Sv: Installera en Windows Service från ett program
Edit: Nu när jag tänker efter så är det lite omständigt att behöva ange användarnamn och lösenord. Jag kan inte komma ihåg att nått program som använder sig av services nånsin har frågat efter mitt användarnamn och lösenord. Går det inte att ställa in så att servicen använder sig av system-kontot eller samma konto som den som är inlogga eller liknande?
/ThomasSv:Installera en Windows Service från ett program
Sv: Installera en Windows Service från ett program
/unattended fanns också och den ska hoppa över frågan om användarnamn och lösenord, men det gör den inte.
Edit: Det hjälpte tydligen att skriva parametrarna i rätt ordning. Man ska inte göra sånt här så här sent =)
Hur som helst så tror jag inte att det är nån bra idé att användaren måste ange användarnamn och lösenord... Den som installerar servicen är hur som helst redan administratör så det borde gå att lösa det ändå.
Edit2: Nu såg jag att man ställer in det i ServiceProcessInstaller i VB.NET. Återkommer efter några nya tester =)
/ThomasSv:Installera en Windows Service från ett program
För att ange systemkonto kan följande kod användas:
C#
ServiceProcessInstaller spi = new ServiceProcessInstaller();
spi.Account = ServiceAccount.LocalSystem;
Du kanske också vill sätta servicen så att den startar automatiskt:
C#
si.StartType = ServiceStartMode.Automatic;
Mvh
AndreasSv: Installera en Windows Service från ett program
Installerar jag servicen och kollar i Tjänster så finns den där och det står Automatiskt på Startmetod men den kör fortfarande inte.
Startar jag den manuellt så fungerar allt som det ska.
/ThomasSv:Installera en Windows Service från ett program
Du måste starta den första gången, automatic som start type innebär bara att systemet startar tjänsten nästa gång som du startar om servern.
Om du vill starta en stoppad tjänst kan du använda "System.ServiceProcess.ServiceController", se msdn
http://msdn2.microsoft.com/en-us/library/system.serviceprocess.servicecontroller.start.aspx
Mvh
AndreasSv: Installera en Windows Service från ett program
/ThomasSv:Installera en Windows Service från ett program