Ability of manage application as windows service and access firewall with terminal commands.
$ dotnet add package MaCo.Extensions.Service.InstallA class library to manage the Windows Firewall as well as adding your program to the Windows Firewall Exception list.
For Manage Windows Service application this package can used SC or Dotnet4 Tools.
For manage Windows firewall we also used Netsh Command.
This project supports (.netStandard2.1 , Net6 and Net7), therefore, is compatible with Net6 and any version of dotNet equal or greater than it
Even though it is possible to reference this library under Linux or Mac; it's obviously not going to work.
This library is available as a NuGet package at nuget.org.
--OR--
You can always donate your time by contributing to the project or by introducing it to others.
Create new instance of Engine class and send string argument of Application name to Class creator for use in service registering title.
Extention for manage windows service by himself.
Commands:
info Information about console commands.
status Status of service state such as installation and running states.
install Add service to this computer, if service was installed did not return error.
uninstall Remove service from this computer, if service was uninstalled did not return error.
firewalladd Add service file access rule to firewall.
firewallremove Remove service file access rule from firewall.
start Start service if exist in this computer.
stop Stop service if exist in this computer.
s Short command for Status.
i Short command for install.
u Short command for unistall.
fa Short command for FirewallAdd.
fr Short command for FirewallRemove.
Arguments:
silent Run command in silent mode.
out_json [Default]output result as json string.
{
"ServiceRunStatus":"0",
"ServiceIsInstalled":False,
"FirewallIsInstall":False,
"FirewallIsEnable":False,
"FirewallRuleAdded":False,
"Message":"",
"Result":True
}
Check the 'Document.Service.Sample' projects as a brief example of what can be done using this class library.
internal class Program
{
private static void Main(string[] args)
{
new Document.Service.Engine("TestApp").Run(args);
Console.ReadLine();
}
}
MIT License
Copyright (c) 2010-2023 mostafa aghili
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.