Consulta em lote Tags de serviço da Dell

9

Alguém sabe de uma maneira de obter um monte de informações para uma lista de tags de serviço? A Dell tem uma seção em seu site para isso? Eu também estaria aberto a qualquer biblioteca Perl / Python ou scripts shell * nix.

Neste momento, quero principalmente uma data para cada tag.

    
por Kyle Brandt 22.09.2009 / 17:49

10 respostas

19

Faça o download do seguinte URL (substituindo SVCTAG no final com a tag de serviço real) de cada tag:

http://support.dell.com/support/topics/global.aspx/support/my_systems_info/details?c=us&l=en&s=gen&ServiceTag=SVCTAG

A análise da página resultante para a informação em que você está interessado é deixada como um exercício para o leitor: -)

    
por 22.09.2009 / 19:15
3

Adicione seu sistema no site de suporte da Dell, na seção " my Systems ". Você pode manipular até 100 sistemas.

Você precisa ter uma conta no site da Dell, é claro.

Infelizmente eu não sei sobre um sistema em lote para fazer o trabalho, mesmo que você possa usar curl, snoopy ou o que você estiver familiarizado para fazer automaticamente o login, recuperar a lista e analisar os resultados.

    
por 22.09.2009 / 17:56
3

Eu sei que este é um post antigo, mas passei um bom número de horas nisto e pensei em ajudar qualquer outra pessoa que se deparasse com isso. O novo site da Dell é todo javascript e não consegui descobrir como codificá-lo para consultar os dados da etiqueta de serviço. Depois de algum tempo eu pensei em usar o site móvel deles (mobile = no javascript) e isso funcionou para mim usando perl / LWP para puxar os dados para baixo em cada tag de serviço. Eu sou um hacker perl, então alguém pode ser capaz de escrever isso um pouco mais limpo. O abaixo puxa a configuração original do sistema. A ideia é que o primeiro URL 'get' atraia um cookie com a tag de serviço e o segundo URL obtenha os dados desejados sobre a tag de serviço. Você pode então analisar o "$ answer" do segundo get para os dados que você está procurando.

#!/usr/bin/perl

use strict;
use LWP::Simple;
use LWP::UserAgent;

my $inputfile  = $ARGV[0];

my ($url,$response,$answer);

open (DATA, $inputfile) or die "Can't open $inputfile \n";
foreach my $serviceTag (<DATA>)
{
   chomp $serviceTag;
   print "\n$serviceTag";

   ##### Allow Cookies
   my $browser = LWP::UserAgent->new;
   $browser->cookie_jar({});
   $browser->cookie_jar( HTTP::Cookies->new(
      'file' => 'cookies.lwp',  # where to read/write cookies
      'autosave' => 0           # do not save it to disk when done
   ));

   # declare agent as mozilla, not perl LWP
   $browser->agent("Mozilla/8.0");

   my $urlPartA = "http://m.dell.com/mt/www.dell.com/support/troubleshooting/us/en/19/Servicetag/";
   my $urlPartB = "?s=BIZ&un_jtt_redirect";
   my $firstURL = join('', $urlPartA,$serviceTag,$urlPartB);
   #print "\nURL = $firstURL";


   $url = URI->new("$firstURL");
   $response = $browser->get( $url );
   $answer = $response->content;
   #print "\nAnswer:\n$answer\n\n";

   $url = URI->new('http://m.dell.com/mt/www.dell.com/support/troubleshooting/us/en/555/TroubleShooting?name=TroubleShooting_SystemConfigurationTab');
   $response = $browser->get( $url );
   $answer = $response->content;
   #print "\nAnswer:\n$answer\n\n";
}
    
por 09.04.2013 / 15:50
2

A etiqueta de serviço é geralmente análoga ao número de série.

A classe WMI Win32_BaseBoard.SerialNumber contém essas informações. Google "wmi serial number" e você encontrará várias soluções de exemplo para obter esses dados. Usamos um script em tempo de compilação para nomear a caixa usando o número de série e outros caracteres pré-definidos como nomes de host da nossa estação de trabalho, o que facilita muito a solução de problemas com um grande número de clientes.

    
por 22.09.2009 / 18:29
2

A Dell agora tem a opção de salvar suas tags de serviço. Você precisa criar um login com eles e isso é tudo. Ele também mostra quais servidores as garantias estão expirando e você pode exportar a partir dele.

    
por 30.09.2011 / 16:35
1
#!/usr/bin/python

# dell_warranty.py v0.1
# Written by Frode Egeland <egeland[at]gmail.com> - Copyright 2009
# Released under the terms of the GNU GPL v3 - see http://www.gnu.org/licenses/gpl-3.0.html
#
# Version History
# 0.1 - 2009-10-12 - Frode Egeland - Initial version. Tested with a simple csv list of service tags only.
# 

import urllib2, csv, re
from BeautifulSoup import BeautifulSoup

url="http://support.dell.com/support/topics/global.aspx/support/my_systems_info/details?c=us&l=en&s=gen&ServiceTag=%s"

