Descompacte e execute, ou instale
Versão 0.5.0. Os arquivos compactados não precisam de instalador e não gravam nada no Registro, e consultar não exige direitos de administrador. Um instalador assinado coloca os dois programas na máquina toda, em vez disso. Livre e gratuito sob a GPL-3.0.
O que vem na versão
| Arquivo | O que é |
|---|---|
BetterWindowsServices-win-x64.zip | A janela: BetterWindowsServices.exe, um executável autônomo com seu próprio runtime .NET dentro |
bws-cli-win-x64.zip | A linha de comando: bws.exe, um executável autônomo, para scripts, tarefas agendadas e CI |
BetterWindowsServices-win-x64.msi | O instalador: os dois programas em Program Files para todas as contas da máquina, a janela no menu Iniciar e o bws no PATH da máquina |
Fique com um ou com os dois - são dois clientes do mesmo motor e nenhum precisa do outro. Em um servidor, a linha de comando é a menor das duas e faz tudo o que a janela faz.
O instalador traz exatamente o que os dois arquivos compactados trazem. Ele se instala em modo silencioso com msiexec /i BetterWindowsServices-win-x64.msi /qn, uma versão mais nova se instala por cima de uma mais antiga, e ele não fecha nada do que está em execução - então feche a janela e qualquer bws em execução antes de atualizar, porque uma cópia deixada aberta pode parar com um erro. Desinstalar em Configurações, Aplicativos remove os programas, a entrada do menu Iniciar e a entrada do PATH, e deixa seus próprios arquivos em paz.
Os executáveis levam uma assinatura Authenticode, de modo que o Windows nomeia o editor em vez de avisar sobre um desconhecido.
Requisitos
- Windows 10 versão 1809 ou posterior, ou Windows Server 2019 ou posterior. Somente 64 bits - um processo de 32 bits lê caminhos e chaves do Registro redirecionados, o que daria respostas erradas sem avisar.
- Sem .NET para instalar. Os dois executáveis trazem o seu próprio runtime .NET.
- Direitos de administrador para mudar qualquer coisa. Ler, pesquisar, instantâneos e comparações funcionam sem eles, com menos entradas visíveis e a ferramenta dizendo isso no topo em vez de fingir que a lista é a máquina inteira.
A janela guarda um arquivo próprio - o layout em que você deixou a lista - em %APPDATA%\BetterWindowsServices. Um instantâneo vai para onde você mandar o bws snapshot create colocá-lo, e para o diretório atual quando você não manda.
O programa fala inglês. A janela lê um arquivo de idioma, languages\gui.<código>.json, colocado ao lado dela e escolhido pelo idioma do Windows, sem nenhuma opção. Uma tradução é, portanto, uma contribuição que pode ser acrescentada sem recompilar - o CONTRIBUTING.md diz como.
Antivírus e EDR
Esta ferramenta faz o que um administrador faz com serviços, e parte disso é o que o software de segurança vigia.
Ela para e inicia serviços, pode encerrar o processo por trás de um deles e lê o descritor de segurança e os privilégios exigidos de cada serviço. Um EDR que sinaliza um processo encerrando o svchost.exe está fazendo o seu trabalho, e uma parada forçada aqui pode parecer exatamente isso.
O que ela não faz, para que você possa conferir a afirmação: não injeta nada em nenhum processo, não empacota nem ofusca nada, não instala nenhum serviço nem driver e não deixa nada em execução, e não abre nenhuma conexão de rede. É de código aberto sob a GPL-3.0 e você mesmo pode compilar os dois executáveis.
Se a sua política exigir uma exclusão, exclua os dois executáveis por arquivo e não uma pasta. A única coisa que merece o mesmo cuidado que a própria ferramenta é um arquivo de instantâneo: ele descreve a máquina inteira.
Compilar a partir do código-fonte
SDK do .NET 10, no Windows.
git clone https://github.com/donislawdev/BetterWindowsServices
cd BetterWindowsServices
dotnet build BetterWindowsServices.slnx -c Release
dotnet test BetterWindowsServices.slnx -c Release
Alguns testes leem o gerenciador de controle de serviços real da máquina em que rodam e comparam o que esta ferramenta diz com o que o sc.exe diz. São somente leitura. Os executáveis de arquivo único que as versões trazem são estas duas publicações, cada uma um arquivo com o runtime dentro:
dotnet publish src/Bws.Cli/Bws.Cli.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true
dotnet publish src/Bws.Gui/Bws.Gui.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true
Eles saem como bws.exe e BetterWindowsServices.exe em bin/Release/.../win-x64/publish/ de cada projeto. Os arquivos .pdb ao lado são símbolos de depuração, e nada precisa deles para executar.
Quanto custa executar
Medido em uma máquina com 804 serviços. Os seus números serão diferentes - o número de serviços, o disco e o processador mexem em todos.
Cerca de um quinto de segundo
para o bws list ler a máquina inteira.
Cerca de 19 MB
para a linha de comando sobre a mesma máquina.