Quantcast
Channel: TechNet Blogs
Viewing all 34890 articles
Browse latest View live

Kalenderwoche 6/2018 im Rückblick: Zehn interessante Links für IT-Experten

$
0
0

詳説 Azure ExpressRoute – Part1: ExpressRoute を導入する前に

$
0
0

こんにちは。Azure サポートの宇田です。
今回から複数回にわたって、ExpressRoute について詳しく解説したいと思います。

ExpressRoute とは何か


ExpressRoute は、オンプレミスと Azure を閉域網で接続するためのサービスです。

Azure (Microsoft) とは別にプロバイダー様と別途契約いただき、既存の WAN などと接続して、オンプレミスから Azure の各種サービス (一部を除く) に対して、Internet 経由や VPN 経由での接続と比較して低遅延で信頼性の高い通信ができるようになります。

3 種類のピアリング形態


ExpressRoute では、接続先に応じて 3 種類のピアリング形態が用意されています。
(1 つの ExpressRoute 回線に対して、これら 3 つのピアリングを併用することが可能です)

  • Private Peering: 仮想ネットワークとの接続 (Azure 上の Private IP 帯との接続)
  • Public Peering: Azure のパブリック サービスとの接続 (Azure の Public IP 帯との接続)
  • Microsoft Peering: Office 365 サービスとの接続

利用するサービスに応じて、必要になるピアリングを選択し、それぞれ構築いただく事となります。

例えば、Azure VM とだけ通信ができればよいという事であれば Private Peering のみで疎通が可能です。他方で、Azure Storage や SQL Database などといった PaaS のサービス群にアクセスする場合は、Public Peering が必要になります。

Premium Add-On


ピアリングと併せて検討が必要な事項として、Premium Add-On があります。

国内で ExpressRoute をご利用になる場合、東京 or 大阪の接続ポイントから Azure に接続することになるかと思います。この際、東京で接続しても、大阪で接続しても、Azure の東日本・西日本リージョンとの通信が可能になります。

一方で、国内で接続した場合には、海外の Azure データセンターとは既定の状態では接続ができません。PaaS のサービスや Office 365 など、国内のデータセンターのみで完結せず海外との通信が必要になる場合や、DR 要件などで国外のリージョンをご利用になる場合には、別途 Premium Add-On が必要になります。

ExpressRoute の費用


ExpressRoute を利用するにあたっては、様々な費用が発生しますので、事前に十分確認しましょう。

Microsoft が関与するのは前者二点のみとなりますので、後者の費用については各プロバイダー様までお問い合わせください。

プロバイダーの選択


ExpressRoute を契約するにあたっては、Microsoft のほかに回線プロバイダーとの契約も必要です。

多くのプロバイダーから ExpressRoute 関連サービスを提供いただいていますが、以下の二種類のプロバイダー様に大別され、提供されているサービスや責任範囲が異なりますので、事前に十分確認しましょう。

  • L2 プロバイダー: ルーターの管理はお客様側で実施 (BGP オペレーターが必要)
  • L3 プロバイダー: ルーターの管理を含めてプロバイダー様が提供

なお、L3 のプロバイダーと比較して費用が安価であるという理由で L2 のプロバイダーを選択されて、構築時に大変苦労されており、それによってコストメリットを十分に享受できていないようなお客様も、少なからずいらっしゃいます。L2 のプロバイダー様を利用する場合には、お客様側でルーターのコンフィグや管理を行うことになりますので、決して費用のみで判断せず、運用コストも含めて検討いただければと思います。(特に、BGP オペレーターがいない場合は、L3 のプロバイダーを利用することを強く推奨します。)

また、プロバイダーからオンプレミス側へのアクセス回線についても、専用線 / IP-VPN / 閉域 SIM など多様な形態が用意されています。こうした点についても、プロバイダー様へご相談ください。

ExpressRoute のよくある誤解


全ての通信が ExpressRoute で完結する (?)

結論からいうと、答えは No です。

ExpressRoute をご利用いただくことで、多くの Azure サービスと閉域網で接続が可能ですが、一部の通信については、ExpressRoute だけでは完結しません。代表的な例をいくつかご紹介しましょう。

  • Azure ポータル
    ポータルは多種多様な接続先とバックグラウンドで通信を行っています。ExpressRoute を通るものもありますが、Azure 外の CDN を経由して配信されているもの等も存在しますので、ExpressRoute のみではアクセスできません。
  • Azure CDN / Traffic Manager
    FAQ にも記載の通り、これらのサービスは ExpressRoute 経由ではアクセスができません。また、利用されるサービスや API エンドポイントによっては、フロントエンドでこうした ExpressRoute 非対応のサービスを使用している場合があります。利用予定のサービスが ExpressRoute のみで通信できるのか、一部の通信は Internet へ出ることになるのかは事前にご確認ください。

Internet から完全に分離できる (?)

先の内容とも重複しますが、Internet から完全に分離して疑似的にプライベート クラウドのように利用することは極めて困難です。IaaS の Azure VM のみを利用して、一切の拡張機能を使用しないなどであれば不可能ではありませんが、完全閉域にしようとすると利用できないサービスや機能制限が多々生じることになりますのでご注意ください。(例えば、Azure バックアップを利用しようとすると、Azure Storage の FQDN である xxx.blob.core.windows.net などに対して名前解決が必要となりますし、名前解決された IP アドレスは Azure データセンターの Public IP アドレスになります。)

オンプレミスから L2 で延伸できる (?)

こちらも No です。ExpressRoute は、あくまでも L3 での接続となりますし、Azure の仮想ネットワークは VLAN には対応していません。

セキュリティが高い (?)

ExpressRoute は閉域網で Azure と接続しますので、Internet 経由の通信と比較して盗聴リスクが低いことは間違いありません。また、Private Peering であれば、お客様にて作成した仮想ネットワークにのみ接続されるため、その他のお客様のネットワークとは分離されます。ただし、Public Peering や Microsoft Peering で接続されるネットワークは Azure や Office 365といったパブリック クラウドのネットワークになります。つまり、ExpressRoute 自体は Azure や Office 365 をご利用いただいているお客様が共通で利用しているネットワークとの接続のみを提供するサービスとなるため、その中のテナント(お客様が利用しているサーバー)との通信のみに制限すると行ったことはできません。
このように、ExpressRoute を利用したからといって、セキュリティ面を一切考慮しなくてよくなる訳では無いため、Public Peering や Microsoft Peering を利用する場合は、これまでのオンプレミス環境と同様に、多層防御の原則にのっとって適切にセキュリティを考慮していただくことが極めて重要です。

 

本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。

