Re: [oracle_br] Re: Executar comando do sistema operacional
Ah então respondeu a duvida do Chiappa.. cai na questao de permissão Mas nao tem privilégio para logar na maquina via TS ou no console local ? Se o cara pudesse dar mais uns prints da tela com erro... 2015-03-18 14:10 GMT-03:00 'Milton Bastos Henriquis Jr.' miltonbas...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br: O cara fez o teste hoje e NÃO loga com o user oracle. Mostra mensagem de erro dizendo que o usuário não tem privilégio para fazer logon na máquina, é mole? Att, Em 17 de março de 2015 19:01, jlchia...@yahoo.com.br [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Via remote desktop/terminal services com certeza não deve conseguir mesmo, isso demanda privilégios extras Se/quando o cara testar o logon local, direto lá no servidor, vc nos conta o resultado... []s Chiappa
Re: [oracle_br] Re: Executar comando do sistema operacional
Bom, isso nos indica que pelo jeito esse servidor deve estar sob alguma POLICY (de rede ou local) que esteja Bloqueando o acesso, ou usando alumas opções derivadas disso... OK, nem é o caso de investigar mais a fundo e descobrir qual é a tool fazendo a restrição, não, forget : era só uma dúvida mesmo... []s Chiappa
Re: [oracle_br] Re: Executar comando do sistema operacional
O cara fez o teste hoje e NÃO loga com o user oracle. Mostra mensagem de erro dizendo que o usuário não tem privilégio para fazer logon na máquina, é mole? Att, Em 17 de março de 2015 19:01, jlchia...@yahoo.com.br [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Via remote desktop/terminal services com certeza não deve conseguir mesmo, isso demanda privilégios extras Se/quando o cara testar o logon local, direto lá no servidor, vc nos conta o resultado... []s Chiappa
Re: [oracle_br] Re: Executar comando do sistema operacional
Opa Boa tarde.. Posso até estar falando besteiramas tenho a forte impressão de que se a conta estiver bloqueada, o processo nem executaria, mesmo sendo um serviço. Tem outras maneiras de se previnir que um usuario logue na maquina ( ex. um script pra fazer o cara dar logoff, ou restringir a qual terminal/computador a conta pode logar, se fosse membro de um AD). 2015-03-17 13:12 GMT-03:00 jlchia...@yahoo.com.br [oracle_br] oracle_br@yahoogrupos.com.br: OK... No caso, como é 12c embora eu não tenha feito muitas instalações 12c eu sei que ele relaxou algumas das necessidades do usuário que instala o RDBMS, mas vejo que o tal usuário ORACLE até está no Grupo de Administrators, então isso tá bem... Só perguntando : no 12c introduziu-se a figura do ORACLE HOME USER, ** além ** do USER INSTALLATION USER Vc usou esse ORACLE como HOME USER ou como INSTALLATION USER ?? É a grande pergunta, de repente não é especificamente sob esse account que o RDBMS tá rodando... INCLUSIVE, achei estranho que o ORACLE não está no grupo ORA_DBA... Acho que vale dar uma consultada nos Services do Windows e confirmar se é com esse account mesmo que os Services estão rodando... Continuando o roteiro que recomendei na minha msg anterior : agora que sabemos que esse usuário ORACLE é local, uma vez que vc ** CONSIGA CONFIRMAR ** que é com ele que o RDBMS tá rodando, para ver se ele pode logar localmente a próxima verificação é , nesse mesmo servlet, ainda nessas Propriedades do usuário Oracle, ver se na aba General se casualmente o ORACLE ** não está ** com checkbox de desativado marcado, nem está com o checkbox de conta bloqueada marcado A conta não está inativa nem bloqueada, eu só não tenho certeza se pra logon local o usuário tem que estar no grupo USERS ou não, faça (ou peça pra fazerem) esse teste adicional OK ? Com isso imagino que vc vai conseguir logar localmente com esse usuário oracle e assim ser capaz de abrir um prompt de comando no grupo ORA_DBA e testar a execução do script... E ** atenção ** : eu estou falando de conexão LOCAL, ie, alguém ir até a frente do computador e logar fornecendo nome e senha : logon ** REMOTO ** (por exemplo, via TERMINAL SERVICES) via de regra exigem privs adicionais... []s Chiappa
Re: [oracle_br] Re: Executar comando do sistema operacional
Via remote desktop/terminal services com certeza não deve conseguir mesmo, isso demanda privilégios extras Se/quando o cara testar o logon local, direto lá no servidor, vc nos conta o resultado... []s Chiappa
Re: [oracle_br] Re: Executar comando do sistema operacional
Bom dia pessoal! Bom, eu parti para a solução via JOB. Fiz da seguinte maneira: dbms_scheduler.create_job(job_name= 'PRINT_TU_'||v_seq, job_type= 'EXECUTABLE', job_action = 'c:\wyms_print\i9Print.bat', enabled = FALSE, auto_drop = true); dbms_scheduler.run_job('PRINT_TU_'||v_seq); dbms_scheduler.drop_job('PRINT_TU_'||v_seq); Ao executar o run_job, deu o erro: -27370: ORA-27370: o escravo do job falhou ao iniciar um trabalho do tipo EXECUTABLE ORA-27300: operac?o dependente de sistema no SO:accessing job scheduler service falhou com o status: 2 ORA-27301: mensagem de falha de SO: The system cannot find the file specified. ORA-27302: a falha ocorreu as: sjsec 6a ORA-27303: informac?es adicionais: The system cannot find the file specified. Falta de permissão para acessar o arquivo, é isso? O que faço? Att, Em 16 de março de 2015 15:04, jlchia...@yahoo.com.br [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Opa, blz ? Então, vamos por partes, bem ponto a ponto : a. SE vc confirmar que Realmente o usuário que roda o RDBMS é Realmente um usuário LOCAL (o que eu tenho dúvidas, principalmente quando vc disse que o Oracle criou um usuário local - o default REALMENTE não é nada disso, mas enfim), fica ** difícil ** a gente engolir que o WinAdmin não conseguiu fazer esse usuário local ter privilégio de logar - como eu disse, em condições normais é só acionar o applet de admin local, e em Usuários desmarcar a propriedade de usuário desabilitado E confirmar que o carinha está nos Grupos de usuários... Se o sujeito não sabe confirmar nem isso, pára tudo e Chama o Síndico : absolutamente NÂO DÁ pra confiar num sysadmin que nem pra isso serve == CASO vc obtenha a confirmação que o usuário não é um usuário local aberto (ie, é um usuário INTERNO do Windows, por exemplo, OU de repente é um usuário de domínio que está num Grupo que por regra não permite logon, só serve para executar apps), OU se descobrir que há uma Customização que impede o logon (digamos, uma Policy de rede ou local), aí SIM vc vai explorar as demais opções... b. confirmado que não conseguiu logar mesmo E que não é uma simples questão de alterar propriedades do usuário, antes de discutirmos nos itens abaixo as opções de logar com pribs de outro usuário, RECOMENDO que vc teste as Outras opções indicadas durante a thread, que relembrando foram : = opção de acessar a tal impressora via rede, enviando pacotes de rede via packages de rede presentes no RDBMS e acessíveis ao PL/SQL = ao invés de não ter password para o compartilhamento, ter uma password fixa que não muda = acessar via java diretamente a impressora de rede, o Java tem comandos mais direcionados a isso c. usando o RUNAS : realmente, a utilização normal é mesmo se logar como o usuário que deverá executar o processo e rodar RUNAS passando como argumento o usuário detentor dos privilégios a serem incorporados e INterativamente, só na primeira vez, informar a senha... Neste cenário de que vc realmente não poder logar como o usuário dono do RDBMS Oracle, embora eu não tenha certeza 100%, sei que a senha fica armazenada no Credential Manager do Windows - ** acredito ** (não é uma Certeza, é uma Sugestão a testar - espero que isso tenha ficado Claro) que seja possível vc exportar as credenciais para o usuário que roda o RDBMS, mesmo ele não podendo logar... d. se não funfar o RUNAS, aí a melhor opção é vc usar uma opção que permita indicar usuário detentor dos privilégios e senha : isso NECESSARIAMENTE implica que vc VAI ter que instalar um software extra (rigorosamente NÂO EXISTE um sudo nativo e não-interativo no Windows) , irei recomendar aqui algumas opções da própria Microsoft... Uma delas é o ShellRunAs , cfrme https://technet.microsoft.com/en-us/sysinternals/cc300361.aspx , e a outra é o PSexec em https://technet.microsoft.com/en-us/sysinternals/bb897553.aspx : esta última faz parte do pacote SysInternals, que originalmente foi criado pelo expert Windows Mark Russinovich e depois foi adquirido pela Microsoft, o que de certo modo o 'oficializou' como parte do Windows, ainda que uma parte não-default... == Com alguma das opções acima eu CREIO que vc vai ser capaz de testar se Realmente é questão de privilégios, o que a gente ** acha ** que é, mas ninguém pode te Afirmar com 100% de certeza... []s Chiappa
Re: [oracle_br] Re: Executar comando do sistema operacional
Consegui um print dos grupos do usuario oracle lá do servidor... Veja Chiappa: http://certificacaobd.com.br/down/001129.png E esses são todos os grupos existentes: http://certificacaobd.com.br/down/001130.png Att, Em 17 de março de 2015 10:13, Milton Bastos Henriquis Jr. miltonbas...@gmail.com escreveu: Bom dia pessoal! Bom, eu parti para a solução via JOB. Fiz da seguinte maneira: dbms_scheduler.create_job(job_name= 'PRINT_TU_'||v_seq, job_type= 'EXECUTABLE', job_action = 'c:\wyms_print\i9Print.bat', enabled = FALSE, auto_drop = true); dbms_scheduler.run_job('PRINT_TU_'||v_seq); dbms_scheduler.drop_job('PRINT_TU_'||v_seq); Ao executar o run_job, deu o erro: -27370: ORA-27370: o escravo do job falhou ao iniciar um trabalho do tipo EXECUTABLE ORA-27300: operac?o dependente de sistema no SO:accessing job scheduler service falhou com o status: 2 ORA-27301: mensagem de falha de SO: The system cannot find the file specified. ORA-27302: a falha ocorreu as: sjsec 6a ORA-27303: informac?es adicionais: The system cannot find the file specified. Falta de permissão para acessar o arquivo, é isso? O que faço? Att, Em 16 de março de 2015 15:04, jlchia...@yahoo.com.br [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Opa, blz ? Então, vamos por partes, bem ponto a ponto : a. SE vc confirmar que Realmente o usuário que roda o RDBMS é Realmente um usuário LOCAL (o que eu tenho dúvidas, principalmente quando vc disse que o Oracle criou um usuário local - o default REALMENTE não é nada disso, mas enfim), fica ** difícil ** a gente engolir que o WinAdmin não conseguiu fazer esse usuário local ter privilégio de logar - como eu disse, em condições normais é só acionar o applet de admin local, e em Usuários desmarcar a propriedade de usuário desabilitado E confirmar que o carinha está nos Grupos de usuários... Se o sujeito não sabe confirmar nem isso, pára tudo e Chama o Síndico : absolutamente NÂO DÁ pra confiar num sysadmin que nem pra isso serve == CASO vc obtenha a confirmação que o usuário não é um usuário local aberto (ie, é um usuário INTERNO do Windows, por exemplo, OU de repente é um usuário de domínio que está num Grupo que por regra não permite logon, só serve para executar apps), OU se descobrir que há uma Customização que impede o logon (digamos, uma Policy de rede ou local), aí SIM vc vai explorar as demais opções... b. confirmado que não conseguiu logar mesmo E que não é uma simples questão de alterar propriedades do usuário, antes de discutirmos nos itens abaixo as opções de logar com pribs de outro usuário, RECOMENDO que vc teste as Outras opções indicadas durante a thread, que relembrando foram : = opção de acessar a tal impressora via rede, enviando pacotes de rede via packages de rede presentes no RDBMS e acessíveis ao PL/SQL = ao invés de não ter password para o compartilhamento, ter uma password fixa que não muda = acessar via java diretamente a impressora de rede, o Java tem comandos mais direcionados a isso c. usando o RUNAS : realmente, a utilização normal é mesmo se logar como o usuário que deverá executar o processo e rodar RUNAS passando como argumento o usuário detentor dos privilégios a serem incorporados e INterativamente, só na primeira vez, informar a senha... Neste cenário de que vc realmente não poder logar como o usuário dono do RDBMS Oracle, embora eu não tenha certeza 100%, sei que a senha fica armazenada no Credential Manager do Windows - ** acredito ** (não é uma Certeza, é uma Sugestão a testar - espero que isso tenha ficado Claro) que seja possível vc exportar as credenciais para o usuário que roda o RDBMS, mesmo ele não podendo logar... d. se não funfar o RUNAS, aí a melhor opção é vc usar uma opção que permita indicar usuário detentor dos privilégios e senha : isso NECESSARIAMENTE implica que vc VAI ter que instalar um software extra (rigorosamente NÂO EXISTE um sudo nativo e não-interativo no Windows) , irei recomendar aqui algumas opções da própria Microsoft... Uma delas é o ShellRunAs , cfrme https://technet.microsoft.com/en-us/sysinternals/cc300361.aspx , e a outra é o PSexec em https://technet.microsoft.com/en-us/sysinternals/bb897553.aspx : esta última faz parte do pacote SysInternals, que originalmente foi criado pelo expert Windows Mark Russinovich e depois foi adquirido pela Microsoft, o que de certo modo o 'oficializou' como parte do Windows, ainda que uma parte não-default... == Com alguma das opções acima eu CREIO que vc vai ser capaz de testar se Realmente é questão de privilégios, o que a gente ** acha ** que é, mas ninguém pode te Afirmar com 100% de certeza... []s Chiappa
[oracle_br] Re: Executar comando do sistema operacional
OK... No caso, como é 12c embora eu não tenha feito muitas instalações 12c eu sei que ele relaxou algumas das necessidades do usuário que instala o RDBMS, mas vejo que o tal usuário ORACLE até está no Grupo de Administrators, então isso tá bem... Só perguntando : no 12c introduziu-se a figura do ORACLE HOME USER, ** além ** do USER INSTALLATION USER Vc usou esse ORACLE como HOME USER ou como INSTALLATION USER ?? É a grande pergunta, de repente não é especificamente sob esse account que o RDBMS tá rodando... INCLUSIVE, achei estranho que o ORACLE não está no grupo ORA_DBA... Acho que vale dar uma consultada nos Services do Windows e confirmar se é com esse account mesmo que os Services estão rodando... Continuando o roteiro que recomendei na minha msg anterior : agora que sabemos que esse usuário ORACLE é local, uma vez que vc ** CONSIGA CONFIRMAR ** que é com ele que o RDBMS tá rodando, para ver se ele pode logar localmente a próxima verificação é , nesse mesmo servlet, ainda nessas Propriedades do usuário Oracle, ver se na aba General se casualmente o ORACLE ** não está ** com checkbox de desativado marcado, nem está com o checkbox de conta bloqueada marcado A conta não está inativa nem bloqueada, eu só não tenho certeza se pra logon local o usuário tem que estar no grupo USERS ou não, faça (ou peça pra fazerem) esse teste adicional OK ? Com isso imagino que vc vai conseguir logar localmente com esse usuário oracle e assim ser capaz de abrir um prompt de comando no grupo ORA_DBA e testar a execução do script... E ** atenção ** : eu estou falando de conexão LOCAL, ie, alguém ir até a frente do computador e logar fornecendo nome e senha : logon ** REMOTO ** (por exemplo, via TERMINAL SERVICES) via de regra exigem privs adicionais... []s Chiappa
Re: [oracle_br] Re: Executar comando do sistema operacional
Milton, A utilização do runas é somente para usuários que estão logados interativamente no Sistema Operacional. Nisso como vc disse que não consegue logar com o oracle, seria impossível vc utilizar o runas para salvar as credencias, pois as credenciais ficam gravadas na sessão interativa utilizada no windows. Acredito que a solução paliativa que te passei utilizando um software de terceiro para conseguir utilizar o runas informando usuário e senha é uma das saídas possíveis destes problema, já que a limitação não está envolvendo o Banco de dados Oracle e sim o SO Windows. Agora fica a seu critério. Att, Emerson S. Gaudencio Em 14 de março de 2015 16:26, 'Milton Bastos Henriquis Jr.' miltonbas...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Chiappa, entendi parcialmente, mas acho que vc não entendeu o que eu quis dizer! O que eu quis dizer no meu e-mail anterior foi o seguinte, vou exemplificar, vamos supor que eu tenha: oracle - usuario owner do RDBMS print_user - usuario criado para rodar o comando de impressao (com senha que nunca vai mudar) e com permissões necessárias para acessar as impressoras compartilhadas na rede milton - meu usuario de rede A minha intenção era: - dentro do meu PL/SQL eu chamaria o runas, passando o usuario e senha do usuario print_user, para executar o .BAT - ok - ao fazer isso, a partir do usuario oracle eu executo o runas pra rodar o comando como se fosse o print_user - ok - se eu executar uma vez manualmente, eu escreveria a senha de forma interativa e partir das seguintes não precisaria mais - ok - aí vem minha dúvida: para executar essa primeira vez, eu não teria que estar LOGADO com o usuario oracle para executar o comando runas passado o print_user/senha? isso eu não consigo fazer, pois o windows não me deixa logar como oracle! Se eu executar o runas logado como milton, passando print_user/senha, e depois tentar executar via PL/SQL (ou seja, via usuario oracle), continua valendo a senha qe ficou gravada para login no runas? ou só fica valendo pra eu continuar executando como milton? Att, Em 13 de março de 2015 18:17, jlchia...@yahoo.com.br [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Veja bem : a idéia NÃO É (repito, Não È ) vc passar pro RUNAS esse usuário dono do RDBMS com o qual vc não consegue logar, mas SIM ter um usuário Windows local (chamado JOAOZINHO, ou outro nome qualquer) que SEJA capaz de logar, usuário esse previamente criado e permissionado E que não mude a senha nunca, aí apenas uma vez vc ou alguém no cliente executa manualmente o .BAT informando a senha desse usuário e cabou : nas próximas vezes que esse .BAT for executado pela rotina java que chama executáveis , a senha JÁ VAI estar armazenada, ao que entendo ele NÂO VAI pedir de novo, okdoc ?? É isso ... ÓBVIO que se o usuário sob o qual o RDBMS roda não é um usuário local com privilpégio de logon (o que vc NÂO nos confirmou ainda, by the way!!! veja lá !!) não tem como vc logar com ele pra executar a primeira vez... E uma obs importante : ao que entendo, quando o usuário quer imprimir um arquivo Y, o Sistema cria um .BAT assim : copy /b Y.arq ipdaimpressora depois, se o usuário quer imprimir um arquivo X.nnn , ele cria um OUTRO bat com : copy /b X.nnn ipdaimpressora assim por diante, e por isso como o .BAT muda a cada execução vc não teria como executar manualmente a primeira vez Coisas como ter um outro .BAT fixo chamando o segundo .BAT de impressão , que seria recriado a cada vez com o novo conteúdo mas MANTENDO sempre o mesmo nome, como indicado por outro colega, são SIM possíveis mas imho desnecessárias : isso de criar um .BAT novo a cada vez com uma única diferença NÂO FAZ o menor sentido, por que vc não tem um único .BAT fixo que aceita o nome do arquivo como argumento, tipo : -- este .BAT único se chama IMPRIME.BAT copy /b %1 ipdaimpressora e aí para imprimir o arquivo Y.arq vc chama o .BAT com : CMD.EXE /C \caminho\IMPRIME.BAT Y.arq depois pra imprimir o arquivo X.nnn vc chama o mesmo .BAT com : CMD.EXE /C \caminho\IMPRIME.BAT X.nnn e assim por diante, okdoc ??? []s Chiappa
Re: [oracle_br] Re: Executar comando do sistema operacional
Opa, blz ? Então, vamos por partes, bem ponto a ponto : a. SE vc confirmar que Realmente o usuário que roda o RDBMS é Realmente um usuário LOCAL (o que eu tenho dúvidas, principalmente quando vc disse que o Oracle criou um usuário local - o default REALMENTE não é nada disso, mas enfim), fica ** difícil ** a gente engolir que o WinAdmin não conseguiu fazer esse usuário local ter privilégio de logar - como eu disse, em condições normais é só acionar o applet de admin local, e em Usuários desmarcar a propriedade de usuário desabilitado E confirmar que o carinha está nos Grupos de usuários... Se o sujeito não sabe confirmar nem isso, pára tudo e Chama o Síndico : absolutamente NÂO DÁ pra confiar num sysadmin que nem pra isso serve == CASO vc obtenha a confirmação que o usuário não é um usuário local aberto (ie, é um usuário INTERNO do Windows, por exemplo, OU de repente é um usuário de domínio que está num Grupo que por regra não permite logon, só serve para executar apps), OU se descobrir que há uma Customização que impede o logon (digamos, uma Policy de rede ou local), aí SIM vc vai explorar as demais opções... b. confirmado que não conseguiu logar mesmo E que não é uma simples questão de alterar propriedades do usuário, antes de discutirmos nos itens abaixo as opções de logar com pribs de outro usuário, RECOMENDO que vc teste as Outras opções indicadas durante a thread, que relembrando foram : = opção de acessar a tal impressora via rede, enviando pacotes de rede via packages de rede presentes no RDBMS e acessíveis ao PL/SQL = ao invés de não ter password para o compartilhamento, ter uma password fixa que não muda = acessar via java diretamente a impressora de rede, o Java tem comandos mais direcionados a isso c. usando o RUNAS : realmente, a utilização normal é mesmo se logar como o usuário que deverá executar o processo e rodar RUNAS passando como argumento o usuário detentor dos privilégios a serem incorporados e INterativamente, só na primeira vez, informar a senha... Neste cenário de que vc realmente não poder logar como o usuário dono do RDBMS Oracle, embora eu não tenha certeza 100%, sei que a senha fica armazenada no Credential Manager do Windows - ** acredito ** (não é uma Certeza, é uma Sugestão a testar - espero que isso tenha ficado Claro) que seja possível vc exportar as credenciais para o usuário que roda o RDBMS, mesmo ele não podendo logar... d. se não funfar o RUNAS, aí a melhor opção é vc usar uma opção que permita indicar usuário detentor dos privilégios e senha : isso NECESSARIAMENTE implica que vc VAI ter que instalar um software extra (rigorosamente NÂO EXISTE um sudo nativo e não-interativo no Windows) , irei recomendar aqui algumas opções da própria Microsoft... Uma delas é o ShellRunAs , cfrme https://technet.microsoft.com/en-us/sysinternals/cc300361.aspx , e a outra é o PSexec em https://technet.microsoft.com/en-us/sysinternals/bb897553.aspx : esta última faz parte do pacote SysInternals, que originalmente foi criado pelo expert Windows Mark Russinovich e depois foi adquirido pela Microsoft, o que de certo modo o 'oficializou' como parte do Windows, ainda que uma parte não-default... == Com alguma das opções acima eu CREIO que vc vai ser capaz de testar se Realmente é questão de privilégios, o que a gente ** acha ** que é, mas ninguém pode te Afirmar com 100% de certeza... []s Chiappa
Re: [oracle_br] Re: Executar comando do sistema operacional
Chiappa, entendi parcialmente, mas acho que vc não entendeu o que eu quis dizer! O que eu quis dizer no meu e-mail anterior foi o seguinte, vou exemplificar, vamos supor que eu tenha: oracle - usuario owner do RDBMS print_user - usuario criado para rodar o comando de impressao (com senha que nunca vai mudar) e com permissões necessárias para acessar as impressoras compartilhadas na rede milton - meu usuario de rede A minha intenção era: - dentro do meu PL/SQL eu chamaria o runas, passando o usuario e senha do usuario print_user, para executar o .BAT - ok - ao fazer isso, a partir do usuario oracle eu executo o runas pra rodar o comando como se fosse o print_user - ok - se eu executar uma vez manualmente, eu escreveria a senha de forma interativa e partir das seguintes não precisaria mais - ok - aí vem minha dúvida: para executar essa primeira vez, eu não teria que estar LOGADO com o usuario oracle para executar o comando runas passado o print_user/senha? isso eu não consigo fazer, pois o windows não me deixa logar como oracle! Se eu executar o runas logado como milton, passando print_user/senha, e depois tentar executar via PL/SQL (ou seja, via usuario oracle), continua valendo a senha qe ficou gravada para login no runas? ou só fica valendo pra eu continuar executando como milton? Att, Em 13 de março de 2015 18:17, jlchia...@yahoo.com.br [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Veja bem : a idéia NÃO É (repito, Não È ) vc passar pro RUNAS esse usuário dono do RDBMS com o qual vc não consegue logar, mas SIM ter um usuário Windows local (chamado JOAOZINHO, ou outro nome qualquer) que SEJA capaz de logar, usuário esse previamente criado e permissionado E que não mude a senha nunca, aí apenas uma vez vc ou alguém no cliente executa manualmente o .BAT informando a senha desse usuário e cabou : nas próximas vezes que esse .BAT for executado pela rotina java que chama executáveis , a senha JÁ VAI estar armazenada, ao que entendo ele NÂO VAI pedir de novo, okdoc ?? É isso ... ÓBVIO que se o usuário sob o qual o RDBMS roda não é um usuário local com privilpégio de logon (o que vc NÂO nos confirmou ainda, by the way!!! veja lá !!) não tem como vc logar com ele pra executar a primeira vez... E uma obs importante : ao que entendo, quando o usuário quer imprimir um arquivo Y, o Sistema cria um .BAT assim : copy /b Y.arq ipdaimpressora depois, se o usuário quer imprimir um arquivo X.nnn , ele cria um OUTRO bat com : copy /b X.nnn ipdaimpressora assim por diante, e por isso como o .BAT muda a cada execução vc não teria como executar manualmente a primeira vez Coisas como ter um outro .BAT fixo chamando o segundo .BAT de impressão , que seria recriado a cada vez com o novo conteúdo mas MANTENDO sempre o mesmo nome, como indicado por outro colega, são SIM possíveis mas imho desnecessárias : isso de criar um .BAT novo a cada vez com uma única diferença NÂO FAZ o menor sentido, por que vc não tem um único .BAT fixo que aceita o nome do arquivo como argumento, tipo : -- este .BAT único se chama IMPRIME.BAT copy /b %1 ipdaimpressora e aí para imprimir o arquivo Y.arq vc chama o .BAT com : CMD.EXE /C \caminho\IMPRIME.BAT Y.arq depois pra imprimir o arquivo X.nnn vc chama o mesmo .BAT com : CMD.EXE /C \caminho\IMPRIME.BAT X.nnn e assim por diante, okdoc ??? []s Chiappa
Re: [oracle_br] Re: Executar comando do sistema operacional
Grande Emerson! Muito obrigado pela ajuda, eu tava usando exatamente o CooperaTI aqui pra me ajudar. Estou agora mesmo usando o runas pra testar... Criamos um usuário no AD específico para executar esse comando. Agora tenho um probleminha novo... rs... no runas eu passo o user que eu desejo, porém eu não consigo passar a senha do mesmo próprio comando, isso é possível? De modo interativo tudo bem, funcionou, dei o comando, ele pediu a senha, digitei a senha e funcionou... mas pela aplicação eu preciso passar a senha sem pedir para o usuário digitar, obviamente, é possível fazer isso? como faço? Meu comando é esse: c:\wyms_printrunas /savecred /user:i9_print@laquila i9Print.bat Attempting to start i9Print.bat as user i9_print@laquila ... Enter the password for i9_print@laquila: Attempting to start i9Print.bat as user i9_print@laquila ... Como podem ver acima, o comando funcionou (não retornou erro e imprimiu a etiqueta), mas tive que passar a senha de modo interativo. Tem como eu passar a senha direto no comando? Att, Em 13 de março de 2015 14:54, Emerson dos Santos Gaudêncio emerson.fen...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Boa Tarde Milton, Existe uma opção no windows de executar comandos com outras credencias de acesso, chamada runas, segue abaixo link de como utilizar isso: http://www.cooperati.com.br/2013/03/01/executando-programas-com-credenciais-de-administrador/ http://projetoseti.com.br/executar-programas-atraves-do-comando-runas-savecred/ https://social.technet.microsoft.com/Forums/windows/pt-BR/3c1d0880-e170-40a0-b217-0757e0685064/como-executar-um-programa-com-permisses-administrativas?forum=winxppt Bom, podendo utilizar outro usuário no caso o usuário que vc está utilizando para executar a chamado com o runas através do cmd, seria possível amenizar essa situação, com este paliativo. Att, Emerson Em 13 de março de 2015 13:37, jlchia...@yahoo.com.br [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Opa, então : como eu falei antes, se o roda sob um account x e vc tá logado sob um account y, ** obviamente ** vc não está testando Coisa Alguma quando, logado no Windows como y, executa o script .BAT e obtém sucesso, yep Sem isso é Claro que vc não vai conseguir testar adequadamente, até coisas básicas como um ping pro IP da impressora TEM que serem feitas num prompt de comando logado com o tal usuário... E é claro, enquanto vc não conseguir logar como esse usuário para poder testar os acessos dele, ** ainda ** é Plenamente Possível que o que esteja pegando aí pra vc é mesmo a questão de PRIVILÉGIOS concedidos ao account Windows que executa o RDBMS, pois é com esse account que o java e/ou qualquer binário do RDBMS é executado por sua vez, ALTAS chances de que realmente simplesmente o tal account não tenha acesso ao IP/serviço da impressora em questão... = O que vc deve fazer aí é, eu acho : 1. CONFIRMAR de uma vez por todas se REALMENTE é mesmo um usuário local nominado : apesar do que o tal técnico te disse, eu acho BEM difícil que seja isso, pois o default da instalação do RDBMS é usar a conta de sistema local (Local System Account) , e essa conta (que *** não *** é criada pelo instalador nem pelo RDBMS) aí sim realmente é uma conta Windows interna, absolutamente não-privilegiada, incapaz de conectar e/ou de abrir sessão interativa... Para vc confirmar isso é fácil : conectado como um usuário administrador nesse servidor, execute o servlet de serviços (services.msc) e veja na aba de logon do serviço OracleServicennn como que ele loga, e também consulte o servlet de administração do computador local (normalmente se chama compmgmt.msc mas esse nome pode variar de acordo com versão/edição do Windows, veja lá) e aí abra a seção de usuário Locais, e veja o que vc vai ver... Se o cara não sabe nem fazer isso, peça que alguém habilitado seja chamado, plz... 2. SE for identificado que realmente o RDBMS tá rodando com account interno/do sistema, OU então com usuário não-local, até dá pra alterar isso criando-se um usuário local e o incluindo no grupo de DBAs (via servlet de administração local, ainda) e alterando na aba de LOGON dos serviços relacionados ao RDBMS para usar esse novo usuário, mas isso IMPLICA em algum risco operacional E em shutdown e restart do RDBMS, nem sempre isso é possível/aceitável... SE for identificado que é DE VERDADE um account local do Windows mesmo, desde que não hava DIRETIVAS DE REDE/policies proibindo para que um usuário local possa se logar basta que ele esteja membro de um Grupo de usuário não de sistema, como o próprio grupo usuários... 3. Validar as outras opções de acesso á impressora de rede : na msg anterior eu dei um link de exemplo com o PL/SQL acessando o serviço de impressão via rede através das packages de rede disponíveis no RDBMS inclusive para o PL/SQL, o Angelo sugeriu que estar compartilhado sem usuário senha como é hoje, talvez se
Re: [oracle_br] Re: Executar comando do sistema operacional
Então Emerson, o problema é que não tem como eu digitar essa senha na primeira vez... rs Eu precisaria enviar a senha pelo script! Eu não vou executar o comando manualmente... o sistema é que vai chamar o script, por isso não tem como eu digitar a senha! Att, Em 13 de março de 2015 16:26, ederson200...@yahoo.com.br [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Olá Milton, No segundo link que o Emerson passou, abaixo do ultimo slide tá explicando que pede a senha somente uma vez. Então vc roda uma vez no modo interativo, informa a senha e depois o mesmo script não pede mais a senha. Em tempo: runas é acrônimo de RUN AS. Ederson Elias DBA Oracle - http://br.linkedin.com/pub/ederson-elias/24/8b/8b0 Labor improbus omnia vincit
Re: [oracle_br] Re: Executar comando do sistema operacional
Olá Milton, No segundo link que o Emerson passou, abaixo do ultimo slide tá explicando que pede a senha somente uma vez. Então vc roda uma vez no modo interativo, informa a senha e depois o mesmo script não pede mais a senha. Em tempo: runas é acrônimo de RUN AS. Ederson Elias DBA Oracle - http://br.linkedin.com/pub/ederson-elias/24/8b/8b0 Labor improbus omnia vincit
Re: [oracle_br] Re: Executar comando do sistema operacional
Opa, então : como eu falei antes, se o roda sob um account x e vc tá logado sob um account y, ** obviamente ** vc não está testando Coisa Alguma quando, logado no Windows como y, executa o script .BAT e obtém sucesso, yep Sem isso é Claro que vc não vai conseguir testar adequadamente, até coisas básicas como um ping pro IP da impressora TEM que serem feitas num prompt de comando logado com o tal usuário... E é claro, enquanto vc não conseguir logar como esse usuário para poder testar os acessos dele, ** ainda ** é Plenamente Possível que o que esteja pegando aí pra vc é mesmo a questão de PRIVILÉGIOS concedidos ao account Windows que executa o RDBMS, pois é com esse account que o java e/ou qualquer binário do RDBMS é executado por sua vez, ALTAS chances de que realmente simplesmente o tal account não tenha acesso ao IP/serviço da impressora em questão... = O que vc deve fazer aí é, eu acho : 1. CONFIRMAR de uma vez por todas se REALMENTE é mesmo um usuário local nominado : apesar do que o tal técnico te disse, eu acho BEM difícil que seja isso, pois o default da instalação do RDBMS é usar a conta de sistema local (Local System Account) , e essa conta (que *** não *** é criada pelo instalador nem pelo RDBMS) aí sim realmente é uma conta Windows interna, absolutamente não-privilegiada, incapaz de conectar e/ou de abrir sessão interativa... Para vc confirmar isso é fácil : conectado como um usuário administrador nesse servidor, execute o servlet de serviços (services.msc) e veja na aba de logon do serviço OracleServicennn como que ele loga, e também consulte o servlet de administração do computador local (normalmente se chama compmgmt.msc mas esse nome pode variar de acordo com versão/edição do Windows, veja lá) e aí abra a seção de usuário Locais, e veja o que vc vai ver... Se o cara não sabe nem fazer isso, peça que alguém habilitado seja chamado, plz... 2. SE for identificado que realmente o RDBMS tá rodando com account interno/do sistema, OU então com usuário não-local, até dá pra alterar isso criando-se um usuário local e o incluindo no grupo de DBAs (via servlet de administração local, ainda) e alterando na aba de LOGON dos serviços relacionados ao RDBMS para usar esse novo usuário, mas isso IMPLICA em algum risco operacional E em shutdown e restart do RDBMS, nem sempre isso é possível/aceitável... SE for identificado que é DE VERDADE um account local do Windows mesmo, desde que não hava DIRETIVAS DE REDE/policies proibindo para que um usuário local possa se logar basta que ele esteja membro de um Grupo de usuário não de sistema, como o próprio grupo usuários... 3. Validar as outras opções de acesso á impressora de rede : na msg anterior eu dei um link de exemplo com o PL/SQL acessando o serviço de impressão via rede através das packages de rede disponíveis no RDBMS inclusive para o PL/SQL, o Angelo sugeriu que estar compartilhado sem usuário senha como é hoje, talvez se possa compartilhar o recurso da impressora com um usuário/senha específico que nunca mude Ou ainda, para tentar eliminar a questão de privilégios, talvez vc possa testar a possibilidade de rodar no .BAT o tal comando de COPY com o RUNAS, utilitário nativo do Windows que permite se executar algo com um account diferente... Não vou poder te dar um exemplo concreto de nenhuma dessas opções já que não tenho impressora de rede sob Windows em nenhum dos ambientes a que atualmente tenho acesso, mas tente aí... []s Chiappa
Re: [oracle_br] Re: Executar comando do sistema operacional
Boa Tarde Milton, Existe uma opção no windows de executar comandos com outras credencias de acesso, chamada runas, segue abaixo link de como utilizar isso: http://www.cooperati.com.br/2013/03/01/executando-programas-com-credenciais-de-administrador/ http://projetoseti.com.br/executar-programas-atraves-do-comando-runas-savecred/ https://social.technet.microsoft.com/Forums/windows/pt-BR/3c1d0880-e170-40a0-b217-0757e0685064/como-executar-um-programa-com-permisses-administrativas?forum=winxppt Bom, podendo utilizar outro usuário no caso o usuário que vc está utilizando para executar a chamado com o runas através do cmd, seria possível amenizar essa situação, com este paliativo. Att, Emerson Em 13 de março de 2015 13:37, jlchia...@yahoo.com.br [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Opa, então : como eu falei antes, se o roda sob um account x e vc tá logado sob um account y, ** obviamente ** vc não está testando Coisa Alguma quando, logado no Windows como y, executa o script .BAT e obtém sucesso, yep Sem isso é Claro que vc não vai conseguir testar adequadamente, até coisas básicas como um ping pro IP da impressora TEM que serem feitas num prompt de comando logado com o tal usuário... E é claro, enquanto vc não conseguir logar como esse usuário para poder testar os acessos dele, ** ainda ** é Plenamente Possível que o que esteja pegando aí pra vc é mesmo a questão de PRIVILÉGIOS concedidos ao account Windows que executa o RDBMS, pois é com esse account que o java e/ou qualquer binário do RDBMS é executado por sua vez, ALTAS chances de que realmente simplesmente o tal account não tenha acesso ao IP/serviço da impressora em questão... = O que vc deve fazer aí é, eu acho : 1. CONFIRMAR de uma vez por todas se REALMENTE é mesmo um usuário local nominado : apesar do que o tal técnico te disse, eu acho BEM difícil que seja isso, pois o default da instalação do RDBMS é usar a conta de sistema local (Local System Account) , e essa conta (que *** não *** é criada pelo instalador nem pelo RDBMS) aí sim realmente é uma conta Windows interna, absolutamente não-privilegiada, incapaz de conectar e/ou de abrir sessão interativa... Para vc confirmar isso é fácil : conectado como um usuário administrador nesse servidor, execute o servlet de serviços (services.msc) e veja na aba de logon do serviço OracleServicennn como que ele loga, e também consulte o servlet de administração do computador local (normalmente se chama compmgmt.msc mas esse nome pode variar de acordo com versão/edição do Windows, veja lá) e aí abra a seção de usuário Locais, e veja o que vc vai ver... Se o cara não sabe nem fazer isso, peça que alguém habilitado seja chamado, plz... 2. SE for identificado que realmente o RDBMS tá rodando com account interno/do sistema, OU então com usuário não-local, até dá pra alterar isso criando-se um usuário local e o incluindo no grupo de DBAs (via servlet de administração local, ainda) e alterando na aba de LOGON dos serviços relacionados ao RDBMS para usar esse novo usuário, mas isso IMPLICA em algum risco operacional E em shutdown e restart do RDBMS, nem sempre isso é possível/aceitável... SE for identificado que é DE VERDADE um account local do Windows mesmo, desde que não hava DIRETIVAS DE REDE/policies proibindo para que um usuário local possa se logar basta que ele esteja membro de um Grupo de usuário não de sistema, como o próprio grupo usuários... 3. Validar as outras opções de acesso á impressora de rede : na msg anterior eu dei um link de exemplo com o PL/SQL acessando o serviço de impressão via rede através das packages de rede disponíveis no RDBMS inclusive para o PL/SQL, o Angelo sugeriu que estar compartilhado sem usuário senha como é hoje, talvez se possa compartilhar o recurso da impressora com um usuário/senha específico que nunca mude Ou ainda, para tentar eliminar a questão de privilégios, talvez vc possa testar a possibilidade de rodar no .BAT o tal comando de COPY com o RUNAS, utilitário nativo do Windows que permite se executar algo com um account diferente... Não vou poder te dar um exemplo concreto de nenhuma dessas opções já que não tenho impressora de rede sob Windows em nenhum dos ambientes a que atualmente tenho acesso, mas tente aí... []s Chiappa
Re: [oracle_br] Re: Executar comando do sistema operacional
Porque nao cria um arquivo *.bat chamando esse comando runas ? bat chamando o segundo bat, ta quase virando gambiarra, mas... c:\wyms_printrunas /savecred /user:i9_print@laquila i9Print.bat Attempting to start i9Print.bat as user i9_print@laquila ... Enter the password for i9_print@laquila: Attempting to start i9Print.bat as user i9_print@laquila ... 2015-03-13 15:37 GMT-03:00 'Milton Bastos Henriquis Jr.' miltonbas...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br: Grande Emerson! Muito obrigado pela ajuda, eu tava usando exatamente o CooperaTI aqui pra me ajudar. Estou agora mesmo usando o runas pra testar... Criamos um usuário no AD específico para executar esse comando. Agora tenho um probleminha novo... rs... no runas eu passo o user que eu desejo, porém eu não consigo passar a senha do mesmo próprio comando, isso é possível? De modo interativo tudo bem, funcionou, dei o comando, ele pediu a senha, digitei a senha e funcionou... mas pela aplicação eu preciso passar a senha sem pedir para o usuário digitar, obviamente, é possível fazer isso? como faço? Meu comando é esse: c:\wyms_printrunas /savecred /user:i9_print@laquila i9Print.bat Attempting to start i9Print.bat as user i9_print@laquila ... Enter the password for i9_print@laquila: Attempting to start i9Print.bat as user i9_print@laquila ... Como podem ver acima, o comando funcionou (não retornou erro e imprimiu a etiqueta), mas tive que passar a senha de modo interativo. Tem como eu passar a senha direto no comando? Att, Em 13 de março de 2015 14:54, Emerson dos Santos Gaudêncio emerson.fen...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Boa Tarde Milton, Existe uma opção no windows de executar comandos com outras credencias de acesso, chamada runas, segue abaixo link de como utilizar isso: http://www.cooperati.com.br/2013/03/01/executando-programas-com-credenciais-de-administrador/ http://projetoseti.com.br/executar-programas-atraves-do-comando-runas-savecred/ https://social.technet.microsoft.com/Forums/windows/pt-BR/3c1d0880-e170-40a0-b217-0757e0685064/como-executar-um-programa-com-permisses-administrativas?forum=winxppt Bom, podendo utilizar outro usuário no caso o usuário que vc está utilizando para executar a chamado com o runas através do cmd, seria possível amenizar essa situação, com este paliativo. Att, Emerson Em 13 de março de 2015 13:37, jlchia...@yahoo.com.br [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Opa, então : como eu falei antes, se o roda sob um account x e vc tá logado sob um account y, ** obviamente ** vc não está testando Coisa Alguma quando, logado no Windows como y, executa o script .BAT e obtém sucesso, yep Sem isso é Claro que vc não vai conseguir testar adequadamente, até coisas básicas como um ping pro IP da impressora TEM que serem feitas num prompt de comando logado com o tal usuário... E é claro, enquanto vc não conseguir logar como esse usuário para poder testar os acessos dele, ** ainda ** é Plenamente Possível que o que esteja pegando aí pra vc é mesmo a questão de PRIVILÉGIOS concedidos ao account Windows que executa o RDBMS, pois é com esse account que o java e/ou qualquer binário do RDBMS é executado por sua vez, ALTAS chances de que realmente simplesmente o tal account não tenha acesso ao IP/serviço da impressora em questão... = O que vc deve fazer aí é, eu acho : 1. CONFIRMAR de uma vez por todas se REALMENTE é mesmo um usuário local nominado : apesar do que o tal técnico te disse, eu acho BEM difícil que seja isso, pois o default da instalação do RDBMS é usar a conta de sistema local (Local System Account) , e essa conta (que *** não *** é criada pelo instalador nem pelo RDBMS) aí sim realmente é uma conta Windows interna, absolutamente não-privilegiada, incapaz de conectar e/ou de abrir sessão interativa... Para vc confirmar isso é fácil : conectado como um usuário administrador nesse servidor, execute o servlet de serviços (services.msc) e veja na aba de logon do serviço OracleServicennn como que ele loga, e também consulte o servlet de administração do computador local (normalmente se chama compmgmt.msc mas esse nome pode variar de acordo com versão/edição do Windows, veja lá) e aí abra a seção de usuário Locais, e veja o que vc vai ver... Se o cara não sabe nem fazer isso, peça que alguém habilitado seja chamado, plz... 2. SE for identificado que realmente o RDBMS tá rodando com account interno/do sistema, OU então com usuário não-local, até dá pra alterar isso criando-se um usuário local e o incluindo no grupo de DBAs (via servlet de administração local, ainda) e alterando na aba de LOGON dos serviços relacionados ao RDBMS para usar esse novo usuário, mas isso IMPLICA em algum risco operacional E em shutdown e restart do RDBMS, nem sempre isso é possível/aceitável... SE for identificado que é DE VERDADE um account local do Windows mesmo, desde que não
Re: [oracle_br] Re: Executar comando do sistema operacional
Pelo agendador não pode ser... os usuário imprimem no ato. Apertou um botão no sistema, sai a etiqueta na impressora. Até porque o arquivo .bat é escrito em tempo de execução, por isso teria que fazer uma alteração muito grande no sistema pra funcionar dessa maneira! Att, Em 13 de março de 2015 16:41, angelo angelolis...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Sabe o agendador de tarefas do windows ? Faz exatamente isso e ainda salva a senha da conta para fazer a execução. (pronto, agora vira gambiarra...) Que que eu ia propor: criar uma tarefa e agendar a execucao, do bat a partir do taskscheduler Haveria um agendamento da frequencia de execucao desse bat, mas mandaria alguma coisa pra impressora, caso tenha. Depois que imprime faz o que? apaga o arquivo ? senao ia mandar impressao toda hora da mesma etiqueta 2015-03-13 16:34 GMT-03:00 'Milton Bastos Henriquis Jr.' miltonbas...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br: Exatamente Angelo, eu já tinha testado essa idéia, ele não deixa Att, Em 13 de março de 2015 16:32, angelo angelolis...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Ih, acabei de comentar.. minha sugestao vai morrer na praia também... nao me liguei que o runas era interativo Entao precisa arranjar um aplicativo do tipo Runas mas que rode em silent mode e que passe a senha junto. Ai iria matar a charada... 2015-03-13 16:29 GMT-03:00 'Milton Bastos Henriquis Jr.' miltonbas...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br: Então Emerson, o problema é que não tem como eu digitar essa senha na primeira vez... rs Eu precisaria enviar a senha pelo script! Eu não vou executar o comando manualmente... o sistema é que vai chamar o script, por isso não tem como eu digitar a senha! Att, Em 13 de março de 2015 16:26, ederson200...@yahoo.com.br [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Olá Milton, No segundo link que o Emerson passou, abaixo do ultimo slide tá explicando que pede a senha somente uma vez. Então vc roda uma vez no modo interativo, informa a senha e depois o mesmo script não pede mais a senha. Em tempo: runas é acrônimo de RUN AS. Ederson Elias DBA Oracle - http://br.linkedin.com/pub/ederson-elias/24/8b/8b0 Labor improbus omnia vincit
Re: [oracle_br] Re: Executar comando do sistema operacional
Emerson: ótimo, muito obrigado, vou pedir pra eles instalarem pra testar! Provavelmente agora só na segunda-feira... rs... Chiappa: o problema é que eu não consigo rodar a primeira vez! Eu teria que logar com o usuario oracle para executar o runas uma vez e digitar as senha... e nao consigo logar com ele. Att, Em 13 de março de 2015 17:36, jlchia...@yahoo.com.br [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Opa : pmfji, mas com o /SAVECRED, ele só pede a senha UMA ÚNICA VEZ e a armazena : execute novamente o .BAt que vc vai ver que ele NÂO VAI pedir mais, okdoc ? Entre os milzs sites de dicas Windows que documentam isso, Network Administration: RunAs Command - For Dummies http://www.dummies.com/how-to/content/network-administration-runas-command.html [image: image] http://www.dummies.com/how-to/content/network-administration-runas-command.html Network Administration: RunAs Command - For D... http://www.dummies.com/how-to/content/network-administration-runas-command.html The RunAs command is very useful in administering a Windows Server 2008 network. The RunAs command lets you run a program from a command prompt... Visualizar em www.dummies... http://www.dummies.com/how-to/content/network-administration-runas-command.html Visualização pelo Yahoo pode ser um exemplo... []s Chiappa OBS : sei disso porque uso INTENSAMENTE essa feature no meu PC desktop de casa, para as crianças poderem executar com o usuário delas os jogos que exigem privilégios de administrador ...
Re: [oracle_br] Re: Executar comando do sistema operacional
Veja bem : a idéia NÃO É (repito, Não È ) vc passar pro RUNAS esse usuário dono do RDBMS com o qual vc não consegue logar, mas SIM ter um usuário Windows local (chamado JOAOZINHO, ou outro nome qualquer) que SEJA capaz de logar, usuário esse previamente criado e permissionado E que não mude a senha nunca, aí apenas uma vez vc ou alguém no cliente executa manualmente o .BAT informando a senha desse usuário e cabou : nas próximas vezes que esse .BAT for executado pela rotina java que chama executáveis , a senha JÁ VAI estar armazenada, ao que entendo ele NÂO VAI pedir de novo, okdoc ?? É isso ... ÓBVIO que se o usuário sob o qual o RDBMS roda não é um usuário local com privilpégio de logon (o que vc NÂO nos confirmou ainda, by the way!!! veja lá !!) não tem como vc logar com ele pra executar a primeira vez... E uma obs importante : ao que entendo, quando o usuário quer imprimir um arquivo Y, o Sistema cria um .BAT assim : copy /b Y.arq ipdaimpressora depois, se o usuário quer imprimir um arquivo X.nnn , ele cria um OUTRO bat com : copy /b X.nnn ipdaimpressora assim por diante, e por isso como o .BAT muda a cada execução vc não teria como executar manualmente a primeira vez Coisas como ter um outro .BAT fixo chamando o segundo .BAT de impressão , que seria recriado a cada vez com o novo conteúdo mas MANTENDO sempre o mesmo nome, como indicado por outro colega, são SIM possíveis mas imho desnecessárias : isso de criar um .BAT novo a cada vez com uma única diferença NÂO FAZ o menor sentido, por que vc não tem um único .BAT fixo que aceita o nome do arquivo como argumento, tipo : -- este .BAT único se chama IMPRIME.BAT copy /b %1 ipdaimpressora e aí para imprimir o arquivo Y.arq vc chama o .BAT com : CMD.EXE /C \caminho\IMPRIME.BAT Y.arq depois pra imprimir o arquivo X.nnn vc chama o mesmo .BAT com : CMD.EXE /C \caminho\IMPRIME.BAT X.nnn e assim por diante, okdoc ??? []s Chiappa
Re: [oracle_br] Re: Executar comando do sistema operacional
Milton, No TechNet da Microsoft existe um software de terceiro que possibilita utilizar o runas com usuário e senha. Segue abaixo, modelo: Você pode usar o comando RUNAS para abrir o internet explorer runas /user:dominio\usuario c:\Arquivos de programas\Internet Explorer\iexplore.exe O problema do comando acima, é que ele pede a senha. Mas tem uma solução para isso nos links abaixo: *http://www.commandline.co.uk/sanur/* http://www.commandline.co.uk/sanur/ *http://www.commandline.co.uk/sanur_unsupported/index.html* http://www.commandline.co.uk/sanur_unsupported/index.html O segundo link explica como utilizar... mas vai ficar assim: runas /user:domínio\usuário C:\Arquivos de programas\Internet Explorer\iexplore.exe | sanur senha_do_usuario Link para pesquisa: https://social.technet.microsoft.com/Forums/pt-BR/7512f27a-a433-45d5-a707-ef3d0074b316/comando-runas?forum=winxppt Att, Emerson Em 13 de março de 2015 15:43, 'Milton Bastos Henriquis Jr.' miltonbas...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Pelo agendador não pode ser... os usuário imprimem no ato. Apertou um botão no sistema, sai a etiqueta na impressora. Até porque o arquivo .bat é escrito em tempo de execução, por isso teria que fazer uma alteração muito grande no sistema pra funcionar dessa maneira! Att, Em 13 de março de 2015 16:41, angelo angelolis...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Sabe o agendador de tarefas do windows ? Faz exatamente isso e ainda salva a senha da conta para fazer a execução. (pronto, agora vira gambiarra...) Que que eu ia propor: criar uma tarefa e agendar a execucao, do bat a partir do taskscheduler Haveria um agendamento da frequencia de execucao desse bat, mas mandaria alguma coisa pra impressora, caso tenha. Depois que imprime faz o que? apaga o arquivo ? senao ia mandar impressao toda hora da mesma etiqueta 2015-03-13 16:34 GMT-03:00 'Milton Bastos Henriquis Jr.' miltonbas...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br: Exatamente Angelo, eu já tinha testado essa idéia, ele não deixa Att, Em 13 de março de 2015 16:32, angelo angelolis...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Ih, acabei de comentar.. minha sugestao vai morrer na praia também... nao me liguei que o runas era interativo Entao precisa arranjar um aplicativo do tipo Runas mas que rode em silent mode e que passe a senha junto. Ai iria matar a charada... 2015-03-13 16:29 GMT-03:00 'Milton Bastos Henriquis Jr.' miltonbas...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br: Então Emerson, o problema é que não tem como eu digitar essa senha na primeira vez... rs Eu precisaria enviar a senha pelo script! Eu não vou executar o comando manualmente... o sistema é que vai chamar o script, por isso não tem como eu digitar a senha! Att, Em 13 de março de 2015 16:26, ederson200...@yahoo.com.br [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Olá Milton, No segundo link que o Emerson passou, abaixo do ultimo slide tá explicando que pede a senha somente uma vez. Então vc roda uma vez no modo interativo, informa a senha e depois o mesmo script não pede mais a senha. Em tempo: runas é acrônimo de RUN AS. Ederson Elias DBA Oracle - http://br.linkedin.com/pub/ederson-elias/24/8b/8b0 Labor improbus omnia vincit
Re: [oracle_br] Re: Executar comando do sistema operacional
Ih, acabei de comentar.. minha sugestao vai morrer na praia também... nao me liguei que o runas era interativo Entao precisa arranjar um aplicativo do tipo Runas mas que rode em silent mode e que passe a senha junto. Ai iria matar a charada... 2015-03-13 16:29 GMT-03:00 'Milton Bastos Henriquis Jr.' miltonbas...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br: Então Emerson, o problema é que não tem como eu digitar essa senha na primeira vez... rs Eu precisaria enviar a senha pelo script! Eu não vou executar o comando manualmente... o sistema é que vai chamar o script, por isso não tem como eu digitar a senha! Att, Em 13 de março de 2015 16:26, ederson200...@yahoo.com.br [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Olá Milton, No segundo link que o Emerson passou, abaixo do ultimo slide tá explicando que pede a senha somente uma vez. Então vc roda uma vez no modo interativo, informa a senha e depois o mesmo script não pede mais a senha. Em tempo: runas é acrônimo de RUN AS. Ederson Elias DBA Oracle - http://br.linkedin.com/pub/ederson-elias/24/8b/8b0 Labor improbus omnia vincit
Re: [oracle_br] Re: Executar comando do sistema operacional
Sabe o agendador de tarefas do windows ? Faz exatamente isso e ainda salva a senha da conta para fazer a execução. (pronto, agora vira gambiarra...) Que que eu ia propor: criar uma tarefa e agendar a execucao, do bat a partir do taskscheduler Haveria um agendamento da frequencia de execucao desse bat, mas mandaria alguma coisa pra impressora, caso tenha. Depois que imprime faz o que? apaga o arquivo ? senao ia mandar impressao toda hora da mesma etiqueta 2015-03-13 16:34 GMT-03:00 'Milton Bastos Henriquis Jr.' miltonbas...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br: Exatamente Angelo, eu já tinha testado essa idéia, ele não deixa Att, Em 13 de março de 2015 16:32, angelo angelolis...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Ih, acabei de comentar.. minha sugestao vai morrer na praia também... nao me liguei que o runas era interativo Entao precisa arranjar um aplicativo do tipo Runas mas que rode em silent mode e que passe a senha junto. Ai iria matar a charada... 2015-03-13 16:29 GMT-03:00 'Milton Bastos Henriquis Jr.' miltonbas...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br: Então Emerson, o problema é que não tem como eu digitar essa senha na primeira vez... rs Eu precisaria enviar a senha pelo script! Eu não vou executar o comando manualmente... o sistema é que vai chamar o script, por isso não tem como eu digitar a senha! Att, Em 13 de março de 2015 16:26, ederson200...@yahoo.com.br [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Olá Milton, No segundo link que o Emerson passou, abaixo do ultimo slide tá explicando que pede a senha somente uma vez. Então vc roda uma vez no modo interativo, informa a senha e depois o mesmo script não pede mais a senha. Em tempo: runas é acrônimo de RUN AS. Ederson Elias DBA Oracle - http://br.linkedin.com/pub/ederson-elias/24/8b/8b0 Labor improbus omnia vincit
Re: [oracle_br] Re: Executar comando do sistema operacional
Exatamente Angelo, eu já tinha testado essa idéia, ele não deixa Att, Em 13 de março de 2015 16:32, angelo angelolis...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Ih, acabei de comentar.. minha sugestao vai morrer na praia também... nao me liguei que o runas era interativo Entao precisa arranjar um aplicativo do tipo Runas mas que rode em silent mode e que passe a senha junto. Ai iria matar a charada... 2015-03-13 16:29 GMT-03:00 'Milton Bastos Henriquis Jr.' miltonbas...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br: Então Emerson, o problema é que não tem como eu digitar essa senha na primeira vez... rs Eu precisaria enviar a senha pelo script! Eu não vou executar o comando manualmente... o sistema é que vai chamar o script, por isso não tem como eu digitar a senha! Att, Em 13 de março de 2015 16:26, ederson200...@yahoo.com.br [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Olá Milton, No segundo link que o Emerson passou, abaixo do ultimo slide tá explicando que pede a senha somente uma vez. Então vc roda uma vez no modo interativo, informa a senha e depois o mesmo script não pede mais a senha. Em tempo: runas é acrônimo de RUN AS. Ederson Elias DBA Oracle - http://br.linkedin.com/pub/ederson-elias/24/8b/8b0 Labor improbus omnia vincit
Re: [oracle_br] Re: Executar comando do sistema operacional
Opa : pmfji, mas com o /SAVECRED, ele só pede a senha UMA ÚNICA VEZ e a armazena : execute novamente o .BAt que vc vai ver que ele NÂO VAI pedir mais, okdoc ? Entre os milzs sites de dicas Windows que documentam isso, Network Administration: RunAs Command - For Dummies http://www.dummies.com/how-to/content/network-administration-runas-command.html http://www.dummies.com/how-to/content/network-administration-runas-command.html Network Administration: RunAs Command - For D... http://www.dummies.com/how-to/content/network-administration-runas-command.html The RunAs command is very useful in administering a Windows Server 2008 network. The RunAs command lets you run a program from a command prompt... Visualizar em www.dummies... http://www.dummies.com/how-to/content/network-administration-runas-command.html Visualização pelo Yahoo pode ser um exemplo... []s Chiappa OBS : sei disso porque uso INTENSAMENTE essa feature no meu PC desktop de casa, para as crianças poderem executar com o usuário delas os jogos que exigem privilégios de administrador ...
Re: [oracle_br] Re: Executar comando do sistema operacional
Provavelmente executar via Scheduler o executável externo ** não ** deve dar diferença alguma nas questões de privilégios, então não acho que isso será a resposta, mas fyi, saiba que é SIM plenamente possível executar um scheduler job imediatamente, basta não passar a data de início NEM o scheduler associado, + ou - tipo : dbms_scheduler.create_job( job_name='myjob', job_type='EXECUTABLE', job_action='C:\WINDOWS\SYSTEM32\CMD.EXE /C \path\nomedobat.bat', enabled=true); end; == BASTARIA vc substituir as linhas que chamam a tal rotina java pelo comando acima, yep ??? []s Chiappa ---Em oracle_br@yahoogrupos.com.br, miltonbas...@gmail.com escreveu: Pelo agendador não pode ser... os usuário imprimem no ato. Apertou um botão no sistema, sai a etiqueta na impressora. Até porque o arquivo .bat é escrito em tempo de execução, por isso teria que fazer uma alteração muito grande no sistema pra funcionar dessa maneira! Att, Em 13 de março de 2015 16:41, angelo angelolis...@gmail.com mailto:angelolis...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br mailto:oracle_br@yahoogrupos.com.br escreveu: Sabe o agendador de tarefas do windows ? Faz exatamente isso e ainda salva a senha da conta para fazer a execução. (pronto, agora vira gambiarra...) Que que eu ia propor: criar uma tarefa e agendar a execucao, do bat a partir do taskscheduler Haveria um agendamento da frequencia de execucao desse bat, mas mandaria alguma coisa pra impressora, caso tenha. Depois que imprime faz o que? apaga o arquivo ? senao ia mandar impressao toda hora da mesma etiqueta 2015-03-13 16:34 GMT-03:00 'Milton Bastos Henriquis Jr.' miltonbas...@gmail.com mailto:miltonbas...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br mailto:oracle_br@yahoogrupos.com.br: Exatamente Angelo, eu já tinha testado essa idéia, ele não deixa Att, Em 13 de março de 2015 16:32, angelo angelolis...@gmail.com mailto:angelolis...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br mailto:oracle_br@yahoogrupos.com.br escreveu: Ih, acabei de comentar.. minha sugestao vai morrer na praia também... nao me liguei que o runas era interativo Entao precisa arranjar um aplicativo do tipo Runas mas que rode em silent mode e que passe a senha junto. Ai iria matar a charada... 2015-03-13 16:29 GMT-03:00 'Milton Bastos Henriquis Jr.' miltonbas...@gmail.com mailto:miltonbas...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br mailto:oracle_br@yahoogrupos.com.br: Então Emerson, o problema é que não tem como eu digitar essa senha na primeira vez... rs Eu precisaria enviar a senha pelo script! Eu não vou executar o comando manualmente... o sistema é que vai chamar o script, por isso não tem como eu digitar a senha! Att, Em 13 de março de 2015 16:26, ederson200...@yahoo.com.br mailto:ederson200...@yahoo.com.br [oracle_br] oracle_br@yahoogrupos.com.br mailto:oracle_br@yahoogrupos.com.br escreveu: Olá Milton, No segundo link que o Emerson passou, abaixo do ultimo slide tá explicando que pede a senha somente uma vez. Então vc roda uma vez no modo interativo, informa a senha e depois o mesmo script não pede mais a senha. Em tempo: runas é acrônimo de RUN AS. Ederson Elias DBA Oracle - http://br.linkedin.com/pub/ederson-elias/24/8b/8b0 http://br.linkedin.com/pub/ederson-elias/24/8b/8b0 Labor improbus omnia vincit
Re: [oracle_br] Re: Executar comando do sistema operacional
Verdade *Milton*, como ficou e ssa historia? Conseguiu imprimir ? Isso extrapola um pouco o BD, se tornou mais um problema de interface com o SO. No caso especificamente do windows: Se o servidor fosse membro de um dominio (active directory), executando com uma determinada conta e essa conta tambem configurada para acessar o share da impressora, estava tudo resolvido, pq seria transparente Agora, quando nao é membro, quando é um stand alone, o macete é colocar mesma conta e mesma senha nos dois lugares (servidor, e share da impressora).. e nunca mais trocar a senha. Mas como, ja foi comentado, o Oracle, nao imprime nada sozinho, depende de biblioteca externa, vai por conta do aplicativo, nao faria muita diferenca a conta que estivesse executando o processo. É questao mesmo de qual conta tem permissao ao quê. 2015-03-12 12:42 GMT-03:00 jlchia...@yahoo.com.br [oracle_br] oracle_br@yahoogrupos.com.br: Opa : eu tinha mandado msg antes mas pelo jeito minha internet deu xabu e não foi enviada... Os pontos que tinha colocado foram : - afaik não importa o método para execução externa (se java, dbms_scheduler, external procedure, não importa) via de regra a recomendação de indicar o processador de comandos se mantém, assim sugeri Testar a rotina passando a linha de chamada completa (ie, \pathdowindows\system32\cmd.exe /c \path\nomedoarquivo.bat) e - seria interessante que vc citasse EXATAMENTE o erro que recebe, E nos confirmasse se é impressora local ou de rede (já que acessos a recursos não-locais nem sempre é viável em PL/SQL sem extensões, o caso típico é I/O, por exemplo) === Como em outras msgs da thread vc acabou confirmando que é impressora remota, de rede, acaba sendo Crítica porém uma questão que eu não tinha pensado, que é o usuário Windows que executa o RDBMS : se for o usuário interno do sistema, é MUITO possível que esse cara não tenha privilégio externo algum, aí (obviamente) vc está logado no Windows com OUTRO usuário, e por isso consegue executar o .bat sem problemas... === Além da questão de privilégio do usuário Windows que roda o RDBMS (e em cujo account o shell script será executado), outras possibilidades Adicionais que vc pode explorar são : a. já que vc tem Java no database em questão, ao invés de o usar para executar comando externo vc pode imprimir diretamente pelo java : dá uma googlada por JAVA REMOTE PRINTER que vc acha diversos exemplos ou b. impressoras de rede normalmente rodam sob um serviço próprio, que pode ser muitas vezes acessado via rede : https://asktom.oracle.com/pls/apex/f?p=100:11:0P11_QUESTION_ID:38012348052#5258287200346885163 tem um exemplo ou c. vc disse que o seu sistema é desenvolvido em PL/SQL : como sabemos que o PL/SQL por si só NÃO TEM nenhum comando para criar telas/interfaces/frontend para o usuário, com absoluta certeza OU vc está chamando as packages de extensão web presentes no RDBMS (seja diretamente seja via APEX, FormSpider, etc), OU vc toma o caminho contrário, ie, a partir de alguma linguagem/tool externa que vc usou pra criar o frontend vc chama as rotinas PL/SQL... Em qualquer desses casos vc tem possibilidades de escrever uma rotina específica de impressão, veja lã... []s Chiappa
Re: [oracle_br] Re: Executar comando do sistema operacional
Bom dia Angelo! Desculpe a demora... esse servidor e a impresssora estão lá no cliente (outro local físico) e meu acesso remoto é restrito. Chiappa: a impressora está em outra máquina, compartilhada na rede, não é local. O responsável de TI lá do cliente está apanhando muito. A questão é a seguinte: quando eu instalei o Oracle (Windows Server) a própria instalação do Oracle criou um usuario 'oracle no Windows para ficar como owner do DB. Esse usuario oracle o cara não consegue logar com ele para fazer os testes. Parece que ele já deu até permissão de administrador para esse usuario, mas quando ele tenta logar no Windows como oracle ele não consegue. Chiappa: sobre o erro que retorna, não tem mensagem de erro, retorna apenas o numero 1 (0 = Sucesso; 1 = Erro). Eu teria que rodar o comando via sistema operacional usando o usuario oracle para ver qual é o erro, mas ainda não conseguimos logar dessa maneira. Sobre a aplicação, ela terá um front-end web sim, mas ainda nem está instalado, está instalado somente o banco de dados. Faço os testes direto via PL/SQL. Assim que eu tiver novidades eu escrevo aqui! Att, Em 13 de março de 2015 10:05, angelo angelolis...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Verdade *Milton*, como ficou e ssa historia? Conseguiu imprimir ? Isso extrapola um pouco o BD, se tornou mais um problema de interface com o SO. No caso especificamente do windows: Se o servidor fosse membro de um dominio (active directory), executando com uma determinada conta e essa conta tambem configurada para acessar o share da impressora, estava tudo resolvido, pq seria transparente Agora, quando nao é membro, quando é um stand alone, o macete é colocar mesma conta e mesma senha nos dois lugares (servidor, e share da impressora).. e nunca mais trocar a senha. Mas como, ja foi comentado, o Oracle, nao imprime nada sozinho, depende de biblioteca externa, vai por conta do aplicativo, nao faria muita diferenca a conta que estivesse executando o processo. É questao mesmo de qual conta tem permissao ao quê. 2015-03-12 12:42 GMT-03:00 jlchia...@yahoo.com.br [oracle_br] oracle_br@yahoogrupos.com.br: Opa : eu tinha mandado msg antes mas pelo jeito minha internet deu xabu e não foi enviada... Os pontos que tinha colocado foram : - afaik não importa o método para execução externa (se java, dbms_scheduler, external procedure, não importa) via de regra a recomendação de indicar o processador de comandos se mantém, assim sugeri Testar a rotina passando a linha de chamada completa (ie, \pathdowindows\system32\cmd.exe /c \path\nomedoarquivo.bat) e - seria interessante que vc citasse EXATAMENTE o erro que recebe, E nos confirmasse se é impressora local ou de rede (já que acessos a recursos não-locais nem sempre é viável em PL/SQL sem extensões, o caso típico é I/O, por exemplo) === Como em outras msgs da thread vc acabou confirmando que é impressora remota, de rede, acaba sendo Crítica porém uma questão que eu não tinha pensado, que é o usuário Windows que executa o RDBMS : se for o usuário interno do sistema, é MUITO possível que esse cara não tenha privilégio externo algum, aí (obviamente) vc está logado no Windows com OUTRO usuário, e por isso consegue executar o .bat sem problemas... === Além da questão de privilégio do usuário Windows que roda o RDBMS (e em cujo account o shell script será executado), outras possibilidades Adicionais que vc pode explorar são : a. já que vc tem Java no database em questão, ao invés de o usar para executar comando externo vc pode imprimir diretamente pelo java : dá uma googlada por JAVA REMOTE PRINTER que vc acha diversos exemplos ou b. impressoras de rede normalmente rodam sob um serviço próprio, que pode ser muitas vezes acessado via rede : https://asktom.oracle.com/pls/apex/f?p=100:11:0P11_QUESTION_ID:38012348052#5258287200346885163 tem um exemplo ou c. vc disse que o seu sistema é desenvolvido em PL/SQL : como sabemos que o PL/SQL por si só NÃO TEM nenhum comando para criar telas/interfaces/frontend para o usuário, com absoluta certeza OU vc está chamando as packages de extensão web presentes no RDBMS (seja diretamente seja via APEX, FormSpider, etc), OU vc toma o caminho contrário, ie, a partir de alguma linguagem/tool externa que vc usou pra criar o frontend vc chama as rotinas PL/SQL... Em qualquer desses casos vc tem possibilidades de escrever uma rotina específica de impressão, veja lã... []s Chiappa
Re: [oracle_br] Re: Executar comando do sistema operacional
Boa tarde, Milton Sobre a surra do cara do TI, com a conta Oracle.. Se ele estiver fazendo o acesso ao servidor, por TS ( remote desktop) a conta precisa estar no grupo do windows de acesso remoto... na hora da correria, pode estar esquecendo de verificar esse detalhe. Se ele estiver na frente da maquina, console, com a senha, deveria abrir, mesmo com acesso de usuario restrito. Realmente, nao conseguir acessar o ambiente, dificulta um pouquinho, mas daqui a pouco transpõe. []s 2015-03-13 12:45 GMT-03:00 'Milton Bastos Henriquis Jr.' miltonbas...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br: Bom dia Angelo! Desculpe a demora... esse servidor e a impresssora estão lá no cliente (outro local físico) e meu acesso remoto é restrito. Chiappa: a impressora está em outra máquina, compartilhada na rede, não é local. O responsável de TI lá do cliente está apanhando muito. A questão é a seguinte: quando eu instalei o Oracle (Windows Server) a própria instalação do Oracle criou um usuario 'oracle no Windows para ficar como owner do DB. Esse usuario oracle o cara não consegue logar com ele para fazer os testes. Parece que ele já deu até permissão de administrador para esse usuario, mas quando ele tenta logar no Windows como oracle ele não consegue. Chiappa: sobre o erro que retorna, não tem mensagem de erro, retorna apenas o numero 1 (0 = Sucesso; 1 = Erro). Eu teria que rodar o comando via sistema operacional usando o usuario oracle para ver qual é o erro, mas ainda não conseguimos logar dessa maneira. Sobre a aplicação, ela terá um front-end web sim, mas ainda nem está instalado, está instalado somente o banco de dados. Faço os testes direto via PL/SQL. Assim que eu tiver novidades eu escrevo aqui! Att, Em 13 de março de 2015 10:05, angelo angelolis...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Verdade *Milton*, como ficou e ssa historia? Conseguiu imprimir ? Isso extrapola um pouco o BD, se tornou mais um problema de interface com o SO. No caso especificamente do windows: Se o servidor fosse membro de um dominio (active directory), executando com uma determinada conta e essa conta tambem configurada para acessar o share da impressora, estava tudo resolvido, pq seria transparente Agora, quando nao é membro, quando é um stand alone, o macete é colocar mesma conta e mesma senha nos dois lugares (servidor, e share da impressora).. e nunca mais trocar a senha. Mas como, ja foi comentado, o Oracle, nao imprime nada sozinho, depende de biblioteca externa, vai por conta do aplicativo, nao faria muita diferenca a conta que estivesse executando o processo. É questao mesmo de qual conta tem permissao ao quê. 2015-03-12 12:42 GMT-03:00 jlchia...@yahoo.com.br [oracle_br] oracle_br@yahoogrupos.com.br: Opa : eu tinha mandado msg antes mas pelo jeito minha internet deu xabu e não foi enviada... Os pontos que tinha colocado foram : - afaik não importa o método para execução externa (se java, dbms_scheduler, external procedure, não importa) via de regra a recomendação de indicar o processador de comandos se mantém, assim sugeri Testar a rotina passando a linha de chamada completa (ie, \pathdowindows\system32\cmd.exe /c \path\nomedoarquivo.bat) e - seria interessante que vc citasse EXATAMENTE o erro que recebe, E nos confirmasse se é impressora local ou de rede (já que acessos a recursos não-locais nem sempre é viável em PL/SQL sem extensões, o caso típico é I/O, por exemplo) === Como em outras msgs da thread vc acabou confirmando que é impressora remota, de rede, acaba sendo Crítica porém uma questão que eu não tinha pensado, que é o usuário Windows que executa o RDBMS : se for o usuário interno do sistema, é MUITO possível que esse cara não tenha privilégio externo algum, aí (obviamente) vc está logado no Windows com OUTRO usuário, e por isso consegue executar o .bat sem problemas... === Além da questão de privilégio do usuário Windows que roda o RDBMS (e em cujo account o shell script será executado), outras possibilidades Adicionais que vc pode explorar são : a. já que vc tem Java no database em questão, ao invés de o usar para executar comando externo vc pode imprimir diretamente pelo java : dá uma googlada por JAVA REMOTE PRINTER que vc acha diversos exemplos ou b. impressoras de rede normalmente rodam sob um serviço próprio, que pode ser muitas vezes acessado via rede : https://asktom.oracle.com/pls/apex/f?p=100:11:0P11_QUESTION_ID:38012348052#5258287200346885163 tem um exemplo ou c. vc disse que o seu sistema é desenvolvido em PL/SQL : como sabemos que o PL/SQL por si só NÃO TEM nenhum comando para criar telas/interfaces/frontend para o usuário, com absoluta certeza OU vc está chamando as packages de extensão web presentes no RDBMS (seja diretamente seja via APEX, FormSpider, etc), OU vc toma o caminho contrário, ie, a partir de alguma linguagem/tool
Re: [oracle_br] Re: Executar comando do sistema operacional
Opa : eu tinha mandado msg antes mas pelo jeito minha internet deu xabu e não foi enviada... Os pontos que tinha colocado foram : - afaik não importa o método para execução externa (se java, dbms_scheduler, external procedure, não importa) via de regra a recomendação de indicar o processador de comandos se mantém, assim sugeri Testar a rotina passando a linha de chamada completa (ie, \pathdowindows\system32\cmd.exe /c \path\nomedoarquivo.bat) e - seria interessante que vc citasse EXATAMENTE o erro que recebe, E nos confirmasse se é impressora local ou de rede (já que acessos a recursos não-locais nem sempre é viável em PL/SQL sem extensões, o caso típico é I/O, por exemplo) === Como em outras msgs da thread vc acabou confirmando que é impressora remota, de rede, acaba sendo Crítica porém uma questão que eu não tinha pensado, que é o usuário Windows que executa o RDBMS : se for o usuário interno do sistema, é MUITO possível que esse cara não tenha privilégio externo algum, aí (obviamente) vc está logado no Windows com OUTRO usuário, e por isso consegue executar o .bat sem problemas... === Além da questão de privilégio do usuário Windows que roda o RDBMS (e em cujo account o shell script será executado), outras possibilidades Adicionais que vc pode explorar são : a. já que vc tem Java no database em questão, ao invés de o usar para executar comando externo vc pode imprimir diretamente pelo java : dá uma googlada por JAVA REMOTE PRINTER que vc acha diversos exemplos ou b. impressoras de rede normalmente rodam sob um serviço próprio, que pode ser muitas vezes acessado via rede : https://asktom.oracle.com/pls/apex/f?p=100:11:0P11_QUESTION_ID:38012348052#5258287200346885163 tem um exemplo ou c. vc disse que o seu sistema é desenvolvido em PL/SQL : como sabemos que o PL/SQL por si só NÃO TEM nenhum comando para criar telas/interfaces/frontend para o usuário, com absoluta certeza OU vc está chamando as packages de extensão web presentes no RDBMS (seja diretamente seja via APEX, FormSpider, etc), OU vc toma o caminho contrário, ie, a partir de alguma linguagem/tool externa que vc usou pra criar o frontend vc chama as rotinas PL/SQL... Em qualquer desses casos vc tem possibilidades de escrever uma rotina específica de impressão, veja lã... []s Chiappa
Re: [oracle_br] Re: Executar comando do sistema operacional
E mais uma, Se vc conseguir fazer esta linha: * i := os_command.exec(comando_shell);* Não sei se o DBMS_SCHEDULER tem essa funcionalidade, se tiver vai ser batata. Resumindo: Executar no shell do windows com a mesma conta do usuario que acessa a impressora, seu problema vai acabar. Porque não convém mexer na conta onde o Oracle executa (provavelmente deve ter sido instalado como network service, ou system, localsystem ) Essa select aqui poderia levar o login e senha junto, pra prever essas situações. select prt_user_password, prt_path, prt_dir into pass, path, dir from printer where prt_printer = iNamePrinter; 2015-03-11 17:59 GMT-03:00 angelo angelolis...@gmail.com: Milton Vou te fazer uma pergunta, que talvez seja crucial pra matar essa charada.. Nem tem a ver com Oracle agora, vc vai entender porque: Você sabe qual usuario ( do windows ) o processo oracle está sendo executado ? Porque pergunto isso, porque quando vc passa a execução para o sistema operacional... o cara que vai rodar o comando para mandar a impressao executar, está executando sob um determinado usuario da maquina. Esse usuario pode ser tanto uma conta local ou uma conta do dominio. E como você está enviando a impressao para um share na rede, esse usuario tambem precisa ter permissao para acessar o mesmo. Por isso que quando vc testa no computador, funciona e na aplicacao não... eu desconfio que o problema esteja passando por ai Vou te dar um exemplo pratico: Na empresa, nós temos um sistema de WMS executando em um depósito. A impressao de etiqueta da mercadoria, com o codigo de barras e o mais, nao é enviada diretamente pelo Oracle mas pelo sistema e é exatamente dessa forma que vc comentou.. é impressora Zebra também, datamax.. é gerado um arquivinho com os comandos que a impressora zebra entende e copiando para o share imprime. Poderia ser assim também mas vai cair na questao da conta do computador. Essa conta que faz a impressao tem permissao de imprimir no compartilhamento No meu caso, nós combinamos com o operador logistico de criar o compartilhamento, amarrado a uma conta, com a mesma senha, para ficar igual ao windows onde roda o sistema. É uma peculiaridade de windows, isso. Verifica o processo do Oracle que esta em execucao a maquina (se vc tiver aceso a ela, veja qual conta está sendo executada) Eu to desconfiando fortemente que seu problema seja esse. 2015-03-11 17:02 GMT-03:00 'Milton Bastos Henriquis Jr.' miltonbas...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br: Chiappa, executei manualmente: c:\windows\system32\cmd.exe /c c:\wyms_print\i9Print.bat Direto no DOS, ok, funcionou. Via PL/SQL, negativo, retornou erro. Abri o link que vc enviou, mas eu acho que são casos diferentes, pois ali é via DBMS_SCHEDULER, enquanto eu estou usando uma package específica para execução de comandos do sistema operacional. Já usei outras vezes e nunca precisar especificar o interpretador! Att, Em 11 de março de 2015 16:31, jlchia...@yahoo.com.br [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Então : eu estou chutando, mas via de regra o script *** TEM *** que ser INTERPRETADO pelo Sistema Operacional, ele ** não É ** um executável de direito : assim sendo, vc tem que passar como argumento pra rotina que executa comando externo uma CHAMADA PARA O INTERPRETADOR, que no caso do Windows é o cmd.exe , veja (por exemplo) em https://community.oracle.com/message/2739501 que ele passa 'c:\windows\system32\cmd.exe /c fullpath\nomedobat.bat' , e NÂO apenas o path\nomedo.bat, yes ??? []s Chiappa
Re: [oracle_br] Re: Executar comando do sistema operacional
Então, Sem senha, na verdade é guest, convidado.. por incrivel que pareça, causa problemas também Creio que dar permissao para o usuario oracle la no compartilhamento e validar. Pra fazer a prova dos 9, loga no windows com a conta local oracle e tenta imprimir. Se conseguir imprimir, o oracle também tem que imprimir. Provavelmente o WMS nao é do mesmo fornecedor, rss... porque o meu, roda no IIS (site), no mesmo servidor oracle, mas o processo do servidor web roda com a conta que acessa a impressora Mas é esse esquema mesmo. Da permissão na conta e no compartilhamento que vai funcionar Se a impressora estivesse ligada diretamente ao servidor era mais facil.. era só mandar um copy /b arquivo prn e tava resolvido. Amanhã vc comenta o que conseguiu arrumar []s 2015-03-11 18:11 GMT-03:00 'Milton Bastos Henriquis Jr.' miltonbas...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br: Angelo, coincidentemente o meu sistema também é um WMS! E eu já desconfiava que o problema era exatamente esse - permissão de usuário do Windows. O usuario que está executando o Oracle se chama oracle mesmo. O meu usuário, que estou conectado, é outro, é um usuario milton. O usuario oracle realmente é local. A impressora é compartilhada sem senha para todos na rede. Será que é possível liberar acesso para esse usuario oracle? Vou ter que pedir isso amanha para a TI lá do cliente(estou em acesso remoto), pois já passou das 18:00 e ele já foi embora. Amanhã vou pedir isso pra ele via Skype e ver se tem solução. Muito obrigado, amanhã retorno aqui! Att, Em 11 de março de 2015 17:59, angelo angelolis...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Milton Vou te fazer uma pergunta, que talvez seja crucial pra matar essa charada.. Nem tem a ver com Oracle agora, vc vai entender porque: Você sabe qual usuario ( do windows ) o processo oracle está sendo executado ? Porque pergunto isso, porque quando vc passa a execução para o sistema operacional... o cara que vai rodar o comando para mandar a impressao executar, está executando sob um determinado usuario da maquina. Esse usuario pode ser tanto uma conta local ou uma conta do dominio. E como você está enviando a impressao para um share na rede, esse usuario tambem precisa ter permissao para acessar o mesmo. Por isso que quando vc testa no computador, funciona e na aplicacao não... eu desconfio que o problema esteja passando por ai Vou te dar um exemplo pratico: Na empresa, nós temos um sistema de WMS executando em um depósito. A impressao de etiqueta da mercadoria, com o codigo de barras e o mais, nao é enviada diretamente pelo Oracle mas pelo sistema e é exatamente dessa forma que vc comentou.. é impressora Zebra também, datamax.. é gerado um arquivinho com os comandos que a impressora zebra entende e copiando para o share imprime. Poderia ser assim também mas vai cair na questao da conta do computador. Essa conta que faz a impressao tem permissao de imprimir no compartilhamento No meu caso, nós combinamos com o operador logistico de criar o compartilhamento, amarrado a uma conta, com a mesma senha, para ficar igual ao windows onde roda o sistema. É uma peculiaridade de windows, isso. Verifica o processo do Oracle que esta em execucao a maquina (se vc tiver aceso a ela, veja qual conta está sendo executada) Eu to desconfiando fortemente que seu problema seja esse. 2015-03-11 17:02 GMT-03:00 'Milton Bastos Henriquis Jr.' miltonbas...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br: Chiappa, executei manualmente: c:\windows\system32\cmd.exe /c c:\wyms_print\i9Print.bat Direto no DOS, ok, funcionou. Via PL/SQL, negativo, retornou erro. Abri o link que vc enviou, mas eu acho que são casos diferentes, pois ali é via DBMS_SCHEDULER, enquanto eu estou usando uma package específica para execução de comandos do sistema operacional. Já usei outras vezes e nunca precisar especificar o interpretador! Att, Em 11 de março de 2015 16:31, jlchia...@yahoo.com.br [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Então : eu estou chutando, mas via de regra o script *** TEM *** que ser INTERPRETADO pelo Sistema Operacional, ele ** não É ** um executável de direito : assim sendo, vc tem que passar como argumento pra rotina que executa comando externo uma CHAMADA PARA O INTERPRETADOR, que no caso do Windows é o cmd.exe , veja (por exemplo) em https://community.oracle.com/message/2739501 que ele passa 'c:\windows\system32\cmd.exe /c fullpath\nomedobat.bat' , e NÂO apenas o path\nomedo.bat, yes ??? []s Chiappa
Re: [oracle_br] Re: Executar comando do sistema operacional
Angelo, coincidentemente o meu sistema também é um WMS! E eu já desconfiava que o problema era exatamente esse - permissão de usuário do Windows. O usuario que está executando o Oracle se chama oracle mesmo. O meu usuário, que estou conectado, é outro, é um usuario milton. O usuario oracle realmente é local. A impressora é compartilhada sem senha para todos na rede. Será que é possível liberar acesso para esse usuario oracle? Vou ter que pedir isso amanha para a TI lá do cliente(estou em acesso remoto), pois já passou das 18:00 e ele já foi embora. Amanhã vou pedir isso pra ele via Skype e ver se tem solução. Muito obrigado, amanhã retorno aqui! Att, Em 11 de março de 2015 17:59, angelo angelolis...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Milton Vou te fazer uma pergunta, que talvez seja crucial pra matar essa charada.. Nem tem a ver com Oracle agora, vc vai entender porque: Você sabe qual usuario ( do windows ) o processo oracle está sendo executado ? Porque pergunto isso, porque quando vc passa a execução para o sistema operacional... o cara que vai rodar o comando para mandar a impressao executar, está executando sob um determinado usuario da maquina. Esse usuario pode ser tanto uma conta local ou uma conta do dominio. E como você está enviando a impressao para um share na rede, esse usuario tambem precisa ter permissao para acessar o mesmo. Por isso que quando vc testa no computador, funciona e na aplicacao não... eu desconfio que o problema esteja passando por ai Vou te dar um exemplo pratico: Na empresa, nós temos um sistema de WMS executando em um depósito. A impressao de etiqueta da mercadoria, com o codigo de barras e o mais, nao é enviada diretamente pelo Oracle mas pelo sistema e é exatamente dessa forma que vc comentou.. é impressora Zebra também, datamax.. é gerado um arquivinho com os comandos que a impressora zebra entende e copiando para o share imprime. Poderia ser assim também mas vai cair na questao da conta do computador. Essa conta que faz a impressao tem permissao de imprimir no compartilhamento No meu caso, nós combinamos com o operador logistico de criar o compartilhamento, amarrado a uma conta, com a mesma senha, para ficar igual ao windows onde roda o sistema. É uma peculiaridade de windows, isso. Verifica o processo do Oracle que esta em execucao a maquina (se vc tiver aceso a ela, veja qual conta está sendo executada) Eu to desconfiando fortemente que seu problema seja esse. 2015-03-11 17:02 GMT-03:00 'Milton Bastos Henriquis Jr.' miltonbas...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br: Chiappa, executei manualmente: c:\windows\system32\cmd.exe /c c:\wyms_print\i9Print.bat Direto no DOS, ok, funcionou. Via PL/SQL, negativo, retornou erro. Abri o link que vc enviou, mas eu acho que são casos diferentes, pois ali é via DBMS_SCHEDULER, enquanto eu estou usando uma package específica para execução de comandos do sistema operacional. Já usei outras vezes e nunca precisar especificar o interpretador! Att, Em 11 de março de 2015 16:31, jlchia...@yahoo.com.br [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Então : eu estou chutando, mas via de regra o script *** TEM *** que ser INTERPRETADO pelo Sistema Operacional, ele ** não É ** um executável de direito : assim sendo, vc tem que passar como argumento pra rotina que executa comando externo uma CHAMADA PARA O INTERPRETADOR, que no caso do Windows é o cmd.exe , veja (por exemplo) em https://community.oracle.com/message/2739501 que ele passa 'c:\windows\system32\cmd.exe /c fullpath\nomedobat.bat' , e NÂO apenas o path\nomedo.bat, yes ??? []s Chiappa
Re: [oracle_br] Re: Executar comando do sistema operacional
Milton Vou te fazer uma pergunta, que talvez seja crucial pra matar essa charada.. Nem tem a ver com Oracle agora, vc vai entender porque: Você sabe qual usuario ( do windows ) o processo oracle está sendo executado ? Porque pergunto isso, porque quando vc passa a execução para o sistema operacional... o cara que vai rodar o comando para mandar a impressao executar, está executando sob um determinado usuario da maquina. Esse usuario pode ser tanto uma conta local ou uma conta do dominio. E como você está enviando a impressao para um share na rede, esse usuario tambem precisa ter permissao para acessar o mesmo. Por isso que quando vc testa no computador, funciona e na aplicacao não... eu desconfio que o problema esteja passando por ai Vou te dar um exemplo pratico: Na empresa, nós temos um sistema de WMS executando em um depósito. A impressao de etiqueta da mercadoria, com o codigo de barras e o mais, nao é enviada diretamente pelo Oracle mas pelo sistema e é exatamente dessa forma que vc comentou.. é impressora Zebra também, datamax.. é gerado um arquivinho com os comandos que a impressora zebra entende e copiando para o share imprime. Poderia ser assim também mas vai cair na questao da conta do computador. Essa conta que faz a impressao tem permissao de imprimir no compartilhamento No meu caso, nós combinamos com o operador logistico de criar o compartilhamento, amarrado a uma conta, com a mesma senha, para ficar igual ao windows onde roda o sistema. É uma peculiaridade de windows, isso. Verifica o processo do Oracle que esta em execucao a maquina (se vc tiver aceso a ela, veja qual conta está sendo executada) Eu to desconfiando fortemente que seu problema seja esse. 2015-03-11 17:02 GMT-03:00 'Milton Bastos Henriquis Jr.' miltonbas...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br: Chiappa, executei manualmente: c:\windows\system32\cmd.exe /c c:\wyms_print\i9Print.bat Direto no DOS, ok, funcionou. Via PL/SQL, negativo, retornou erro. Abri o link que vc enviou, mas eu acho que são casos diferentes, pois ali é via DBMS_SCHEDULER, enquanto eu estou usando uma package específica para execução de comandos do sistema operacional. Já usei outras vezes e nunca precisar especificar o interpretador! Att, Em 11 de março de 2015 16:31, jlchia...@yahoo.com.br [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Então : eu estou chutando, mas via de regra o script *** TEM *** que ser INTERPRETADO pelo Sistema Operacional, ele ** não É ** um executável de direito : assim sendo, vc tem que passar como argumento pra rotina que executa comando externo uma CHAMADA PARA O INTERPRETADOR, que no caso do Windows é o cmd.exe , veja (por exemplo) em https://community.oracle.com/message/2739501 que ele passa 'c:\windows\system32\cmd.exe /c fullpath\nomedobat.bat' , e NÂO apenas o path\nomedo.bat, yes ??? []s Chiappa
Re: [oracle_br] Re: Executar comando do sistema operacional
Chiappa, executei manualmente: c:\windows\system32\cmd.exe /c c:\wyms_print\i9Print.bat Direto no DOS, ok, funcionou. Via PL/SQL, negativo, retornou erro. Abri o link que vc enviou, mas eu acho que são casos diferentes, pois ali é via DBMS_SCHEDULER, enquanto eu estou usando uma package específica para execução de comandos do sistema operacional. Já usei outras vezes e nunca precisar especificar o interpretador! Att, Em 11 de março de 2015 16:31, jlchia...@yahoo.com.br [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Então : eu estou chutando, mas via de regra o script *** TEM *** que ser INTERPRETADO pelo Sistema Operacional, ele ** não É ** um executável de direito : assim sendo, vc tem que passar como argumento pra rotina que executa comando externo uma CHAMADA PARA O INTERPRETADOR, que no caso do Windows é o cmd.exe , veja (por exemplo) em https://community.oracle.com/message/2739501 que ele passa 'c:\windows\system32\cmd.exe /c fullpath\nomedobat.bat' , e NÂO apenas o path\nomedo.bat, yes ??? []s Chiappa
[oracle_br] Re: Executar comando do sistema operacional
Então : eu estou chutando, mas via de regra o script *** TEM *** que ser INTERPRETADO pelo Sistema Operacional, ele ** não É ** um executável de direito : assim sendo, vc tem que passar como argumento pra rotina que executa comando externo uma CHAMADA PARA O INTERPRETADOR, que no caso do Windows é o cmd.exe , veja (por exemplo) em https://community.oracle.com/message/2739501 que ele passa 'c:\windows\system32\cmd.exe /c fullpath\nomedobat.bat' , e NÂO apenas o path\nomedo.bat, yes ??? []s Chiappa