1
Windows 방화벽에 규칙을 추가하기 위해 firewall.dll을 사용하는 코드가 있지만 "액세스가 거부되었습니다. (예외는 HRESULT : 0x80070005 (E_ACCESSDENIED))" this 내 코드 :firewall.dll 등록 정보를 사용하면 Acces denied 오류가 발생합니다. (HRESULT 예외 : 0x80070005 (E_ACCESSDENIED))
using NetFwTypeLib;
namespace Tserver
{
class Program
{
static void Main(string[] args)
{
INetFwRule firewallRule = (INetFwRule)Activator.CreateInstance(
Type.GetTypeFromProgID("HNetCfg.FWRule"));
firewallRule.Action = NET_FW_ACTION_.NET_FW_ACTION_BLOCK;
firewallRule.Description = "Used to block all internet access.";
firewallRule.Direction = NET_FW_RULE_DIRECTION_.NET_FW_RULE_DIR_OUT;
firewallRule.Enabled = true;
firewallRule.InterfaceTypes = "All";
firewallRule.Name = "Block Internet";
INetFwPolicy2 firewallPolicy = (INetFwPolicy2)Activator.CreateInstance(
Type.GetTypeFromProgID("HNetCfg.FwPolicy2"));
firewallPolicy.Rules.Add(firewallRule);
}
현재 운영 체제 사용자에게 관리자 권한이 있습니까? –
고도의 보안 수준이 필요합니다. UAC 등을 의미합니다. Btw는 코드로 방화벽 설정을 실제로 변경하려는 경우 두 번 생각해야합니다. –