詳説 Azure ExpressRoute – Part2: ExpressRoute のルーティング制御について

$
0
0

こんにちは。Azure サポートの宇田です。
詳説 Azure ExpressRoute Part 2 では、ルーティング制御について詳しく取り上げます。

  • Part1: ExpressRoute を導入する前に
  • Part2: ExpressRoute のルーティング制御について
  • Part3: ExpressRoute と VPN の併用・切り替えについて
  • Part4: ExpressRoute のトラブルシューティング方法
  • Part5: (TBD)

ExpressRoute のルーティング基礎


Part.1 でも説明した通り、ExpressRoute では BGP (Border Gateway Protocol) を用いてプロバイダー様のエッジルーター (PE) と経路を交換します。(BGP という単語が聞きなれない方は、JPNIC さんが公開されている「インターネット10分講座:BGP」ほかをご参照ください。)

もう少し具体的に、3 種類のピアリングでどのような経路交換が行われるかを見てみましょう。

(Azure 側から広報される経路)

  • Private Peering: ExpressRoute に接続された仮想ネットワークのアドレス空間が広報されます
  • Public Peering: Azure の各データセンターが保有する Public IP アドレス空間が広報されます
  • Microsoft Peering: Office 365 で使用される Public IP アドレス空間が広報されます

(オンプレミス / プロバイダー側から広報していただく経路)

  • Private Peering: ExpressRoute 経由で通信されたいオンプレミス側のアドレス空間を広報ください
  • Public Peering: オンプレミス側で NAT に使用される Public IP のアドレスを広報ください
  • Microsoft Peering: オンプレミス側で NAT に使用される Public IP のアドレスを広報ください

 

Private Peering におけるルーティングに関する考慮事項


この際、「Azure に対して、どのような経路を広報するか」および「Azure から受け取った経路をオンプレミスへどのように広報するか」について、事前に熟考が必要です。

Azure に対して、どのような経路を広報するか

Azure とオンプレミスの端末間で通信を行うためには、オンプレミス側から正しく経路が広報されている必要があります。

代表的な構成例としては、以下のようなパターンが多いかと思います。

  • オンプレミスで使用しているアドレス空間を細かく広報する (192.168.X.0/24, 192.168.Y.0/24, 192.168.Z.0/24 ...)
  • オンプレミスで使用しているアドレス空間をサマライズして広報する (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 など)
  • デフォルト ルート (0.0.0.0/0) を広報する (強制トンネリングと呼ばれる構成)

ここで最も注意をしなくてはいけないのは、三点目のデフォルト ルートを広報する場合です。

通常、ExpressRoute に接続されていない仮想ネットワークでは、Azure から直接インターネットへ出れるようにルーティングされます。しかしながら ExpressRoute を構成して PE からデフォルト ルートを広報した場合には、全ての IP アドレス宛ての通信がオンプレミスへとルーティングされることになり、Azure からは直接インターネットへ出ることができません。このため、仮想ネットワーク上の Azure VM では、下図のようにオンプレミス側からインターネットへと抜ける経路をたどることになります。

したがって、当然ですがオンプレミス側からインターネットへと出られない構成においては、Azure VM もインターネットへ接続できなくなります。(セキュリティの観点から、あえてこうした構成とされるお客様もいらっしゃいます。)

また、強制トンネリングを構成された環境では、Windows のライセンス認証で用いられる KMS に影響が生じます。こちらについては以下にて詳しくご紹介しておりますので、併せてご参照ください。

Azure から受け取った経路をオンプレミスへどのように広報するか

他方で、Azure 側から受け取った経路をどのようにオンプレミスへ広報するかも検討が必要です。

Azure は ExpressRoute プロバイダー様のエッジ ルーターまで BGP で経路を広報するのみとなりますので、必要に応じて他の経路制御プロトコル (OSPF 等) にて再配布を行う必要があります。これらオンプレミス側のルーティングに関しては、Azure 側で制御できるものではありませんので、オンプレミスのネットワーク管理者様およびプロバイダー様と事前にご相談ください。

Private / Public Peering の共存環境でのルーティングに関する考慮事項

Private Peering と Public Peering を併用されている場合、プロバイダー様のルーター (PE) では Private Peering 経由で受け取った経路情報と、Public Peering 経由で受け取った経路情報を保持しています。この際、Public Peering 側から受け取った経路 (Azure の Public IP アドレス帯) を Private Peering へ再配布するようなクロスアドバタイズと呼ばれる構成を行いますと、IaaS -> PaaS の通信が下図のようにプロバイダー様で折り返すような経路をたどることになります。

 

こうしたルーティングでも通信自体は全く問題はありませんが、プロバイダー様で折り返して ExpressRoute を往復することになるため、帯域が逼迫する恐れがあることと、従量課金プランをご利用の場合には費用が増加することとなりますので十分ご留意ください。一例としては、Azure バックアップなどの拡張機能が行う通信において、Azure VM (Private IP) から Azure Storage (Public IP) へと通信が行われますので、バックアップの際に大量のトラフィックが生じた場合などで問題が顕在化しやすいかと存じます。

ExpressRoute はあくまでも Azure とお客様のオンプレミス環境を接続するサービスという位置づけになりますので、プロバイダー様のルーターから Azure へと広報される経路は、あくまでもオンプレミス側で利用されているもののみとしていただくのがよろしいかと存じます。

 

以上、詳説 Azure ExpressRoute Part 2 をお届けしました。

今回取り上げた内容に関しては、事前の考慮不足で構築スケジュールに影響が生じたり、ExpressRoute の接続後のトラブルにつながる場合もありますので、設計段階から十分にご検討いただければ幸いです。

 

本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。

Microsoft Flow を使ってみる

$
0
0

こんにちは、Teams サポートの吉野です。
今回は、新しくストアに追加された Flow の使い方について解説します。

まずはストアより Flow を探してインストールします。

追加できましたら、以下のような画面が出てきます。

フローと書いてあるタブをクリックします。サインイン要求画面が出てきた場合、認証情報を入力します。

成功したら[開始する]をクリックします。

早速何か作ってみましょう。まずはテンプレートから作成をクリックします。

画面下までスクロールし[テンプレートをもっと見る]をクリックするとすべてのテンプレートが表示されます。
ここでは[新しいドキュメントの承認を開始し、 Teams を使用して通知する]をクリックします。

[続行]をクリックします。

成功すると、フロー図が表示されます。とりあえず適当に入れていきましょう。
まずは上から。Sharepointにファイルが作成されたとき、という意味です。

Teamsに投稿できます。ここでは上のチームサイトとは別のTeamのChannelにポストしてみます。
Generalは「一般」チャネルを意味します。デフォルトのメッセージは英語だったので日本語にしてみました。

ここが本命の承認プロセスです。担当者のメールアドレスを入れましょう。

承認した場合どうするか、拒否した場合どうするかを決めます。ここでは同じチャネルにメッセージを投稿します。終わったら一番下のフローの保存を押します。
[完了]をクリックして終了です。

 

 

では実際にファイルをアップロードするとどうなるか見てみましょう。

Teamsの指定したチャネルにメッセージが届きます。メールも届きます。
メールからApprove/Reject ができるようです。

 

 

 

もちろんTeamsのFlowからも承認・拒否ができます。

コメントして拒否します。するとコメントと共に拒否したことがChannel に投稿されます。

ちなみに、このフローは文書を承認するか拒否するかというものです。アップロードを許可するか禁止するかではないので、拒否してもSharepoint(Teams)内にドキュメントはアップロードされたままの状態になっていて、ダウンロードも可能です。

Flowの使い方については下記をご参照ください。

https://docs.microsoft.com/ja-jp/flow/guided-learning/

 

Danmarks Læringsfestival 2018

$
0
0

Traditionen tro kommer Microsoft på Danmarks Læringsfestival. Vi kommer med en stand, hvor der er fuld fokus på Minecraft: Education Edition, vi har taget hele teamet med og derudover André Chercka, Minecraft Mentor og moderator på Facebook gruppen "Minecraft i undervisningen". Her finder du over 400 entusiastiske Minecraft skolefolk og råd og vejledning i bedste netværksstil. Du finder også undervisningsmaterialer og verdener til Minecraft på https://education.minecraft.net/ under Class Ressources. Alt er gratis og lige til at gå til.

ATEA vil have konsulenter på standen, således at I kan tale licenser og priser med dem

Hvis du vil prøve Minecraft: Education EQdition gratis, så læs mere her...

I år har vi også slået os sammen med HippoMini og er repræsenteret på deres stand med en stor vifte af Surface produkter. Lige fra 84" Surface Hub over Laptop, Book og Pro. Kom og prøv dem og tal med os om kompetenceudvikling på Windows 10 og Office 365 samt alt det kreative, innovative og Hacking STEM samt makecode.com på deres stand.

Vi glæder os til at se jer og tale uddannelse, kreativitet og tech med jer 🙂

 

ショートカット キーの抑止について

$
0
0

こんにちは。

今回は、お問い合わせとしてよくいただく「Internet Explorer 11 でショートカット キーを抑止したい」について記載します。
本記事に記載の内容が、今後の Web 開発における仕様検討にお役に立てますと幸いです。

 

これまでどうしていたか?

ショートカット キーの抑止に関して、実は Web 標準として定められたものはありません。
ショートカット キーは、各ベンダーが開発しているブラウザーごとにそれぞれ任意に用意されていることが一般的です。

Internet Explorer では、例えば、Alt + Home キーでホームページへ戻る動作となります。

 

Internet Explorer 11 のキーボード ショートカット
https://support.microsoft.com/ja-jp/help/15357/windows-internet-explorer-11-keyboard-shortcuts

 

では、これまで Web 開発者はショートカット キーを抑止するにはどういう方法を取っていたのでしょうか。
多くは下記のように keyCode プロパティを 0 に書き換える、もしくは return false とする実装としていることがほとんどではないかと思います。

document.onkeydown = function() {
event.keyCode = 0;
return false;
}

 

Internet Explorer 11 での動作について

Internet Explorer 11 上の最新のドキュメント モードでは、上述した処理によりキーボード ショートカットを抑止することはできなくなりました。

これまでのバージョンの Internet Explorer では、キーボード操作などにより発火されるイベントは MSEventObj オブジェクトという Internet Explorer 独自のイベント オブジェクトが利用されていました。

しかしながら、Internet Explorer 11 では、可能な限り Web 標準に準拠した作りとするため、イベント オブジェクトについても W3C の策定する DOM3 の標準に従った、window.event オブジェクトに変更しています。

 

ウィンドウ イベントの動作の変更
https://msdn.microsoft.com/ja-jp/library/dn384058(v=vs.85).aspx

Event
https://developer.mozilla.org/en-US/docs/Web/API/Event

 

Web 標準では keyCode プロパティは “読み取り専用” と定義されており、Internet Explorer 11 においても本定義に準拠した結果、Internet Explorer 11 標準ドキュメント モードでは上述している方法でのショートカット キーの抑止はできなくなりました。

 

KeyboardEvent
https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent

 

なお、過度なショートカット キーの抑止は、ブラウザー クラッシャーと判断されかねない恐れもあることから、あまりおすすめできるものではありません。

 

どうすれば良いか?

ここまで記載した通り、これまでの抑止方法は “Internet Explorer の動作に依存した方法” であり、これまでの Internet Explorer の動作上うまく抑止ができていた方法となります。

昨今では各ベンダーより様々なブラウザーが開発され、ユーザーが利用するブラウザーの大半が Internet Explorer だという時代は残念ながら過ぎ去ってしまっています。

このような背景から、最近では Web サイトにおいても「相互運用性」という点が非常に重要になってきました。
「相互運用性」とは、どのブラウザーで閲覧しても、同じように表示する、同じように動作する、同じような体験ができる、というようなことを言います。

 

この点を踏まえると、各ブラウザーの動作に依存した抑止方法を検討するのではなく、

 

ショートカット キーを押下されても良い構造とする方法

 

を検討することが重要となります。

 

では、どうすれば良いでしょうか?
ショートカット キーを抑止したい、という背景には、ある決められた手順に従ってページ遷移をしないといけない、といったような Web ページの構造上の制約があることが多々あります。
この点を考慮し、考えられるポイントはいくつかあります。

 

onbeforeunload イベントを活用する

onbeforeunload イベントで、文字列を return する実装とすることにより、ウィンドウを閉じようとした場合、別のページに遷移しようとした場合、などにおいてメッセージを表示させることが可能です。
また、本当に遷移が必要な処理の場合にのみ onbeforeunload イベントからイベント ハンドラを削除することで正常にページの遷移が可能です。

<html><head>
<meta http-equiv="X-UA-Compatible" content="IE=11" />
<script type="text/javascript">
window.onbeforeunload = function() {
return "入力中の内容が破棄されますが問題ありませんか?";
}
function onSubmit(form) {
window.onbeforeunload = null;
form.submit();
return false;
}
</script>
</head>
<body>
<form onsubmit="onSubmit(this);">
<input type="text" />
<input type="submit" />
</form>
</body></html>

 

DOMStorage といったローカル上に保存できる仕組みを活用する

ページ遷移を行うたびに、JavaScript などでこれまでの情報を localStorage などに保存しておくような構造とすることにより、万が一、ブラウザーが閉じられた場合や別のサイトに遷移した場合にも、次回ページ表示時に localStorage から情報を読み込むことで復元することが可能と考えられます。
(情報の保持の仕方や復元方法などについては、各 Web アプリケーションごとに仕組みを検討いただく必要はあります)

 

DOM ストレージの概要
https://msdn.microsoft.com/ja-jp/library/cc197062(v=vs.85).aspx

 

Web サーバー側で情報を保持する仕組みを用意する

同じように、ページ遷移を行うたびに Web サーバー側で情報を保存しておくような構造とすることでも DOMStorage と同様に対処が可能と考えられます。
(本方法も、情報の保持の仕方や復元方法などについては、各 Web アプリケーションごとに仕組みを検討いただく必要はあります)

 

いかがでしたでしょうか。
今後の Web 開発において参考となれば幸いです。

Starting a new chapter

$
0
0

When I originally accepted a job with Microsoft, just over 14 years ago, I chose the company because of the sheer number of different roles that were available – lots of opportunities for new challenges.  That has taken me through roles that included consulting, development, program management, product marketing, and product management.

Starting this week, I have changed roles again, moving from Windows commercial product marketing (which covered the product marketing and product management roles above) to the Windows & Devices Group (WDG), the group that creates Windows, as a principal program manager on the modern deployment team that works on Windows AutoPilot, MDM management, subscription activation, and related technologies.

While that will likely change the typical makeup of my day quite a bit, there will certainly be areas that won’t change:  You’ll still see me blogging (something that wasn’t in my previous job description either), participating in events (talking about modern deployment and management – someone else can talk about Windows as a service), working with customers, MVPs and partners, working with various product groups to address enterprise concerns, etc.  And I’ve been contemplating some new things, e.g. podcasts, videos, and that sort of thing.  So I’m definitely not going to disappear.

The last five years in Windows commercial marketing were a lot of fun, filled with plenty of successes and a fair number of failures too.  Now I’m looking forward to the path ahead.

