Ainda sobre firewall windows vista e xp...
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 !!!!"
"
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
Curtidas 0
Respostas
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
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
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...
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
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
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
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
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
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
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
Att,
Wesley Y
GOSTEI 0