Fórum Ainda sobre firewall windows vista e xp... #2591

05/02/2009

0

No chamado anterior postou sobre abertura de porta de firewall direto no registro, mas gostaria de fazer isso com um programa em especifico sql.exe alem da porta que ele usa... como poderia registra-lo para nao ter problemas de conexao com o Server BD???

"
Olá Fabrício !!!

Para liberar a porta no Firewall basta adicionar uma chave no registro do windows. Ela fica em HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\GloballyOpenPorts\List.

Para fazer isso no delphi faça o seguinte. De uses em Registry. No clique de um botão por exemplo coloque o código abaixo.

var
R:=TRegistry
Ch: String;
begin
Ch := SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\GloballyOpenPorts\List;
R:=TRegistry.Create;
R.RootKey:=HKEY_LOCAL_MACHINE;
R.OpenKey(Ch,False);
R.WriteString(1010:TCP,1010:TCP:*:Enabled:NOMEDAPORTA:_pfl);
end;


Onde há 1010 substitua pelo número da porta que você quer liberar.
Onde há TCP você poderá usar UDP se for o caso
Onde há NOMEDAPORTA substitua pelo nome que quer dar a exceção.

Bem é isso ai !!

Abs !!!!"


Fabricio Bolzan

Fabricio Bolzan

Responder

Posts

06/02/2009

Wesley Yamazack

Olá Fabricio, Bom dia. Segue abaixo como Liberar a porta do FireBird, basta você saber qual é o programa que você quer desbloquear e fazer as adptações. Espero que ajude.

procedure TForm1.BitBtn1Click(Sender: TObject);
var
    Reg:TRegistry;
    CtrlSet:string;
begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey('SYSTEM\Select', False);
CtrlSet := FormatFloat('000',Reg.ReadInteger('Current'));
Reg.CloseKey;
//Libera a porta 3050 usada pelo Firebird
Reg.OpenKey('SYSTEM\ControlSet' + CtrlSet +
'\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\GloballyOp
enPorts\List', True);
if (not Reg.ValueExists('3050:TCP')) then
Reg.WriteString('3050:TCP','3050:TCP:*:Enabled:Firebird');
Reg.CloseKey;
Reg.Free;
end;


procedure TForm1.Button2Click(Sender: TObject);
begin
WinExec('netsh.exe"firewall add portopening protocol=TCP port=3050 name=""Firebird""
mode=ENABLE scope=SUBNET"', SW_SHOW);
end;

Att,

Wesley Y
Responder

Gostei + 0

06/02/2009

Fabricio Bolzan

Entendi, esse comando sozinho WinExec('netsh.exe"firewall add portopening protocol=TCP port=3050 name=""Firebird"" ja tinha tentado , vou ver este.



No caso de querer habilitar um atualizadorsql.exe que usa a porta 80 mas o firewall do vista sempre apresenta a mensagem q ele esta tentando acessar a web, manualmente eu faço isso e vai normal o problema eh fazer isso em mais de 200 maquinas, como eu faria, no caso nao eh habilitar uma porta pq a 80 jah eh habilitada e sim habiltar o programa como perguntei anteriormente...


Responder

Gostei + 0

06/02/2009

Wesley Yamazack

Olá Fabricio.

  Vamos la.
  1 -Abra um bloco de notas vazio.
  2 - Adicione nele a seguinte linha de codigo :  netsh firewall add portopening TCP 80 "sql.EXE (Porta)"
  3 - Salve este arquivo com a extensão .Bat, exemplo : Arquivo.Bat
  4 - Execute este arquivo e vá ate o firewall do windows o mesmo estará adicionado, junto com a porta, e o nome do mesmo.

Att,

Wesley Y
Responder

Gostei + 0

06/02/2009

Fabricio Bolzan

SIM JA TINHA ESSE EXEMPLO Q PEGUEI NA NET, USEI COM WINEXEC E TB FIZ COMO FALOU .BAT E NAO GRAVOU NO WINDOWS VISTA, REINICIEI E DEU A MENSAGEM PRA LIBERAR ACESSO PELO FIREWALL DO WINDOWS, NO XP FUNCIONA ....


Responder

Gostei + 0

06/02/2009

Wesley Yamazack

Olá ,
  Bom infelizmente para o Vista realmente não tem como não, pois ele tem um sistema de segurança o User Control Account, que solicita confirmação do usuaário para toda alteração feita no registro ou programas desconhecidos que são executados.
  A unica opção seria você desabilitar User Control Account, nas maquinas que possuem Windows Vista. esta nova implementação foi desenvolvida pela Microsoft para melhorar o sistema de segurança dos S.O.

Att,

Wesley
Responder

Gostei + 0

10/02/2009

Wesley Yamazack

Olá Fabricio, gostaria de saber como esta o chamado. Podemos concluír o mesmo com as soluções apresentadas ?

Att,

Wesley Y
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar