Archive for the ‘windows server’ Tag

[CC] Como extrair texto de um arquivo de dados (binário) em Windows

Para um usuário acostumado com o mundo *nix, extrair textos (strings) de arquivos binários é trivial. Basta utilizar o comando “strings”. Mas em um Windows Server, como faço isto? É mais simples que eu poderia imaginar! Existe o comando “findstr”. MUITO útil e BASTANTE funcional!!!

Exemplo de uso:

findstr "meu nome" arquivo.dat

 

Referências:

[1] Findstr – Search for stringshttp://ss64.com/nt/findstr.html
[2] Findstrhttps://technet.microsoft.com/en-us/library/bb490907.aspx
[3] Findstrhttp://en.wikipedia.org/wiki/Findstr

Anúncios

Permitindo execução de tarefas em BATs em ambiente Windows

Como administrador de banco de dados, as vezes encontro alguns Windows Server em meu caminho.

Quem me conhece sabe que minha preferência é explícita para ambiente Linux, ou eventualmente Unix (estes têm se tornado mais raros hoje em dia). Mas como o cliente tem sempre razão, nem sempre conseguimos trabalhar no melhor dos ambientes! 🙂

Por isto, qual não foi minha surpresa em descobrir que não é mais tão simples rodar um .BAT em Windows Server (provavelmente a partir do 2008 – não fiz testes em outras versões, mas no passado rodava sem dificuldades em Windows NT!)

Sim, eu conheci computadores na era do “DOSnossauros”! Não nasci na geração das janelas…

A primeira surpresa, pra mim, foi verificar que o padrão de criação de tarefas é que as mesmas apenas executem com o usuário logado. Se eu quisesse isto, eu mesmo disparava a rotina!

Ao modificar a tarefa para que esta execute tanto quando o usuário esteja logado ou quando não tiver uma sessão, é necessário escolher a opção apropriada. Ao escolher esta opção, é solicitada a senha (até aqui tranquilo, embora desnecessário, no meu ver). Ao definir a senha do usuário, recebo uma mensagem incômoda que preciso ajustar uma policy pois o comportamento padrão não permite execução de arquivos de lote.

Tentei algumas opções via GPO e não obtive muito sucesso. Até que encontrei este blog [1] onde descreviam os passos que reproduzo abaixo. Isto solucionou meu problema! Espero que ajude mais pessoas.

  1. Abrir janela de comando (cmd);
  2. Executar secpol.msc;
  3. Selecionar Local Policies no painel da esquerda;
  4. Selecione User Rights Assignment;
  5. Botão direito em Log on as batch job e escolha Properties;
  6. Clique em Add User or  Group e adicione o usuário que executará a rotina.

Referência:

[1] Keloism. Windows Task Scheduler: This task requires that the user account specified has log on as batch job rights. URL: https://ashishkelo.wordpress.com/2012/09/19/windows-task-scheduler-this-task-requires-that-the-user-account-specified-has-log-on-as-batch-job-rights/