Powershell procura impressoras conectadas em rede

2

Atualmente, estou trabalhando na criação de um script PS para examinar uma rede e recuperar todos os Windows Servers, suas chaves de produto, chaves de produto do SQL Server, CPU, RAM, compartilhamentos de rede e serviços em todos os servidores Windows encontrados. Basicamente, isso é para compilar uma lista de informações para avaliações de sites antes de incorporar redes às nossas quando nossa empresa compra um novo escritório / outra empresa. Até agora, consegui fazer com que toda essa parte funcionasse de maneira bastante precisa, com as informações sendo enviadas para arquivos .txt ou .csv.

A única outra grande parte que falta nas informações que eu quero reunir são as impressoras de rede. Até agora, a coisa mais próxima que posso encontrar é um método para retornar os dispositivos uPNP na rede, que não retorna todas as impressoras. Os únicos que estão retornando atualmente são os multifuncionais Ricoh e também temos um mix de impressoras HP e outras na rede.

Minha pergunta é se existe um método ou uma função dentro do Powershell para recuperar o IP, Make e Model de impressoras em uma rede? Atualmente, o script leva a entrada dos usuários para que uma rede digitalize na forma de XXX0 e recupere informações por IP (por meio de um loop e um contador) até XXX254 assim, se o método / cmdlet for específico do IP / host, tudo bem.

Não encontrei nada para recuperar as informações das impressoras usando PS, a não ser que impressoras ou impressoras locais saiam de um servidor de impressão e a maioria das empresas com as quais lidamos não tem servidores de impressão.

Obrigado antecipadamente.

    
por Mike Naylor 06.03.2014 / 21:42

2 respostas

4

Por fim, para resolver o problema, encontrei um método para verificar as respostas na porta 9100, que é usada pela maioria das impressoras de rede, e enviar a lista de IPs para um arquivo Printers.csv. Isso funcionará como uma referência para preencher os endereços da impressora manualmente mais tarde. Alguns dos métodos usados foram extraídos de este artigo no caso de alguém desejar referenciá-lo. Mudei a porta para 9100 e configurei uma instrução IF para enviar IPs para uma matriz enquanto passava pela rede e, em seguida, empurre a matriz para o .csv.

Até agora, isso funcionou nas impressoras Ricoh, HP e Konica em nosso ambiente. Espero que isso ajude qualquer outra pessoa que esteja trabalhando com o Powershell a criar um script de verificação rápido.

ATUALIZAÇÃO:

Aqui está uma cópia do arquivo .ps1 que eu fiz até agora, caso alguém mais esteja trabalhando em um projeto similar. Ele não retorna nomes de servidores ESX ou marcas e modelos de impressoras, mas pelo menos coloca os IPs em um CSV para que você saiba onde começar a procurar.

    
por 07.03.2014 / 21:26
0

Eu vou responder a sua pergunta com um método diferente de conseguir o que você quer, não uma maneira de fazer do jeito que você está perguntando.

Já olhou para o Spiceworks? Ele faz um trabalho de reunir todos (ou pelo menos a maioria) dessas informações e muito mais, e é grátis. Eu trabalho para uma empresa de consultoria que faz avaliações de TI para pequenas empresas, e a usamos para obter uma boa primeira passagem de todo o estoque.

Eles já dedicaram tempo a descobrir os ganchos da maioria dos dispositivos para obter essa informação. Se você fizer isso do zero, você precisa saber como cada fornecedor de impressora configurou o HTML para suas páginas de gerenciamento (e pode haver várias linhas de produto por fornecedor) e você teria que fazer isso. Você terá que criar um banco de dados de todos os fornecedores de impressoras e linhas de produtos, com a maneira de consultar as informações do produto para cada um deles - se for via SNMP ou telnet, ou copiar uma página HTTP (S). Spiceworks já fará isso por você.

Eu sou um grande fã de fazer algo legal e interessante, mas eu sou um grande fã de não reinventar rodas, especialmente se eu não estou vendendo rodas, eu estou dirigindo as pessoas ao redor.

    
por 06.03.2014 / 22:05