Skip to content

Commit 9a1681e

Browse files
committed
Always remove eventlog source when calling emove #7
1 parent 57100be commit 9a1681e

File tree

2 files changed

+22
-7
lines changed

2 files changed

+22
-7
lines changed

README.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,3 +23,13 @@ Windows Password: <password-for-this-user>
2323
The program will install a service and start it up. Launch `wsl` then from a `cmd` prompt, run `ping ubuntu1804.wsl`. You can check the Windows hosts file to see what was written. The service will automatically update the IP if the WSL2 VM is stopped and started again.
2424

2525
The Windows hosts file is located at: `C:\Windows\System32\drivers\etc\hosts`
26+
27+
**To remove / uninstall the service:**
28+
29+
_NOTE: Upgrading Windows Insider will remove the service, but not cleanly. To reinstall after upgrading, first make sure you've downloaded the latest version of `wsl2host`, then run `remove` before `install`_
30+
31+
Open an **elevated/administrator** command prompt:
32+
33+
```
34+
> .\wsl2host.exe remove
35+
```

cmd/wsl2host/internal/install.go

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -84,23 +84,28 @@ func InstallService(name, desc string) error {
8484

8585
// RemoveService uninstalls the Windows service
8686
func RemoveService(name string) error {
87+
var err2 error
8788
m, err := mgr.Connect()
8889
if err != nil {
8990
return err
9091
}
9192
defer m.Disconnect()
9293
s, err := m.OpenService(name)
9394
if err != nil {
94-
return fmt.Errorf("service %s is not installed", name)
95-
}
96-
defer s.Close()
97-
err = s.Delete()
98-
if err != nil {
99-
return err
95+
err2 = fmt.Errorf("service %s is not installed", name)
96+
} else {
97+
defer s.Close()
98+
err = s.Delete()
99+
if err != nil {
100+
err2 = fmt.Errorf("%w; %s", err2, err.Error())
101+
}
100102
}
101103
err = eventlog.Remove(name)
102104
if err != nil {
103-
return fmt.Errorf("RemoveEventLogSource() failed: %s", err)
105+
err2 = fmt.Errorf("%w; RemoveEventLogSource() failed: %s", err2, err)
106+
}
107+
if err2 != nil {
108+
return err2
104109
}
105110
return nil
106111
}

0 commit comments

Comments
 (0)