As always, feel free to reach out to me via e-mail (mniehaus@microsoft.com), Twitter (@mniehaus), or LinkedIn (http://www.linkedin.com/in/mniehaus/).  And keep deploying Smile  Now, back to work…

 

p.s. If you send me a LinkedIn request, introduce yourself, describe how you know me, explain what you do, etc. -- one downside of having a "director of marketing" title (my old job) is that you get lots of requests from people who want to sell you things.  So if I don't recognize you and just see a generic connection request, I'm likely to ignore the request.

Publish your application in Microsoft Store for Education using Windows Bridge

$
0
0

Did you know that Microsoft has a unique store and infrastructure for the education sector?

If you have any Desktop application that fits in this sector, contact me that I can assist with the application publication with no cost. I can even provide the voucher for the developer account Registration in Microsoft Store.

The application does not need to be Universal Windows Platform (UWP), it can be encoded in any programming language, including non Microsoft.

More details from Microsoft Store for education at:

https://docs.microsoft.com/en-us/microsoft-store/microsoft-store-for-business-overview

 

 


Updated: Upcoming Security Enhancements in the Intune Service

$
0
0

[2/9/18]: This post has been updated to reflect changes in roll out for this security enhancement. The feature will now be rolled out for Intune standalone only at this time. Hybrid and O365 customers will not be affected by this change.

We’re introducing some security enhancements, based on your feedback, in the Intune service in March. Depending on how your compliance policies are configured, you may need to take action to avoid loss of email access for your end users.

If you have used compliance policies with Conditional Access (CA) in Intune, you may have noticed that devices without a compliance policy assigned to them are considered compliant and end users are allowed access to email. In March, we'll introduce a new toggle so that admins will have the option to have devices with no compliance policy assigned to them treated as “not compliant”. These devices will be blocked by CA and end users associated with them will lose access to email. However, you’ll have control over turning this feature on or off for your tenant, as we mention later in this post.

How should I prepare for this change?

We’ve launched a new report in Intune on Azure, called “Devices without compliance policy”. This report will help you identify all the devices in your environment that do not have a compliance policy assigned. Please review your compliance policy deployments and ensure that all your devices have at least one compliance policy assigned to them by March.

Here’s a screenshot of what the report looks like. If the count of devices in your report is non-zero, then you have devices in your environment without a compliance policy which will be marked as not compliant when the March update to Intune is released. Click on the report, review the list of devices and users, and assign a compliance policy where necessary. See Get started with Intune device compliance policies and follow links for directions to assign policies to different platforms.

SBD1

Known issue: Please note that currently, users targeted by any compliance policy, regardless of device platform, will not show up in the “Devices without compliance policy” report. So, for example, if you have unintentionally targeted a Windows compliance policy to a user with an Android device, this device will not show up in the report but will be considered 'not compliant' by Intune. We’re working to resolve this issue in a future release. We recommend that a policy is created for all available device platforms and deployed to all users.

New toggle for managing security enhancements

In March, we’re introducing a toggle in Intune on Azure that Intune standalone customers can use to treat devices without any policy assigned as ‘Compliant’ (security feature off) or treat these devices as ‘Not compliant’ (security feature on). This toggle will be set to turn the feature on by default, but you can turn it off it in the console if you choose to. If you use Conditional Access, we recommend you do not turn this feature off and leave the toggle set to ‘Not compliant’. Here’s a preview of what the toggle will look like.

SBD2

 

How will I know if an end-user is impacted?

If an end user is not compliant because no policy is assigned, the Company Portal will show “No compliance policies have been assigned” as the reason. Below is a screenshot of what an end user will see in the Android Company Portal.

SBD3

How do I assign a compliance policy to “All Users”?

We’ve added a new feature to the Intune on Azure Portal that allows you to assign compliance policies to “All Users”. You can even create a blank compliance policy with no settings configured and assign it to your users, to ensure that they have at least one policy targeted to them at all times.

What if I have users exempted from CA that aren’t targeted by a compliance policy?

If you have users in your environment that are exempt from CA requirements, their devices will still be reported as not compliant if they’re not targeted by at least one compliance policy. However, this will not impact their access to company resources such as email.

What if I have compliance policies in the Intune Silverlight console?

As a reminder, any compliance policies in the classic Silverlight console will not show up in the Intune on Azure console. Please re-create these policies in Intune on Azure if you haven’t done so already.

What if I am a Configuration Manager customer using hybrid mobile device management (MDM)?

Currently, this will not impact hybrid customers. We will inform you through a message center post if this does become available in a future update. However, we highly recommend that you assign at least one compliance policy to your devices if you haven’t done so already.

What if I am an Office 365 customer using Mobile Device Management for Office 365?

This change will not impact you if you are using Mobile Device Management for Office 365.

1801+ Management Packs and Evaluation VHDs

$
0
0

Combating Display Name Spoofing

$
0
0

My lack of updates around these parts can be attributed to the craziness of work over the last few months. This afternoon I have some time and am typing this out as quickly as I can before someone notices and gives me something else to work on. Let’s begin.

I’ve recently seen a very big rise in display name spoofing. With technologies in place like DMARC, DKIM, and SPF, attackers are finding it harder and harder to spoof sending domains. Instead, they have reverted to something quite simple, changing their sending display name to be that of an executive in the targeted organization.

For example, an attacker will register a free email account and use any email address. Sometimes the addresses contain the name of the executive that they are trying to spoof. The attacker would then set their display name to match your CEO or some other executive, and then send phishing messages into your organization. The hope is that the recipient won’t look at the sending address, and instead just look at the sending display name. Some recipients may even assume that the sending email is the personal email of the executive and believe it to be real.

The other problem with an attacker using a consumer email account, or even their own domain, is that all checks like DMARC, DKIM, and SPF will all pass (as long as the records are set up correctly) as there is no domain name spoofing happening.

To combat this, I have had customers implement a transport rule that identifies messages that contain the names of key executives in the From field, and which originate from outside of the tenant. The transport rule would look something like that.

Under exceptions, you would add the personal addresses that the executives may use to send mail to the company to ensure those messages aren’t caught by this rule.

The rule is simple and straightforward, but I’ve had customers report having much success with it capturing phishing attempts.

Cheers!

Support-Info: (SharePoint UPA) FIM Services don’t start: Error creating com objects. Error code: -2147467259

$
0
0

PRODUCTS INVOLVED

  • Microsoft SharePoint 2013
  • Microsoft SharePoint 2013 User Profile Synchronization Application (UPA)
    • Microsoft Forefront Identity Manager 4.0.2450.51
  • Microsoft SQL Server 2012 Service Pack 3
  • TLS v1.0 is Disabled
  • TLS v1.2 is Enabled

 

PROBLEM SCENARIO DESCRIPTION

In this specific issue, the two Forefront Identity Manager Services associated with the SharePoint UPA would not start. The failed starts, did provide exceptions documented in the Application Event Log.  Attempts were made to start these services via Central Administration as well as the Services MMC.  Once you attempt to start the services and they fail, go to the Application and System Event Logs looking for information on the cause of the issue.

 

NOTE While this specific issue documented here is for the SharePoint UPA, this information may apply to other builds of the FIM/MIM Synchronization Service as it is more in reference to the security move to TLS v1.2.

 

APPLICATION EVENT LOG: Source: Forefront Identity Manager Synchronization Service
The server encountered an unexpected error and stopped.

"BAIL: MMS(17552): sql.cpp(252): 0x80004005 (Unspecified error)

BAIL: MMS(17552): storeimp.cpp(234): 0x80004005 (Unspecified error)

ERR: MMS(17552): server.cpp(373): Failed to connect to the database User Profile Service Application_SyncDB_

BAIL: MMS(17552): server.cpp(374): 0x80004005 (Unspecified error)

BAIL: MMS(17552): server.cpp(3860): 0x80004005 (Unspecified error)

BAIL: MMS(17552): service.cpp(1539): 0x80004005 (Unspecified error)

ERR: MMS(17552): service.cpp(988): Error creating com objects. Error code: -2147467259. This is retry number 0.

BAIL: MMS(17552): clrhost.cpp(283): 0x80131022

BAIL: MMS(17552): scriptmanagerimpl.cpp(7670): 0x80131022

BAIL: MMS(17552): server.cpp(251): 0x80131022

BAIL: MMS(17552): server.cpp(3860): 0x80131022

BAIL: MMS(17552): service.cpp(1539): 0x80131022

ERR: MMS(17552): service.cpp(988): Error creating com objects. Error code: -2146234334. This is retry number 1.

BAIL: MMS(17552): clrhost.cpp(283): 0x80131022

BAIL: MMS(17552): scriptmanagerimpl.cpp(7670): 0x80131022

BAIL: MMS(17552): server.cpp(251): 0x80131022

BAIL: MMS(17552): server.cpp(3860): 0x80131022

BAIL: MMS(17552): service.cpp(1539): 0x80131022

ERR: MMS(17552): service.cpp(988): Error creating com objects. Error code: -2146234334. This is retry number 2.

BAIL: MMS(17552): clrhost.cpp(283): 0x80131022

BAIL: MMS(17552): scriptmanagerimpl.cpp(7670): 0x80131022

BAIL: MMS(17552): server.cpp(251): 0x80131022

BAIL: MMS(17552): server.cpp(3860): 0x80131022

BAIL: MMS(17552): service.cpp(1539): 0x80131022

ERR: MMS(17552): service.cpp(988): Error creating com objects. Error code: -2146234334. This is retry number 3.

BAIL: MMS(17552): service.cpp(1002): 0x80131022

Forefront Identity Manager 4.0.2450.51"

 

 

APPLICATION EVENT LOG: Source: Forefront Identity Manager Service
Microsoft.ResourceManagement.Service: System.TypeInitializationException: The type initializer for 'Microsoft.ResourceManagement.WebServices.ResourceManagementServiceHostFactory' threw an exception. ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.TypeInitializationException: The type initializer for 'Microsoft.ResourceManagement.WebServices.ResourceManagementServiceSection' threw an exception. ---> System.Configuration.ConfigurationErrorsException: Required attribute 'externalHostName' not found. (D:Program FilesMicrosoft Office Servers15.0ServiceMicrosoft.ResourceManagement.Service.exe.Config line 29)

at System.Configuration.BaseConfigurationRecord.EvaluateOne(String[] keys, SectionInput input, Boolean isTrusted, FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentResult)

at System.Configuration.BaseConfigurationRecord.Evaluate(FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentResult, Boolean getLkg, Boolean getRuntimeObject, Object& result, Object& resultRuntimeObject)

at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject)

at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject)

at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject)

at System.Configuration.BaseConfigurationRecord.GetSection(String configKey)

at System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection(String sectionName)

at System.Configuration.ConfigurationManager.GetSection(String sectionName)

at Microsoft.ResourceManagement.WebServices.ResourceManagementServiceSection..cctor()

--- End of inner exception stack trace ---