stlist = []

# generate a list of servicetags from a csv
csvfile = csv.reader(open('taglist.csv'))

for line in csvfile:
 for entry in line:
  stlist.append(entry)

fixdate = re.compile("(\d{1,2})\/(\d{1,2})\/(\d{4})")

print "Service Tag, Warranty Type, Provider, Start Date, End Date, Days Remaining"

for currtag in stlist:
 page = urllib2.urlopen(url % (currtag,))

 for line in page.readlines():
  if "Parts only Warranty" in line:
   soup = BeautifulSoup(line)
   break
 table = soup.find('table',{'class':"contract_table"})
 rows = table.findAll('tr')
 rows = rows[1:]
 for row in rows:
  output = "%s" % (currtag,)
  cells = row.findAll('td')
  for cell in cells:
   if cell.a: # link / formatted text
    txt = cell.a.string
   elif cell.b: # bold text
    txt = cell.b.string
   elif cell.i: # italic
    txt = cell.i.string
   else: #normal text
    txt = cell.string
   match = fixdate.search(txt)
   if match:
    txt = "%d-%d-%d" % (int(match.group(3)),int(match.group(1)),int(match.group(2)))
   output = "%s,%s" % (output,txt)
  output = output.strip()
  print output
    
por 13.10.2009 / 01:02
1

Eu sei que este é um tópico bastante antigo (eu só o encontrei porque estava vinculado por um novo), mas talvez você possa usar este plugin nagios: troca de nagios

python check_dell_warranty.py
OK: Service Tag: tag Warranty: Next Business Day, Provider: DELL, Start: 2010-02-24, End: 2013-02-25, Days left: 860 Warranty: NBD ProSupport For IT On-Site, Provider: DELL, Start: 2010-02-24, End: 2013-02-25, Days left: 860

O script consulta o host local padrão, tentando dmidecode. Você também pode executá-lo em um host remoto usando o SNMP ou pode executá-lo a partir do NRPE. Muito útil.

    
por 19.10.2010 / 19:16
-1
dmidecode -s system-serial-number

retornará a tag de serviço

você pode usar o ssh para executá-lo remotamente em todos os seus sistemas em um lote. assumindo que todos eles estão executando o Linux, é claro

    
por 22.09.2009 / 18:10
-1

Eu tenho um script auto-it que cria um arquivo csv a partir de uma lista de tags de serviço pesquisando o site de suporte da Dell.

Você pode seguir a mesma lógica para extrair outras informações e colocá-las no formato csv

link

    
por 10.09.2014 / 16:46
-1

Observação: essa é a edição editada de esta resposta

A Dell mudou seu website recentemente.

Atualizei o script Perl acima para permitir essa alteração.

Eu só estava interessado em descartar as datas de envio de cada máquina para um arquivo de texto, então apenas analisei isso, mas tenho certeza de que o código pode ser facilmente modificado para pegar os dados que você quiser.

===

#!/usr/bin/perl

use strict;
use LWP::Simple;
use LWP::UserAgent;
use Mojo::DOM;

my $inputfile  = $ARGV[0];

my ($url,$response,$html);
my $outputfile = "result.txt";
open (DATA, $inputfile) or die "Can't open $inputfile \n";
open OUTPUT, ">>".$outputfile or die "Could not open '$outputfile'\n";
foreach my $serviceTag (<DATA>)
{
   chomp $serviceTag;
   print "\n$serviceTag\n";
   print OUTPUT $serviceTag."\t";
   ##### Allow Cookies
   my $browser = LWP::UserAgent->new;
   $browser->cookie_jar({});
   $browser->cookie_jar( HTTP::Cookies->new(
      'file' => 'cookies.lwp',  # where to read/write cookies
      'autosave' => 0           # do not save it to disk when done
   ));

   # declare agent as mozilla, not perl LWP
   $browser->agent("Mozilla/8.0");
    #    
   my $urlPartA = "http://www.dell.com/support/home/us/en/19/product-support/servicetag/";
    #   configuration
   my $urlPartB = "/configuration";
   my $firstURL = join('', $urlPartA,$serviceTag,$urlPartB);
   #print "\nURL = $firstURL";

   $url = URI->new("$firstURL");
   $response = $browser->get( $url );
   $html = $response->content;
   #print "\nAnswer:\n$html\n\n";

   my @values;
   my $dom = Mojo::DOM->new;
   $dom->parse($html);
   my $skip;
   for my $dd ($dom->find('div.col-lg-4.col-md-4.col-sm-3.col-xs-6')->each) {
    push(@values, $dd->text) if $skip++;
    #print $dd->text, "\n" if $skip++;
   }
    print $values[1]."\n";
    if ( $values[1] =~ m/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/ )

    {   # format date better for Excel
        #print OUTPUT $values[1]."\n";
        print OUTPUT "$3-$1-$2\n";
    }

    print $values[1]."\n";
    print "$3-$1-$2\n";
}


close OUTPUT or die $!;
    
por 16.01.2015 / 13:52