Ainda sobre firewall windows vista e xp...

05/02/2009

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

Curtidas 0

Respostas

Wesley Yamazack

Wesley Yamazack

05/02/2009

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
GOSTEI 0
Fabricio Bolzan

Fabricio Bolzan

05/02/2009

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...


GOSTEI 0
Wesley Yamazack

Wesley Yamazack

05/02/2009

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
GOSTEI 0
Fabricio Bolzan

Fabricio Bolzan

05/02/2009

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 ....


GOSTEI 0
Wesley Yamazack

Wesley Yamazack

05/02/2009

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
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

05/02/2009

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

Att,

Wesley Y
GOSTEI 0
POSTAR