at Microsoft.ResourceManagement.Policy.PolicyApplicationManager..ctor()

--- End of inner exception stack trace ---

at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandle& ctor, Boolean& bNeedSecurityCheck)

at System.Activator.CreateInstance[T]()

at Microsoft.ResourceManagement.Utilities.SingletonObjectBase`1.get_Instance()

at Microsoft.ResourceManagement.Utilities.DefaultSingletonObjectClassFactory`2.CreateInstance()

at Microsoft.ResourceManagement.Utilities.ClassFactoryManager.CreateInstance[T]()

at Microsoft.ResourceManagement.WebServices.ResourceManagementServiceHostFactory..cctor()

--- End of inner exception stack trace ---

at Microsoft.ResourceManagement.WebServices.ResourceManagementServiceHostFactory..ctor()

at Microsoft.ResourceManagement.WindowsHostService.OnStart(String[] args)

 

CAUSE

  • Support for TLS v1.2 was not installed on this client/application machine

 

RESOLUTION

 

  • In this specific scenario, the Hotfix(QFE) for SQL Server Native Client 11.0 was installed and successfully working. To resolve this scenario, the Hotfix(QFE) for SQL Server Native Client 10.0 had to be installed.

 

ADDITIONAL INFORMATION

  • We did utilize a UDL file to test the connection to SQL Server.
    • OleDB Failed
    • Native Client 10.0 Initially failed until the QFE was installed
    • Native Client 11.0 initially succeeded because the QFE was installed.

 

TROUBLESHOOTING LINKS:

NOTE These are some links that I reviewed during the course of this issue, that lead me to believe it was an issue with SQL Server connectivity

 

 

 

 

 

 

 

 

Keywords Iamsupport sharepoint upa -2147467259

 

改革の経緯とソフトウェア資産管理の将来 【2/10 更新】

$
0
0

(この記事は2017年11月27日にMicrosoft Partner Network blog に掲載された記事 The case for change and the future of Software Asset Management の翻訳です。最新情報についてはリンク元のページをご参照ください。)

 

マイクロソフトのソフトウェア資産管理 (SAM) チームは、今まさに改革を成し遂げようとしています。そして、かつてはコンプライアンスの監視役と見なされていた SAM は、デジタル トランスフォーメーションを戦略的に推進 (英語) し、信頼できるパートナーへと進化しつつあります。

 

マイクロソフトの主な使命は、お客様が IT 投資の価値を最大限に引き出し、リスクを最小限に抑え、資産を有効活用できるように支援することです。そのために、従来のライセンス中心のしくみを新しいビジネス モデルに移行し、パートナー様のエコシステムとお客様の両方に戦略的なメリットがもたらされるように取り組んでいます。

その一例が、7 月に Microsoft Inspire (英語) で発表した Intelligent Asset Manager (IAM) のリリースです。今回は、マイクロソフトが進めている改革の概要と、これらの改革がパートナー様やお客様にとって重要な理由をご説明します。

 

SAM の進化の過程

詳しい説明に入る前に、これまでの経緯を簡単にご紹介しましょう。この 10 年間、SAM チームはパートナー チャネルを構築し、専門知識を蓄積することで、お客様と協力してお客様の IT 環境を理解してきました。数年前までは、お客様がコンプライアンスを確保できるように支援すること、そしてお客様が購入したライセンスを確実に使用できるようにすることがマイクロソフトの目標でした。しかし、テクノロジ全体が急速に変化し、IT 環境の複雑化が進み、その結果としてセキュリティ リスクが増大し続けている中で、もっと他にもできることがあると気付いたのです。

そこで 2 年前から、お客様の変革を支援する新しい方法を模索してきました。お客様が的確かつ持続的な意思決定を行い、サイバーセキュリティのリスクを軽減し、最終的には投資を有効活用できるようにすることが、チームの新たな役割であると考えたのです。その一環として、成功の測定方法も変更しました。これは、マイクロソフトにとって非常に重要なことでした (詳細については、ゼネラル マネージャーの Patama Chantaruck によるこちらのプレゼンテーション (英語) をご覧ください)。

しかし、この規模で改革を成し遂げることは容易ではありません。パートナー様やお客様には実際に問題が発生しており、SAM のあらゆる面が複雑化しています。同時に、適切な IT 資産管理の潜在的価値はかつてないほど高まっています。パートナー様がお客様とかかわる方法を変革するためには、こういった複雑さに対処する必要がありました。

 

Intelligent Asset Manager (IAM) の価値

IAM の目的は、コストのかかる従来のライセンス中心のモデルや、ツールが溢れているばかりでソリューションが存在しない現状といった主要な課題を解決し、パートナー様がお客様に大きな価値を提供できるように支援することです。そのためには、パートナー様が単なるライセンスのエキスパートから幅広い分野で信頼されるアドバイザーへと変身できるように、刷新を図る必要がありました。

この目的を達成するために、IAM は 2 つの重要な分野における改善に焦点を当てています。

 

  1. ライセンスの複雑さを軽減する

多くのパートナー様にとって、有効ライセンス ポジション (ELP、Effective Licensing Position) の作成は重要な役割の 1 つであり、大きな存在理由でもあります。と言うのも、ソフトウェアの発行元は長年、こうした複雑な課題の管理をパートナー様に委託してきたからです。しかし、パートナー様が信頼されるアドバイザーとしての役割を広げられるようにするためには、マイクロソフトがライセンスの複雑さを軽減し、ELP 作成プロセスを提供する必要がありました。

IAM では、一元的な ELP 作成サービスが提供されるため、一貫性が向上し、徐々に複雑さが軽減されます。これにより、パートナー様のリソースが解放され、高品質のインベントリを有用なインサイトに変えることに専念できるようになり、最終的にはお客様のデジタル トランスフォーメーションを促進できます。

 

  1. ツールではなくソリューションを提供する

私がこの一連の役割を引き受けた時点で、世間では驚くほど多数の SAM ツールが使用されていました。その中には、市販のツールもあれば、パートナー様固有の知的財産もありました。どのツールも多大な労力の賜物です。しかし、ベンダー、IT インフラストラクチャ、地域を問わず、あらゆる SAM の課題に効果的に対処できる単一のツールは存在しませんでした。

そこで、すべてのパートナー様やインベントリ ツールに対応するインベントリ標準を策定しました。この標準は、情報の伝達や譲渡を効率化するものです。パートナー様が視覚的な分析データを提供し、具体的な推奨事項を提案できるようになることで、お客様は IT 環境を包括的に把握し、十分な情報に基づいて意思決定を行うことができます。

 

