Microsoft の認定学習コース「DP‑700」を進める際、教材データ orders.zip を GitHub の直リンクから取得できない――そんな問い合わせが少なくありません。多くはリンク切れではなく、職場ネットワークの制限やブラウザ・プロキシ設定に起因します。本記事では、最短の復旧から恒久対策まで“その場で使える”具体手順を網羅的に解説します。
DP‑700 教材ファイル(orders.zip)がダウンロードできない問題の全体像
学習手順では以下の直リンクをクリックして orders.zip を取得します。
https://github.com/MicrosoftLearning/dp-data/raw/main/orders.zip
しかし、クリックしても「保存」ダイアログが出ない、403/407/499/502 などのエラーになる、あるいは数秒後にダウンロードが中断される――といった症状が発生することがあります。まず押さえておきたいポイントは次の3つです。
- リンク自体は通常有効:リンク切れではないケースが大半です。多くの環境ではクリック直後にダウンロードが開始されます。
- 原因の多くはネットワーク/セキュリティ境界:社内ファイアウォール、セキュリティゲートウェイ(SSL インスペクション)、認証付きプロキシ、DLP、DNS フィルタ、EDR/アンチウイルスの保護機能が影響します。
- 個人回線では成功することが多い:同じ URL を自宅回線やモバイル回線で試すと取得でき、職場ネットワーク特有の制限だと切り分けられます。
最短で復旧するための要約(忙しい方向け)
- 代替経路で取得:一時的に自宅やテザリングで
orders.zipをダウンロードし、USB メモリまたは OneDrive/SharePoint で社内へ持ち込み。 - CLI を使う:ブラウザだけが制限されている場合、
curlや PowerShellInvoke-WebRequestで取得(プロキシ認証対応可)。 - IT へ例外申請:
github.comとraw.githubusercontent.com(および関連ドメイン)を HTTPS で許可。SSL インスペクション下なら“検査除外”を依頼。 - Git で丸ごと取得:
git clone https://github.com/MicrosoftLearning/dp-data.git後、ローカルからorders.zipを取り出す。
推奨される対処手順(サマリ)
| 手順 | 詳細 | コマンド例 | 備考 |
|---|---|---|---|
| ① ネットワーク設定確認 | IT 部門に依頼し、github.com と raw.githubusercontent.com への HTTPS を許可。SSL インスペクション中なら当該ドメインの検査除外(もしくは企業ルート CA の信頼設定)を実施。 | Test-NetConnection github.com -Port 443 | DNS フィルタや DLP のポリシーも併せて確認。 |
| ② 代替経路で取得 | 自宅やモバイル回線でダウンロードし、USB/OneDrive/SharePoint で社内へ転送。 | — | 一時的な回避策。社内のセキュリティポリシーに従うこと。 |
| ③ CLI で直接取得 | プロキシ認証つきで curl / PowerShell を利用。ブラウザ制限のみの環境で有効。 | curl -L -O "https://github.com/MicrosoftLearning/dp-data/raw/main/orders.zip" | -L はリダイレクト追従。プロキシは -x または環境変数で設定。 |
| ④ リポジトリを丸ごとクローン | GitHub リポジトリをクローンし、orders.zip をローカルで取り出す。 | git clone https://github.com/MicrosoftLearning/dp-data.git | Git のみ許可されている環境で特に有効。 |
なぜ失敗するのか:GitHub 直リンクの技術的背景
GitHub の「raw」配信は、github.com 上の表示ページとは別ドメイン(例:raw.githubusercontent.com)で提供されます。ブラウザは直リンクをクリックすると、最終的に「raw ドメイン」へリダイレクトしてバイナリを取得します。企業ネットワークでは、以下の理由で失敗することがあります。
- ドメイン単位の許可不足:
github.comは許可されているが、raw.githubusercontent.comがブロックされる。 - SSL インスペクションとの相性:TLS を中間復号する製品が、SNI/証明書検証でエラーを起こす、または GitHub 側のセキュリティポリシーと衝突する。
- 認証付きプロキシ:ブラウザは認証プロンプトを表示するが、ダウンロード処理がバックグラウンドで再試行される際に認証トークンが継承されず、
407 Proxy Authentication Requiredを返す。 - DLP/アンチウイルス:拡張子
.zipの一律遮断、または「未知ファイルの隔離」によりサイレントに中断される。 - 古い TLS/時間ずれ:端末の TLS 設定(1.2/1.3 無効)や時刻ずれが原因で証明書検証に失敗する。
手順①:ネットワーク設定の見直し(IT 部門向け依頼テンプレート付き)
IT 部門に依頼する際は、単に「GitHub を許可」ではなく、実際に必要なドメインを具体的に挙げるとスムーズです。以下の表を参考にしてください。
| ドメイン | 用途 | ポート | 備考 |
|---|---|---|---|
github.com | Web UI / 認証 / リダイレクト | 443/TCP | 主ドメイン |
raw.githubusercontent.com | ファイル本体(raw 配信) | 443/TCP | 今回のボトルネックになりがち |
codeload.github.com | ZIP/TAR の配布(主にソース一括) | 443/TCP | 一部クライアントはここへ遷移 |
objects.githubusercontent.com | LFS/オブジェクト配信 | 443/TCP | 将来の学習素材でも必要になる可能性 |
SSL インスペクションを実施している場合は、上記ドメインを「検査除外」に設定するか、企業ルート CA 証明書をクライアントの「信頼されたルート証明機関」に配布・インポートしてください。なお、学習用途でのみ必要な期間限定の例外ルールを作ると運用上も安心です。
依頼文の例
件名:DP‑700 研修用 GitHub 直リンク許可のお願い
内容:
以下の学習素材を取得するため、次のドメインを 443/TCP で許可し、可能であれば SSL インスペクションを除外してください。
・github.com
・raw.githubusercontent.com
・codeload.github.com
(必要に応じ objects.githubusercontent.com も)
対象ユーザー:データ研修参加者(期間:〇月〇日〜〇月〇日)
手順②:代替経路での取得(最速の回避策)
すぐに学習を進めたい場合は、企業ネットワークを離れた経路で orders.zip を取得し、社内へ持ち込みます。
- 自宅・モバイル回線でダウンロード:個人 PC または社給 PC+テザリングで取得後、USB または OneDrive/SharePoint 経由で共有。
- セキュアな持ち込み:USB は BitLocker などで暗号化。クラウド転送時は共有リンクの期限・権限を最小化します。
- マルウェア対策:持ち込んだファイルは社内に展開する前にウイルススキャン(Windows セキュリティ等)を実施します。
手順③:CLI で直接取得(ブラウザ制限のみのとき)
ブラウザのダウンロード制御だけが厳しい場合は、コマンドラインでの取得が有効です。リダイレクト追従を有効にし、必要に応じてプロキシを指定します。
Windows(PowerShell)
# プロキシ不要の例
Invoke-WebRequest `
-Uri "https://github.com/MicrosoftLearning/dp-data/raw/main/orders.zip" `
-OutFile ".\orders.zip" `
-UseBasicParsing
# プロキシ利用(資格情報プロンプト表示)
$cred = Get-Credential
Invoke-WebRequest ` -Uri "https://github.com/MicrosoftLearning/dp-data/raw/main/orders.zip"`
-OutFile ".\orders.zip" ` -Proxy "http://proxy.example.com:8080"`
-ProxyCredential $cred `
-MaximumRedirection 5
Windows/macOS/Linux(curl)
# プロキシ不要
curl -L -O "https://github.com/MicrosoftLearning/dp-data/raw/main/orders.zip"
# 認証付きプロキシ(都度入力)
curl -L -O -x [http://proxy.example.com:8080](http://proxy.example.com:8080)
--proxy-user "USER"
"[https://github.com/MicrosoftLearning/dp-data/raw/main/orders.zip](https://github.com/MicrosoftLearning/dp-data/raw/main/orders.zip)"
# 環境変数で一括設定(PowerShell 一時設定)
$env:HTTP_PROXY = "[http://USER:PASSWORD@proxy.example.com:8080](http://USER:PASSWORD@proxy.example.com:8080)"
$env:HTTPS_PROXY = "[http://USER:PASSWORD@proxy.example.com:8080](http://USER:PASSWORD@proxy.example.com:8080)"
curl -L -O "[https://github.com/MicrosoftLearning/dp-data/raw/main/orders.zip](https://github.com/MicrosoftLearning/dp-data/raw/main/orders.zip)"
wget(Linux/WSL)
wget --content-disposition \
"https://github.com/MicrosoftLearning/dp-data/raw/main/orders.zip"
# プロキシ
export http_proxy="[http://USER:PASSWORD@proxy.example.com:8080](http://USER:PASSWORD@proxy.example.com:8080)"
export https_proxy="$http_proxy"
wget --content-disposition
"[https://github.com/MicrosoftLearning/dp-data/raw/main/orders.zip](https://github.com/MicrosoftLearning/dp-data/raw/main/orders.zip)"
注:証明書検証を無効化するオプション(例:--insecure / -k / sslVerify=false)は推奨しません。一時的に事情があって使う場合でも、ネットワーク管理者と合意のうえ、作業後は必ず元に戻してください。
手順④:リポジトリを丸ごとクローンして取り出す
Git プロトコル(HTTPS)が許可されている場合、リポジトリを丸ごと取得してから ZIP を取り出す方法が堅実です。
# リポジトリ取得
git clone https://github.com/MicrosoftLearning/dp-data.git
cd dp-data
# ファイルの存在確認
git ls-files | findstr /R /C:"orders.zip"
# 任意の場所へコピー
copy .\orders.zip ..\ # Windows
cp ./orders.zip ../ # macOS/Linux
プロキシが必要な環境では、以下のように Git のプロキシ設定を一時的に適用できます(資格情報は可能ならば Git Credential Manager などに委任してください)。
# セッション限定でのプロキシ指定(PowerShell)
git -c http.proxy=http://USER:PASSWORD@proxy.example.com:8080 \
clone https://github.com/MicrosoftLearning/dp-data.git
症状別トラブルシューティング・チェックリスト
| 症状 | 想定原因 | 確認・再現方法 | 対応策 |
|---|---|---|---|
| クリックしても無反応 | ブラウザのダウンロード制御、EDR の隔離、拡張機能の干渉 | 別ブラウザ・シークレットウィンドウで再試行 | CLI で取得/EDR のログ確認/拡張機能を一時無効化 |
| 407 Proxy Authentication Required | プロキシ認証の未設定/トークン未継承 | curl -v で応答ヘッダを確認 | CLI で -x または -Proxy 指定、PAC/ブラウザ設定を見直し |
| 403/404/451 系 | URL リライト、カテゴリブロック、地理的制限、DLP | 同一端末で別回線(テザリング)試行 | IT にカテゴリ除外を依頼/DLP ポリシーで ZIP 許可 |
| SSL 証明書エラー | SSL インスペクション、企業ルート CA 未配布、時刻ずれ | システム時刻の補正、証明書の発行元を確認 | 検査除外・企業 CA の信頼設定、NTP 同期 |
| ダウンロードが途中で止まる | DLP/AV によるスキャン・隔離、帯域制限 | ファイルサイズの推移を監視、EDR/AV ログ | オフピークで再試行、AV の除外ポリシー確認 |
| DNS エラー(NXDOMAIN 等) | DNS フィルタ、内部 DNS でのブラックホール | nslookup raw.githubusercontent.com | DNS 例外またはセカンダリ DNS の利用を相談 |
| TLS バージョン不一致 | 古い OS/ポリシーで TLS1.2/1.3 が無効 | ブラウザの about:config / OS ポリシー確認 | TLS1.2 以上を有効化、古い端末は更新 |
確認と検証:ダウンロード後の健全性チェック
取得できたら、破損や改ざんがないか軽く検証しておくと安心です。
ファイルサイズ・ハッシュ確認
# Windows(PowerShell)
Get-Item .\orders.zip | Select-Object Name, Length
Get-FileHash .\orders.zip -Algorithm SHA256
# macOS/Linux
ls -l ./orders.zip
shasum -a 256 ./orders.zip
展開テスト
# Windows(PowerShell)
Expand-Archive -Path .\orders.zip -DestinationPath .\orders -Force
# macOS/Linux
unzip ./orders.zip -d ./orders
展開時にエラーが出る場合は、ネットワークの断続やプロキシの再圧縮・改変が疑われます。別回線で再取得するか、Git での丸ごと取得を試してください。
ブラウザごとのヒント
- Edge/Chrome:企業ポリシーで「安全でないダウンロードのブロック」が有効だと ZIP が止まる場合があります。管理者に例外設定を相談してください。拡張機能によるフィルタも一時的に無効化して検証します。
- Firefox:プロキシの自動検出(PAC)で raw ドメインが直結になると失敗するケースがあります。PAC の bypass ルールを見直します。
- Internet Explorer/旧 Edge:レガシー環境では TLS/証明書互換性が低く、最新ブラウザでの再試行を推奨します。
プロキシ認証と資格情報の安全な取り扱い
資格情報をコマンドラインに直書きすると履歴に残ります。可能な限り対話入力や OS の資格情報マネージャを使いましょう。
- Windows:Windows 資格情報マネージャ/Git Credential Manager を使用。
- macOS:キーチェーン連携(Homebrew の
git-credential-managerなど)。 - Linux:
libsecret連携やgit-credential-storeを必要最小限で。
社内運用としての再発防止策
- 研修前チェックリスト化:GitHub アクセス、
.zipダウンロード、TLS/証明書、プロキシ認証の事前検証をテンプレート化。 - 社内ミラー/アーティファクト管理:学習素材(特に固定ファイル)は社内のストレージ(SharePoint/OneDrive/Artifactory 等)に保管して配布。
- SSL インスペクションの例外ガイド:必要ドメインのリストと有効期限、検査除外の理由を文書化し、監査に備える。
- トラブル時の連絡経路:IT サービスデスクへの依頼テンプレート(上記)を整備。ログ(時刻・URL・HTTP ステータス・端末名)を添付する運用を徹底。
ケーススタディ:個人回線では成功したが社内では失敗
学習者が同じ URL を個人 PC で試したところ正常にダウンロードでき、職場 PC/ネットワークでは再現。これは「URL は有効」「社内ネットワークが阻害」という明確な切り分けになります。こうしたケースでは、IT への例外申請と並行して、CLI 取得やリポジトリクローンの回避策で学習の中断時間を最小化できます。
エラーメッセージ別の対処レシピ(実践集)
407 Proxy Authentication Required
curl -v -L -O -x http://proxy:8080 https://.../orders.zipの出力でProxy-Authenticateヘッダを確認。- PowerShell は
-Proxyと-ProxyCredentialを併用。 - 資格情報キャッシュが効かない場合、ブラウザではなく CLI を使用。
SSL certificate problem
- 企業ルート CA を端末へ配布し、Git や
curlにも反映。 - SSL インスペクション除外が可能なら raw ドメインを除外。
- 端末時刻のずれ(>5 分)を NTP で修正。
Connection reset/timeout
- セキュリティゲートウェイのファイル検査タイムアウトが疑われるため、オフピークで再試行。
- 分割再開(
curl -C - -L -O)を利用。
学習を止めないための“二段構え”
- 短期:回避策(代替経路・CLI・Git クローン)で今日の演習を完走。
- 中長期:恒久対策(ドメイン許可・検査除外・社内ミラー運用)で次回以降の詰まりを撲滅。
DP‑700 に限らず、Microsoft の学習コンテンツは GitHub を配布チャネルに採用しているケースが多く、今回の対策は他のコース(DP‑203/DP‑500/DP‑600 など)でも汎用的に役立ちます。
付録:IT 管理者向け技術メモ
- ドメインベースの例外:raw ドメインは CDN で IP が頻繁に変わります。IP 固定ではなく FQDN/証明書ベースでの許可が現実的です。
- レイヤ7 可視化:プロキシログで
CONNECTの宛先 SNI と応答コード(200/407/4xx)を確認。ブロックルールのヒット理由(カテゴリ・シグネチャ)を記録。 - DLP ポリシー:ZIP の一律遮断ではなく、サイズや署名ベースのポリシーへ段階的に移行。
- 監査準備:一時例外には期限を設定し、レビューで継続可否を判定。
まとめ
orders.zip が取得できないとき、リンク切れを疑う前に「ネットワーク境界」を疑うのが近道です。まずは代替回線や CLI で回避し、落ち着いたら IT 部門へドメイン許可と SSL インスペクション除外を正式に依頼。将来の研修では、社内ミラーや事前チェックリストで詰まりを未然に防ぎましょう。この記事の手順を上から順に試せば、ほとんどの環境で短時間に復旧できます。万一解消しない場合は、エラー時刻・URL・HTTP ステータス・プロキシ名・端末名を添えて IT 管理者に調査を依頼してください。
参考:よく使うコマンド集(コピペ可)
ネットワーク疎通確認
# PowerShell
Test-NetConnection raw.githubusercontent.com -Port 443
nslookup raw.githubusercontent.com
# Linux/macOS
nc -vz raw.githubusercontent.com 443
dig +short raw.githubusercontent.com
ダウンロード(PowerShell/curl/wget)
# PowerShell(プロキシなし)
Invoke-WebRequest -Uri "https://github.com/MicrosoftLearning/dp-data/raw/main/orders.zip" -OutFile ".\orders.zip"
# PowerShell(プロキシあり)
$cred = Get-Credential
Invoke-WebRequest -Uri "[https://github.com/MicrosoftLearning/dp-data/raw/main/orders.zip](https://github.com/MicrosoftLearning/dp-data/raw/main/orders.zip)" -OutFile ".\orders.zip" -Proxy "[http://proxy.example.com:8080](http://proxy.example.com:8080)" -ProxyCredential $cred
# curl(リダイレクト追従)
curl -L -O "[https://github.com/MicrosoftLearning/dp-data/raw/main/orders.zip](https://github.com/MicrosoftLearning/dp-data/raw/main/orders.zip)"
# wget
wget --content-disposition "[https://github.com/MicrosoftLearning/dp-data/raw/main/orders.zip](https://github.com/MicrosoftLearning/dp-data/raw/main/orders.zip)"
ZIP 展開とハッシュ確認
# Windows(PowerShell)
Expand-Archive -Path .\orders.zip -DestinationPath .\orders -Force
Get-FileHash .\orders.zip -Algorithm SHA256
# macOS/Linux
unzip ./orders.zip -d ./orders
shasum -a 256 ./orders.zip
FAQ(短答)
- Q:Edge だけ失敗します。
A:ダウンロード保護ポリシーや拡張機能が影響。シークレットウィンドウ/別ブラウザ/CLI で切り分けを。 - Q:Git は通るのにブラウザはダメ。
A:カテゴリフィルタが Web の ZIP を遮断。raw.githubusercontent.comを例外化。 - Q:一時的にどうしても必要。
A:代替回線で取得し社内へ持ち込み。持ち込み前後でウイルススキャンを。 - Q:証明書エラーが消えません。
A:SSL インスペクションの除外、または企業ルート CA を信頼済みに配布。端末時刻も確認。
上記の対応でほとんどの場合ダウンロード可能になります。どうしても解決しない場合は、エラーログ(HTTP ステータスやプロキシのブロックメッセージ、タイムスタンプ)を添えて IT 管理者に詳細調査を依頼してください。

コメント