Windows7でのAPN自動設定(Windows10でのAPN自動設定の後日談)

前回の記事でWindows10のAPN設定自動化が出来たワケなんだけど、その後新たな問題が…
「前回作って貰った“simの自動設定プログラム”が動かない場合があるんだけど…」ってbacklogが上がってきた。
話を確認したら、ターゲットにしていたWindows10マシンじゃなくて、Windows7のマシンで動かしたらしい。
今回のシステムって、ターゲットはWindows10だったはず。
後になって「Windows7でも動くようにして欲しいんだけど」って、そんな話は先に言ってよ〜(^_^;)


まずは調査から

というところで、今回も調査から開始。
ただ問題は、Windows7の端末を探すところから。
Windows7なんてもう残ってないぞ〜
社内を探し回って、何とかデスクトップ1台のみ残っていたものを確保。
もうじきサポートが切れるようなOS、そうそう残っていないってば。

何故動かない?

Windows10で動かしていた設定用バッチファイルを動かしたところ、「xmlファイルが正しくない」的なそっけないエラーメッセージ。
これじゃ何がダメなのかわからない。
ソースから当たるしか無いな…

Windows7のAPN設定ってどうなってる?

ってことで、Windows7機で手動でAPN設定をやってみて、xmlファイルを確認。
(生データで、~部分は公開出来ないのでマスクしてます) ファイル名 {C8E1AE7C-BC0B-461A-AA65-A9B5800DE326}.xml

<?xml version="1.0"?>
<MBNProfile xmlns="http://www.microsoft.com/networking/WWAN/profile/v1">
    <Name>FL1 2</Name>
    <IsDefault>true</IsDefault>
    <ProfileCreationType>UserProvisioned</ProfileCreationType>
    <SubscriberID>01000000D08C9DDF0115D1118C7A00C04FC297EB01000000A9735D25E65E1F4697AB07FE70E88F0100000000020000000000106600000001000020000000EA27513BABAD2F07C1398FA7110B6D46C43BFE2C897240CE358755B13154CDA5000000000E80000000020000200000008F96CA0C084E3314331A7CFB5B6DF235CE4B27E2344D14FFC21373D7B99D5F0620000000CC73CD7F0A761D40A28EF5027A290B1973D51E22C80582061018517EBACBF229400000000ABC78F6E5CC9E771EDC24DC0C69F5FF179A318D90E241D83B8BDAAA7309F7D652241A62E74645395979F754679BD4AFB2777BB9E0BAE7E0507F9F2DFAAAE80A</SubscriberID>
    <SimIccID>~~~~~~~~~~~~~~~~~~~~~</SimIccID>
    <HomeProviderName>FL1</HomeProviderName>
    <AutoConnectOnInternet>true</AutoConnectOnInternet>
    <ConnectionMode>manual</ConnectionMode>
    <Context>
        <AccessString>soracom.io</AccessString>
        <UserLogonCred>
            <UserName>sora</UserName>
            <Password>01000000D08C9DDF0115D1118C7A00C04FC297EB01000000A9735D25E65E1F4697AB07FE70E88F01000000000200000000001066000000010000200000004AFF06556027E94611CEA2139B7035E39F4F7AF6890FF59EAD70220F2C66B5D4000000000E8000000002000020000000A19EE0E40FCC22FD448BEDB685404182AA7A60D6FA3339A28E79F97C308840A41000000055767A813E0331C40263E77FE015812940000000D1887329CD09ADE19CC704048481DF85045CDBA7A1821120D13F88447CF28FAD1FFF65284AF5E868EA82B50E2AFBC01BEEC801A08B340B9626CEBB78793A5C63</Password>
        </UserLogonCred>
        <Compression>DISABLE</Compression>
        <AuthProtocol>NONE</AuthProtocol>
    </Context>
</MBNProfile>

なんとなく違うのはわかるんだけど、何処がどう違うんだ?

さて、間違い探し

一つ一つの要素に分けて、Windows10での定義とWindows7での定義を突き合わせて相違を確認
でもって、違いがわかったところで対応検討するしか無い。

