{"id":37232994,"url":"https://github.com/crphp/wmic","last_synced_at":"2026-01-15T03:51:52.253Z","repository":{"id":56959521,"uuid":"75107209","full_name":"crphp/wmic","owner":"crphp","description":"Está biblioteca disponibiliza um mecanismo para CONSULTAR máquinas Windows remotamente","archived":false,"fork":false,"pushed_at":"2016-11-29T18:13:50.000Z","size":18,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-08-13T01:44:40.798Z","etag":null,"topics":["wmi","wmic"],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/crphp.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"license","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-11-29T17:52:12.000Z","updated_at":"2018-08-27T22:39:51.000Z","dependencies_parsed_at":"2022-08-21T09:50:50.365Z","dependency_job_id":null,"html_url":"https://github.com/crphp/wmic","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/crphp/wmic","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crphp%2Fwmic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crphp%2Fwmic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crphp%2Fwmic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crphp%2Fwmic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/crphp","download_url":"https://codeload.github.com/crphp/wmic/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crphp%2Fwmic/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28419257,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T10:47:48.104Z","status":"ssl_error","status_checked_at":"2026-01-14T10:46:19.031Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["wmi","wmic"],"created_at":"2026-01-15T03:51:51.568Z","updated_at":"2026-01-15T03:51:52.245Z","avatar_url":"https://github.com/crphp.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# crphp/wmic\nEstá biblioteca faz uso do **WQL (WMI Query Language)** para disparar exclusivamente **consultas** \nremotas a máquinas Windows.\n\n\u003e**crphp/wmi** e **crphp/wmic** possuem os mesmos recursos de consulta, porém, somente \n[crphp/wmi](https://github.com/crphp/wmi) tem a capacidade de gerenciar recursos remotos, \ncomo parar serviços, matar processos etc.\n\nEstá biblioteca segue os padrões descritos na [PSR-2](http://www.php-fig.org/psr/psr-2/), logo, \nisso implica que a mesma está em conformidade com a [PSR-1](http://www.php-fig.org/psr/psr-1/).\n\nAs palavras-chave \"DEVE\", \"NÃO DEVE\", \"REQUER\", \"DEVERIA\", \"NÃO DEVERIA\", \"PODERIA\", \"NÃO PODERIA\", \n\"RECOMENDÁVEL\", \"PODE\", e \"OPCIONAL\" neste documento devem ser interpretadas como descritas no \n[RFC 2119](http://tools.ietf.org/html/rfc2119). Tradução livre [RFC 2119 pt-br](http://rfc.pt.webiwg.org/rfc2119).\n\n1. [Referências](#referencia)\n1. [Funcionalidades](#funcionalidades)\n1. [Requisitos (recomendados)](#requisitos)\n1. [Compilando e testando o WMIC](#compilando)\n1. [Preparando as máquinas cliente](#preparando-a-maquina-cliente)\n1. [Baixando o pacote crphp/wmic para o servidor](#wmic)\n1. [Exemplos de uso](#exemplos)\n1. [Licença (MIT)](#licenca)\n\n## 1 - \u003ca id=\"referencias\"\u003e\u003c/a\u003eReferências\n - [PSR-1](http://www.php-fig.org/psr/psr-1/)\n - [PSR-2](http://www.php-fig.org/psr/psr-2/)\n - [RFC 2119](http://tools.ietf.org/html/rfc2119). Tradução livre [RFC 2119 pt-br](http://rfc.pt.webiwg.org/rfc2119)\n\n## 2 - \u003ca id=\"funcionalidades\"\u003e\u003c/a\u003eFuncionalidades\n- [x] Consultar CPU\n- [x] Consultar RAM\n- [x] Consultar Disco Rígido\n- [x] Consultar Serviço\n- [x] Listar Serviços\n- [x] Consultar processo\n- [x] Listar processos\n- [x] Transformação de timestamp Windows para data/hora\n- [ ] Listar sessões\n\n## 3 - \u003ca id=\"preparando-o-servidor\"\u003e\u003c/a\u003ePreparando o servidor\n\u003e :exclamation: Os requisitos sugeridos logo abaixo representam as versões utilizadas em nosso ambiente \nde desenvolvimento e produção, logo não garantimos que a solução aqui apresentada irá rodar integralmente \ncaso as versões dos elementos abaixo sejam outras.\n\n### 3.1 - \u003ca id=\"requisitos\"\u003e\u003c/a\u003eRequisitos (recomendados)\nServidor\n- REQUER Debian \u003e= 8.5.0 (32 ou 64 Bits)\n- REQUER wmi-1.3.14 (código fonte)\n- REQUER Apache \u003e= 2.4.10\n- REQUER PHP \u003e= 5.5.12\n\nCliente\n- REQUER Windows (desktop \u003e= Windows 7 ou Windows Server \u003e= 2003)\n- NÃO REQUER a instalação de nenhum componente\n\n## 4 - \u003ca id=\"compilando\"\u003e\u003c/a\u003eCompilando e testando o WMIC\nEstou presupondo que você já tem uma distribuição GNU/Linux, preferencialmente \nDebian, com Apache e PHP devidamente configurados.\n\n### 4.1 - autoconf\nInstalando autoconf, make e gcc:\n```\n# apt-get install autoconf\n# apt-get install make\n# apt-get install gcc\n```\n\n### 4.2 - wmi-1.3.14\n**Etapa 1** - download e extração dos fonts do WMIC:\n```bash\n$ wget http://www.openvas.org/download/wmi/wmi-1.3.14.tar.bz2\n$ tar -xvf wmi-1.3.14.tar.bz2\n```\n\n**Etapa 2** - Configurar GNUmakefile\n```bash\n$ cd wmi-1.3.14/\n$ sed -i \"1s/^/ZENHOME=..\\/..\\n/\" GNUmakefile\n```\n\n**Etapa 3** - Compilar WMIC\n```bash\n$ make \"CPP=gcc -E -ffreestanding\"\n```\n\nAo fim da execução do comando make você saberá que terá corrido tudo bem caso as ultimas 3 linhas de output sejam algo parecido com:\n```\ncp: o alvo “../../lib/python” não é um diretório\nGNUmakefile:43: recipe for target 'pywmi-installed' failed\nmake: *** [pywmi-installed] Error 1\n```\n\n**Etapa 4** - Renomear binário e testando:\n```bash\n$ mv bin wmic\n$ ./wmic -U usuario%'senha' //ip \"SELECT Caption FROM Win32_OperatingSystem\"\n```\n\nOutput do comando executado acima:\n```\nCLASS: Win32_OperatingSystem\nCaption\nMicrosoft« Windows Server« 2008 Enterprise \n```\n\n**Obs**: Caso ocorra erro de conexão consulte o tópico 5 para liberar regra de firewall no cliente\n\n**Etapa 5** - Adicionando binário a um diretório de \"sistema\":\n```bash\n$ mv wmic /usr/bin/\n```\n\n## 5 - \u003ca id=\"preparando-a-maquina-cliente\"\u003e\u003c/a\u003ePreparando a máquina cliente\nEssas configurações DEVE ser executadas em todas as máquinas (cliente) alvos de gerenciamento remoto.\n\nCaminho para as regras de firewall:\n```\nPainel de Controle \u003e Ferramentas Administrativas \u003e Firewall do Windows com Segurança Avançada\n```\n\nPara permitir as conexões externa teremos que habilitar as **Regras de Entrada**:\n```\nInstrumentação de Gerenciamento do Windows (DCOM-In)\nInstrumentação de Gerenciamento do Windows (WMI-In)\n```\n\nE as **Regras de Saída**:\n```\nInstrumentação de Gerenciamento do Windows (WMI-Saída)\n```\n\nPara não ter problema, é RECOMENDÁVEL que o usuário de conexão remota tenha privilégio de administrador \nna máquina de destino. Obviamente você PODE configurar o contexto de acesso caso tenha alguma familiridade \ncom este assunto.\n\n## 6 - \u003ca id=\"wmic\"\u003e\u003c/a\u003eBaixando o pacote crphp/wmic para o servidor\nPara a etapa abaixo estou pressupondo que você tenha o composer instalado e saiba utilizá-lo:\n```\ncomposer require crphp/wmic\n```\n\nOu se preferir criar um projeto:\n```\ncomposer create-project --prefer-dist crphp/wmic nome_projeto\n```\n\nCaso ainda não tenha o composer instalado, obtenha este em: https://getcomposer.org/download/\n\n## 7 - \u003ca id=\"exemplos\"\u003e\u003c/a\u003eExemplos de uso\n**Consultar CPU**:\n```php\nuse Crphp\\Wmic\\Sistema\\Cpu;\nuse Crphp\\Wmic\\Conector\\Wmic;\n\n$wmi = new Wmic;\n$wmi-\u003econectar('ip_ou_hostname', 'usuario', 'senha');\n\nif($wmi-\u003estatus()) {\n    $cpu = new Cpu($wmi);\n    echo \"\u003cpre\u003e\";\n    print_r($cpu-\u003edetalhes());\n    echo \"\u003c/pre\u003e\";   \n} else {\n    echo $wmi-\u003emensagemErro();\n}\n```\n\nTodas as demais classes funcionam praticamente da mesma forma.\n\n**Consultar Disco Rígido**\n```php\nuse Crphp\\Wmic\\Conector\\Wmic;\nuse Crphp\\Wmic\\Sistema\\DiscoRigido;\n\n$wmi = new Wmic;\n$wmi-\u003econectar('ip_ou_hostname', 'usuario', 'senha');\n\nif($wmi-\u003estatus())\n{\n    $obj = new DiscoRigido($wmi, \"C\"); // a unidade pode ser omitida\n    echo \"\u003cpre\u003e\";\n    print_r($obj-\u003edetalhes());\n    echo \"\u003c/pre\u003e\";   \n} else {\n    echo $wmi-\u003emensagemErro();\n}\n```\n\u003e Você DEVE sempre instânciar o conector Wmi e a classe referente ao elemento que deseja manipular\n\n**Também é possível executar suas próprias consultas customizadas**\n```php\nuse Crphp\\Wmic\\Conector\\Wmic;\n\n$wmi = new Wmic;\n$wmi-\u003econectar('ip_ou_hostname', 'usuario', 'senha');\n\nif($wmi-\u003estatus()) {\n    $memoria = $wmi-\u003eexecutar(\"select AvailableBytes from Win32_PerfRawData_PerfOS_Memory\");\n    // Será retornado um objeto em caso de sucesso ou uma string em caso de erro\n} else {\n    echo $wmi-\u003emensagemErro();\n}\n```\n\n## 8 - \u003ca id=\"licenca\"\u003eLicença (MIT)\nPara maiores informações, leia o arquivo de licença disponibilizado junto desta biblioteca.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrphp%2Fwmic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcrphp%2Fwmic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrphp%2Fwmic/lists"}