Dellサービスタグのバッチクエリ


9

サービスタグのリストに関する一連の情報を取得する方法を知っている人はいますが、Dellは自分のサイトにこのセクションを持っていますか?また、Perl / Pythonライブラリまたは* nixシェルスクリプトも利用できます。

現在、私はほとんどの場合、各タグに何らかの種類の日付が必要です。


正確に言うと、デルから「大量の情報を入手する」ように依頼するとはどういう意味ですか?
eleven81

保証終了日は私が探しているものでしょう。発送日もいいですね。
エヴァンアンダーソン、

クイック検索で、マシンにサービスタグを照会したい人はたくさんいますが、Dell Webサイトに照会する人はほとんどいませんでした。Spiceworksは、サービスタグを、URL引数としてサービスタグを取得するドライバーダウンロードページにリンクします。次に、そのページから「システム構成」ページに移動すると、Spiceworksから提供されたサービスタグが使用されます(ただし、この時点ではURLには含まれていません)。サービスタグを渡すことができるURLを見つけるだけでなく、画面をスクレイピングできるHTMLを返すように見えます。残念です。それは便利でしょう。
エヴァンアンダーソン

回答:


19

タグごとに次のURLをダウンロードします(末尾のSVCTAGを実際のサービスタグに置き換えます)。

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

興味のある情報の結果ページを解析することは、読者のための演習として残します:-)


2
ページ形式が最近変更され、解析が困難になりました。xserv.dell.com/services/assetservice.asmx?WSDLで利用可能なAPIがあるようです。クエリを実行する簡単なスクリプト:gist.github.com/1893036
Daniel

@DanielこのWebサービスとスクリプト例は、IMOの最良のソリューションであり、おそらくあまり知られていません。適切な回答として再投稿してください。+ 1します。
Patrick

3

システムをデルサポートサイトの「マイシステム」セクションに追加します。最大100のシステムを処理できます。

もちろん、デルのサイトへのアカウントが必要です。

残念ながら、もちろんcurlやsnoopyなどの使い慣れたものを使用して自動的にログインし、リストを取得して結果を解析することができるとしても、バッチシステムについてはわかりません。


3

私はこれが古い記事であることを知っていますが、私はこれにかなりの時間を費やし、これに遭遇した他の誰かを助けたいと思いました。デルの新しいサイトはすべてjavascriptであり、サービスタグデータを照会するためにそれをコード化する方法を理解できませんでした。しばらくしてから、代わりにモバイルサイト(mobile = javascriptなし)を使用することを考えましたが、perl / LWPを使用して各サービスタグのデータを取得するのに役立ちました。私はperlハッカーなので、他の誰かがこれをもう少しきれいに書けるかもしれません。以下は元のシステム設定を引き出します。最初のURL 'get'はサービスタグ付きのCookieをプルし、2番目のURL getはサービスタグについて必要なデータをプルするという考え方です。次に、探しているデータの2番目のgetの「$ answer」を解析できます。

#!/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";
}

2

サービスタグは通常、シリアル番号と類似しています。

WMI Win32_BaseBoard.SerialNumberクラスには、この情報が含まれています。Googleの「wmiシリアル番号」と、このデータを取得するためのソリューションの例がいくつか見つかります。ビルド時にスクリプトを使用して、ワークステーションのホスト名としてシリアル番号とその他の先頭に付加された文字を使用してボックスに名前を付けます。これにより、多数のクライアントでのトラブルシューティングがはるかに簡単になります。


2
カイルはすでにサービスタグを持っていると思います。彼はなど、日付を出荷し、サービスtags--保証の終了日についての情報を取得するために、Dellのウェブサイトを照会したい
エヴァンアンダーソンを

ああ、私はばかです!
duffbeer703 09/09/23

2

デルには、サービスタグを保存するオプションがあります。あなたは彼らとのログインを作成する必要があり、それがすべてです。また、どのサーバーの保証が期限切れになるかを示し、そこからエクスポートできます。


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

1

私はこれがかなり古いスレッドであることを知っています(新しいスレッドからリンクされたため、私はそれを見つけました)が、おそらくこのnagiosプラグインを使用できます:nagios exchange

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

スクリプトは標準のlocalhostにクエリを送信し、dmidecodeを試行します。SNMPを使用してリモートホストに対して実行することも、NRPEから実行することもできます。かなり便利です。


-1
dmidecode -s system-serial-number

サービスタグを返します

sshを使用して、すべてのシステムでリモートでバッチで実行できます。もちろん、全員がLinuxを実行していると仮定します


2
あなたは誤解していると思います。カイルはすでにサービスタグを持っています。彼は、DellのWebサイトに問い合わせて、サービスタグに関する情報を取得したいと考えています。
エヴァンアンダーソン

エヴァンは私が何を
カイル・ブラント

ああ、私は修正された状態で立っています:)
dyasny 2009

'dmidecode' is not recognized as an internal or external command, operable program or batch file.デルのラップトップに乗ります。
starbeamrainbowlabs

次に、dmidecodeをインストールする必要があります
dyasny


-1

注:これはこの回答の編集された再投稿です

デルは最近ウェブサイトを変更しました。

この変更を可能にするために、上記のPerlスクリプトを更新しました。

各マシンの出荷日をテキストファイルにダンプすることだけに関心があったので、それを解析しただけですが、コードを簡単に変更して、必要なデータを取得できると確信しています。

===

#!/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 $!;

2
元の回答を編集する必要があります。
ディアハンター
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.