Windows7 Windows10 差分
<?xml version="1.0"?> <?xml version="1.0"?> 無し(当たり前)
<MBNProfile xmlns="http://www.microsoft.com/networking/WWAN/profile/v1"> <MBNProfileExt xmlns="http://www.microsoft.com/networking/WWAN/profile/v4"> バージョン違い・Profileに”Ext”の有無
<Name>FL1 2</Name> <Name>{76A75226-A56E-4E6B-B843-1AC7B483C25A}</Name> 記述方法以外に違い無し
<Description>SORACOM.Air</Description> Windows7にはタグ無し
<IsDefault>true</IsDefault> <IsDefault>true</IsDefault> 相違無し
<ProfileCreationType>UserProvisioned</ProfileCreationType> <ProfileCreationType>UserProvisioned</ProfileCreationType> 相違無し
<SubscriberID>~~~~~</SubscriberID> <SubscriberID>~~~~~</SubscriberID> 相違無し
<SimIccID>~~~~~~~~~~~~~~~~~~~~~</SimIccID> <SimIccID>~~~~~~~~~~~~~~~~~~~~~</SimIccID> 相違無し
<HomeProviderName>FL1</HomeProviderName> <HomeProviderName>DOCOMO</HomeProviderName> 記載以外に相違無し
<AutoConnectOnInternet>true</AutoConnectOnInternet> - Windows10ではConnectionModeに統一?
<ConnectionMode>manual</ConnectionMode> <ConnectionMode>auto</ConnectionMode> Windows10ではConnectionModeに統一?
<Context> <Context> 相違無し
<AccessString>soracom.io</AccessString> <AccessString>soracom.io</AccessString> 相違無し
<UserLogonCred> <UserLogonCred> 相違無し
<UserName>sora</UserName> <UserName>sora</UserName> 相違無し
<Password>~~~~~</Password> <Password>~~~~~</Password> 相違無し
</UserLogonCred> </UserLogonCred> 相違無し
<Compression>DISABLE</Compression> <Compression>DISABLE</Compression> 相違無し
<AuthProtocol>NONE</AuthProtocol> <AuthProtocol>PAP</AuthProtocol> Windows7でも認証方式の指定が必要
</Context> </Context> 相違無し
- <PurposeGroups> Windows7ではタグ無し
- <PurposeGroupGuid>{3E5545D2-1137-4DC8-A198-33F1C657515F}</PurposeGroupGuid> Windows7ではタグ無し
- </PurposeGroups> Windows7ではタグ無し
- <ProfileConditionedOn> Windows7ではタグ無し
- <IMSI>~~~~~~~~~~~~~~~</IMSI> Windows7ではタグ無し
- </ProfileConditionedOn> Windows7ではタグ無し
- <IsExclusiveToOther>true</IsExclusiveToOther> Windows7ではタグ無し
</MBNProfile> </MBNProfileExt> Profileに”Ext”の有無

という感じで差異が明確になったので、後はWindows7の頃のMBNProfileのバージョンに従ってxmlを書いてみる。


とりあえず作ってみる

前回何とかなっちゃったから、今回は結構雑にトライ&エラーから着手。
間違っちゃったら設定を削除すりゃ良いだけだし(^_^;)

そして作ったxmlが以下。

<?xml version="1.0"?>
<MBNProfile xmlns="http://www.microsoft.com/networking/WWAN/profile/v1">
    <Name>FL1 2</Name>
    <IsDefault>true</IsDefault>
    <ProfileCreationType>UserProvisioned</ProfileCreationType>
    <SubscriberID>~~~~~</SubscriberID>
    <SimIccID>8942310017000774590F</SimIccID>
    <HomeProviderName>FL1</HomeProviderName>
    <AutoConnectOnInternet>true</AutoConnectOnInternet>
    <ConnectionMode>manual</ConnectionMode>
    <Context>
        <AccessString>soracom.io</AccessString>
        <UserLogonCred>
            <UserName>sora</UserName>
            <Password>~~~~~</Password>
        </UserLogonCred>
        <Compression>DISABLE</Compression>
        <AuthProtocol>PAP</AuthProtocol>
    </Context>
</MBNProfile>



まとめWindows7向け”APN設定用プロファイルxmlの内容

【】内は項目の説明

<?xml version="1.0"?>
<MBNProfileExt xmlns="http://www.microsoft.com/networking/WWAN/profile/v1">  【バージョン記載:お約束】
    <Name>FL1 2</Name>  【プロファイル名:既存名称と重複はNG】
    <IsDefault>true</IsDefault>  【デフォルト接続先にしたい場合はTrue】
    <ProfileCreationType>UserProvisioned</ProfileCreationType>  【固定値:未解析】
    <SubscriberID>295050910085422</SubscriberID>  【show readyinfo コマンドで取得したサブスクライバーID(平文)SIM依存情報】
    <SimIccID>8942310017000774228F</SimIccID>  【show readyinfo コマンドで取得したSIM ICCのID SIM依存情報】
    <HomeProviderName>FL1</HomeProviderName>  【ローミング元(基本このままで)】
    <AutoConnectOnInternet>true</AutoConnectOnInternet>  【自動接続を行うか否か】
    <ConnectionMode>manual</ConnectionMode>  【固定値:未解析】
    <Context>
        <AccessString>soracom.io</AccessString>  【プロバイダから指定のAPN名】
        <UserLogonCred>
            <UserName>sora</UserName>  【プロバイダから指定のユーザー名】
            <Password>sora</Password>  【プロバイダから指定のパスワード(平文)】
        </UserLogonCred>
        <Compression>DISABLE</Compression>  【固定値:未解析】
        <AuthProtocol>PAP</AuthProtocol>  【プロバイダから指定の認証方式】
    </Context>
</MBNProfileExt>



結論

基本的にWindows10と要領は同じ。
OSが古いだけあって、設定項目は少な目だし、それだけシンプルな感じ。
しかしWindows7のAPN設定画面(インタフェース)がWindows10と全然違ってて、何がどこにあるのかを探して設定確認や変更をしてみるのが難しかったのが思わぬ落とし穴w

だけど、今更この情報が必要になる事はあるのかなぁ…