私は、SAM の進化と、IAM がお客様とのかかわりにもたらす価値に大きな期待を寄せています。このトピックについては、さらに詳しくご説明する予定です。IAM に関する今後の更新にご期待ください。

 

SAM の将来についてご意見がありましたら、ぜひマイクロソフト パートナー コミュニティ (英語) でお聞かせください。

 

 

15 февраля. Вебинар. Трансформация разработки с DevOps

$
0
0


В первый день онлайн-мероприятия расскажем все этапы построения DevOps, каким образом современные технологии помогают в реализации микросервисной архитектуры, которая позволяет максимально оперативно реагировать на вызовы быстро меняющего мира, рассмотрим примеры построения DevOps на реальных примерах в разных организациях и на разных платформах.

Так же мы осветим последние тенденции OSS-технологий, благодаря которым можно объединить ведущие проекты в цепочке инструментов DevOps при помощи возможностей Azure, извлекая преимущества как из устаревших локальных, так и из написанных в облаке приложений.

Ключевые темы:

  • DevOps с Kubernetes и VSTS.
  • Трансформация архитектуры при переходе в облако.
  • Контейнеризация и оркестрация при реализации микросервисов с учетом DevOps процессов.
  • Azure Services для разработки и тестирования.
  • Использование инструментария с открытым исходным кодом.
  • DevOps баз данных.
  • Операцианализация и DevOps ML и Big Data.
  • Возможности кроссплатформенной разработки и организации DevOps процессов для .Net Core.

Откройте для себя Azure!

Вебинар бесплатный, регистрация обязательна!

16 февраля. Вебинар. Техническая сессия по подготовке к экзамену 70-532: “Разработка на Microsoft Azure”

$
0
0

Достичь максимальный эффективности технологии возможно лишь досконально изучив её. Для того, чтобы предоставлять услуги и сервисы быстро и качественно, нужно быть уверенным в себе и в технологии, которую Вы используете.

Потребности бизнеса растут и на волне этого роста, возникает острая необходимость в отказоустойчивом, быстром и не дорогом сервисе, инфраструктуре, хранилище. Каждый проект в современном мире так или иначе связан с ИТ и для многих понятие «Виртуальная машина», «Сторадж», «Учётка» и прочие, стали обыденностью. Но знание этих слов, не даёт знаний о технологии, её применении и эффективности.

На мероприятии мы расскажем ключевые моменты, а так же тонкости разработки используя платформу Microsoft Azure и вместе с Вами подготовимся для сдачи экзамена 70-532: Разработка на Microsoft Azure, который подтвердит Ваш статус специалиста с высочайшим уровнем компетенций.

Вебинар бесплатный, регистрация обязательна.


AAD Connect Network and Name Resolution Test

$
0
0

While assisting some of my customers last year on an multi-forest AAD Connect setup configuration, we ran into communications problems with many of the remote sites.  We had a very aggressive deployment schedule, so couldn't afford to spend a lot of time troubleshooting connectivity issues when we got to the sites.  As a result, we needed a way to test basic name resolution and connectivity settings before we began setup.

And thus, this tool was born.

I've updated it to make it a little more broad and include some more tests, so hopefully some deployment folks will find use in it.  I've got some ideas for additional tests that I'll be adding over the coming weeks, but I wanted to get the first edition out there and start eliciting feedback on it.

The tool has several checks:

Dns

In order to configure the Active Directory connector, you must have both name resolution for the domain you're attempting to connect to as well as a network communications path.  For the name resolution part, you need to be able to resolve both domain controller names as well as the SRV record for _ldap._tcp.<domain>.

Network

For the local networking tests, AAD Connect must be able to communicate with the named domain controllers on ports 53 (DNS), 135 (RPC Port Mapper), 389 (LDAP), 445 (SMB), and 3268 (Global Catalog).  Most organizations run DNS on their DCs, which is why this test is currently integrated.  I have plans to skip the port 53 check you've specified another DNS server.

OnlineEndpoints

For the online endpoints test, the AAD Connect server must be able to connect to a number of endpoints and retrieve or post data.  AAD Connect requires port 80 connectivity to retrieve the Certificate Revocation List, as well as port 443 connectivity to talk to the provisioning service and Azure AD.

You can download the tool on the TechNet Gallery at https://gallery.technet.microsoft.com/Azure-AD-Connect-Network-150c20a3.

How to resolve Function Key lock with Surface Pro Keyboard

$
0
0

Few months back i found that the "Home", "End" function keys are not working. Neither "F2" which I use for editing the excel renaming files stopped working.

I tried a lot on fixing the keyboard by re-installing drivers etc. Today, I did a quick search and found that a combination of "CAPS + Fn" locks the Function keys.

It appears that when I was cleaning my keyboard few months back, I seems to have accidently locked the keys. Since there was no tool tip available, I had to struggle a lot. I hope this post will be helpful for other users.

[無料ダウンロード] アプリ開発者を悩ませる「クラウド データの 6 つの課題」を解消 (e-book) 【2/11 更新】

$
0
0

利用可能なデータと人工知能 (AI) テクノロジを最大限に活用できていますか?

e-Book『アプリ開発者を悩ませる「クラウド データの 6 つの課題」を解消』をご覧いただくと、実用的な回答を得ることができます。以下の 6 つの一般的なデータ シナリオに最適なアプローチをご確認ください。

 

•  拡張性や可用性などの必須要素を追跡。
•  アプリにより複数ユーザーに提供されるサービスの一貫性を確保。
•  複数のデータセンターの複雑さを伴うことなく、全世界にリアルタイムでデータを提供。
•  ビッグ データから実用的なインサイトを構築。
•  アプリに人工知能の機能を導入。
•  クラウドで構築しながらセキュリティを確保。

 

▼ e-Book『アプリ開発者を悩ませる「クラウド データの 6 つの課題」を解消』のダウンロードはこちらから

 

Azure Functions Usage

$
0
0

In this post, I'm going to discuss Azure Functions.

Azure Functions is a solution for easily running small pieces of code, or "functions," in the cloud. Azure Functions enables you to write serverless code to handle events at scale, with minimal overhead and cost. Azure functions work with both C#, F# and JavaScript functions. You may use many different triggers and binding types supported by Azure functions including monitoring queues. And it works with blob storage, sending emails, and able to develop in Visual Studio or from the command line with a text editor, if you prefer. As an awesome feature, this provides the ability to automate deployments, debug and monitor our functions. 

As per the working of Azure Functions, you don't need to write, deploy, run in different places and deploying the application getting it as a big task. Because the Azure Functions gives you every feature to work with different combinations with the support of C# F# codes and JavaScript codes.

Will go through with the implementation of Functions.

In the Azure portal, you can search "Function Apps"

You will need to enter the application name which you can access later through the URL. The resource group also needed with an active subscription. Then you can select either you need to deploy this in Windows or Linux Os. Then with new storage, you can simply create the Azure Function.

When you create the app you can see like this.

After that, you can search with the created name to find your azure function to open the developing of your function.

Then you can open the application. Now you can see your application is now running mode.

With the name you created, you can navigate to your Azure Function using the URL.

Eg: https://testingfunctionappdemo.azurewebsites.net/

In the function section, you can create a new function with your own preferred language. Let's create "HTTP Trigger" which we can write C# or JavaScript or F# code to run a code as our need.

As in the authorization level, there are three options;

  1. Function: You need to provide function specific API key.
  2. Annonymous: No need of any authorizations.
  3. Admin: You need to provide an admin key.

So you can create Function with Annonymous Authorizations.

This will show "run.csx" file where the full code that we need to run. This is the C# script.

The sample c# script will shows. This script will return "Hello {Name}".

Name is the parameter that we need to provide when we calling the URL.

Like: https://testingfunctionappdemo.azurewebsites.net/api/HttpTriggerCSharp1?name=sasindu

Then this will return "Hello Sasindu" in <string> tags as in XML format.

This is the function you created.

Then you can create a trigger inside the function to trigger the function as a timer.

In the timer function, you can set the schedule which we need to trigger the script code inside the trigger function.

Let's edit the time trigger to call the 1st created function.

Use below code :

----------------

using System;
public static async Task Run(TimerInfo myTimer, TraceWriter log)
{
var client = new HttpClient();
var response = await client.GetAsync("https://testingfunctionappdemo.azurewebsites.net/?name=Sasindu");
var result = await response.Content.ReadAsStringAsync();
log.Info($"Executed HttpTriggerCSharp1: {DateTime.Now}, Result: {result}");
}
---------------
//Please use your url as: https://testingfunctionappdemo.azurewebsites.net/
Then you can see the output in the log.
Actually, this is a sample function application.

And in the "run.csx" file, you can edit that script as you need. You can use Azure SQL database queries as well.

To use SQL DB, When you click the Function Apps Name, you can see "OverView" and "Platform Features".

In here, you can find "Application Settings".

Then when you go down, you can see the "Connection String" area.

Here you can add the connection string as in we previously used in other c# applications. And just you can call that connection string in the run.csx file as below:

This is a simple update query.

As you can see we can do many more things with the serverless compute service.

References: https://docs.microsoft.com/en-us/azure/azure-functions/

Guest post: Paul Long brings us an updated list of The Most Frequent Award Winners

$
0
0

Good Day guys,

If you are developer, DBA, or IT who works with multiple languages, then you probably familiar with the problematic phrase "First day of the week". Regardless the question if you open the week on Sunday or still sleeping during the weekend on Sunday, this is the time for the Surprise with Sunday Surprise post 🙂

Today's Surprise is a Guest post, written by Paul Long, who is one of the most active members in the TechNet Wiki community. You can meet Paul in the TNWiki Facebook group or read Paul's interview or check his User Page, but first let's go read Paul's post:

Good day Gurus,

Some of you already know me, but for those who don't, I'm Paul. I've been fairly active with programming since about 2007 and I've been entering articles in the Guru Competition since 2013.

Currently I'm studying a University module on Web Technologies. Alongside regular programming in VB.Net, C#, and Java, I'm personally interested in web technologies, particularly Html, CSS, Javascript, and PHP. I have a personal website, which has been evolving over several years, as I learn more about the web. On my site, I have some VB.Net and C# examples (some of which need some rewriting), some compiled games, but more recently I have become more interested in online games. I'm hoping to rewrite three of my most popular games (HangMan, Mastermind, and Sudoku) in mobile format, as they currently work well in desktop format, but not so well with mobile devices...

What's new?

As some of you will have noticed, I recently undertook the task of updating the TechNet Wiki administrative article: TechNet Guru: The Most Frequent Award Winners.

This is an article I've seen before several times, which for a long time I've wanted to see updated, but I could see from the data it contained that it would take a complete recount of all of the winning articles in all of the previous competitions. Luckily, this is one of the areas where there is some order in the Wiki. The Wiki article: TechNet Guru Contributions contains a table providing links to all of the previous TechNet Awards articles (56 in total at the present time). Originally I wanted to count the articles awarded by extracting the data directly from the Html of the articles, but Html scraping is an exact science, and over the course of more than four and a half years, the Html used to create the Awards articles has changed. This left me with the only viable choice of manually counting the winners.

How?

I started out with a macro enabled Excel 2007 workbook. On Sheet 1 in column A I put the members names (taken from the old Award Winners page). Next, for each month of the competition I created a column.

For each column containing months in my sheet, I added  formulas to count Gold, Silver, Bronze, and Total medals, denoted by G,S,B. For each row containing members in my sheet, I added a formula to count Gold, Silver, Bronze, and Total medals.

At this point, I could see it would require inputting a series of G,S,B characters into the sheet, so I wrote a tool in VB with three buttons, each of which copied one of the G,S,B characters to the clipboard and I could easily paste it to the spreadsheet. This input took some time...

As the original Wiki page I was updating contained an indicator of whether the member had a Ninja Interview or not, I decided an additional column for each member could not only indicate this, but also provide a link to the interview. The full list of Ninja interviews was my data source for the links I used in my page update. The links I copied and pasted into a new sheet in my Excel Workbook, then I wrote a VBA macro to match up the interviews with the members on Sheet 1.

To double check my first medal counts from the 56 months, I created another tool in VB. After saving my Workbook Sheet 1 as CSV, I was able to produce a list for each month, as depicted below:

Using these lists and the Awards articles for the 56 months, I was able to quickly verify the counts for each month.

As I already by this stage, had a Worksheet containing all of the data for the 56 months of the Guru Competition, it was easy to create a line chart showing trends:

* You can download the excel file from the TechNet Gallery.

And here we are

It was a personal achievement completing this work, as I had previously seen the Wiki page I updated, and thought it could be a very useful resource if it was kept up to date. I was also surprised to see I'm at joint 5th on the Gold medal winning leader board 🙂

I'll be updating the Most Frequent Award Winners monthly, so be sure to check it!

TechNet Wiki Guru,
Paul Long



New! If you have something important to say to the TNWiki community, if you finished a nice project for the TNWiki community and you want to show it, or if you simply feel the need to publish a Guest post in the TNWiki blog, then contact one of the TechNet Wiki council members in-private.

Viewing all 34890 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>