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

Project Server 2016 RTM version d’évaluation

0
0

 

La version d’évaluation de Project Server 2016 est maintenant accessible au téléchargement ici. Pour plus d’information, la documentation Technet est disponible ici. Les licences devraient être disponibles courant mai.

A présent l’installation de Project Server est intégrée à celle de SharePoint 2016, il n’est plus nécessaire de faire une installation séparée. Néanmoins, Project reste un produit à part entière ainsi son activation nécessite une licence. J’attire votre attention sur les éléments dépréciés de cette nouvelle version par rapport à Project Server 2013 tel que le Resource Plans qui est remplacé par le Resource Engagements. Pour plus de détails, je vous invite à consulter cet article Technet.

Vous avez des suggestions sur cette nouvelle version, partager vos idées ou voter dans le User Voice.

Bonne journée à tous.


(Cloud) Tip of the Day: Azure Service Fabric in public preview

0
0

Today’s Tip…

Azure Service Fabric helps developers build, deploy, and operate microservice architecture applications, reliably and at scale. Using its actor-based development approach, teams are able to scale their agile development practices to bring new capabilities to market, faster than before. The Service Fabric public preview is available as an SDK for local development and as an Azure service. Service Fabric will become available to run on Windows Server 2012 R2 and 2016 TP3 in the coming weeks, with future plans for Linux support. Customers building on Service Fabric can have confidence that their application will be able to run across a range of cloud and on-premises environments. This public preview is available at no additional cost. For more information, please visit the Azure Service Fabric webpage.

Office 2016 Click To Run 16.0.6528.1017 can crash IE 11 when protected mode is enabled

0
0

Summary:

You have Office 2016 Click to Run installed version 16.0.6528.1017 (March 16, 2016 first release channel) or greater and IE11 and your SharePoint side is in an IE security zone that has Protected Mode turned on.

When the above is true and you navigate to some SharePoint web pages (like a list), IE will crash.

Cause:

This is a bug.

 

Workaround:

Disable protected mode in the IE security zone.

 

Current Status:

The product group is actively looking into this issue, we have no fix date available at this time.  Check back to this blog for more information.

Podcast 50 – Build 2016

0
0
En esta ocasión conocerán parte de lo que vivimos en el evento anual de Build por parte de Microsoft, que se llevó a cabo en San Francisco, y tuvimos la oportunidad de platicar con Eduardo Mangarelli, directo de tecnología de Microsoft Latinoamérica, quien nos contó acerca de las nuevas oportunidades que tendrán los desarrolladores gracias a las nuevas herramientas y servicios que Microsoft tiene para ellos....(read more)

Symantec Endpoint Protection Causes Windows Server Hang Affecting Lync Server and Skype for Business Server

0
0

Symantec recently posted a bulletin for Endpoint Protection which may affect Lync Server, Skype for Business Server, and Exchange.  The bulletin can be found here.  If you find your Lync/Skype/Exchange services are not starting after server reboot and you are running Symantec Endpoint Protection earlier than 12.1.6, be advised:

 

Windows computers hang on startup after installing Symantec Endpoint Protection earlier than 12.1.6

 

Problem

After you install a version of Symantec Endpoint Protection earlier than 12.1.6, Windows computers sometimes hang on startup. This issue is intermittent, and may not occur every time the computer is started.

 

Cause

The Symantec Endpoint Protection Auto-Protect component does not properly release its opportunistic lock (oplock) on the VIRSCAN7.DAT file. The default location for this file is C:\ProgramData\Symantec\Symantec Endpoint Protection\12.1.4112.4156.105\Data\Definitions\VirusDefs\20150114.001\VIRSCAN7.DAT.

 

Solution

This issue is fixed in Symantec Endpoint Protection 12.1 Release Update 6 (12.1.6 or 12.1 RU6). For information on obtaining the latest build of Symantec Endpoint Protection, see Download the latest version of Symantec Endpoint Protection.

You can use one of the following workarounds until you can update to 12.1.6 or later:

  • Manually create a folder exception for Symantec Endpoint Protection Virus and Spyware Definitions on affected computers.
    Follow the instructions in the knowledge base article Excluding a file or a folder from scans to create a folder exception for the following folder:
    C:\ProgramData\Symantec\Symantec Endpoint Protection\VersionofSEP\Data\Definitions\VirusDefs
    Where VersionOfSEP is the version of SEP installed. For example, on a computer that runs version 12.1.5 (12.1 RU5), the path to this file would be:
    C:\ProgramData\Symantec\Symantec Endpoint Protection\12.1.5337.5000.105\Data\Definitions\VirusDefs
  • In the Virus and Spyware Protection policy, disable Rescan when new definitions load.
    1. In the Virus and Spyware Protection policy, under Windows Settings > Protection Technology, click Auto-Protect > Advanced > File Cache.
    2. At the bottom, uncheck Rescan when new definitions load.
  • Disable deferred scanning in Auto-Protect by following the steps in the knowledge base article How to disable deferred scanning in Auto-Protect for Symantec Endpoint Protection.

Stay up to date with the latest news and blogs for Skype for Business and all Microsoft server technologies with the PFE Direct UWP Windows 10 app here!

[Skype] – Skype for Business Broadcast on Getting more value from Skype for Business and Office 365

0
0

Hi all -

I wanted to let you know that this Friday, April 8th the Skype for Business product team will be delivering a broadcast.

Details:

What: Getting more value from Skype for Business and Office 365

Background: With recent announcements of full meetings capability and cloud PBX from Skype for Business in Office 365, many organizations – whether current users of Skype for Business or not -- are assessing whether and how they should take advantage of Skype for Business. This call will definitely help accelerate this work.

Topics:

  • Why invest?  Business value of Skype for Business and cast study examples 
  • How to get started?  Easy ways to try it, first steps in deploying with FastTrack 
  • How to accelerate user adoption?  Assets that can help people in your orgs

Who: Jamie Stark (Skype Product Marketing) and BJ Haberkorn (Skype Director of Product Marketing)

When: April 8th at 9:00 am PST

Where: Skype Meeting Broadcast - http://aka.ms/SfBcast

Will this be recorded: Yes, it will take a couple of weeks and then it will posted on the Skype channel

image

Regards,
Bea

Configuring Web Scheduler in Skype for business 2015 Environment

0
0

What are different ways to schedule a Skype Meeting?

1. Skype for Business Client.

2. Outlook Client.

Well, there is another way we can create/Schedule a Skype Meetings, Skype for business Web Scheduler using any web browser.

Web Scheduler is not something that’s available by default in Skype for Business, however we can configure it to be available for Skype users.

Configuring Web Scheduler is pretty straight forward, this blog would guide you through the configuration procedure with reference Screenshots.

Configuring Web Scheduler Application on Skype for business Server.

  • Before configuring Web scheduler, we see below Simple URL configurations in Skype for business Infrastructure:

Get-CsSimpleUrlConfiguration | Select-Object -ExpandProperty SimpleUrl

  • Run below commands from Skype for business Management shell to create a new simple URL Entry for web scheduler:

$SimpleUrlEntry = New-CsSimpleUrlEntry -Url “https://Skypeweb.contoso.com”

$SimpleUrl = New-CsSimpleUrl -Component “WebScheduler” -Domain “*” -SimpleUrlEntry $SimpleUrlEntry -ActiveUrl “https://Skypeweb.contoso.com”

Set-CsSimpleUrlConfiguration -Identity Global -SimpleUrl @{Add=$SimpleUrl} –Verbose

 

  • Now we would see another simpleurl configured below:

Get-CsSimpleUrlConfiguration | Select-Object -ExpandProperty SimpleUrl

  • Run Step 2 from Deployment Wizard on all the Front End Servers in the Skype for business Pool, which adds the components for Web Scheduler Feature.

        
     

  • After performing above actions, we would see new Virtual Directory created under Internal & External Website on Skype for business Front End Servers below:

 

  • If we look further, we will have few URL Rewrite modules that gets added below:

 

 

  • As per the URL Rewrite module settings, Front end Server will redirect user to Internal/External Web services along with Scheduler Virtual Directory (Https://Skype.contoso.com/Scheduler) which provides the sign in page.

 

 

 

 

Pragathi Raj

Premier Field Engineer - Microsoft

Windows Server 2016 TP4 – Virtual Network Adapters in Hyper-V

0
0
Hello Folks, A few weeks back I started a series of quick overviews of specific new Windows Server 2016 TP4 functionality. Windows Server 2016 TP4 – PowerShell Direct Windows Server 2016 TP4 – Hyper-v Runtime Memory Resize Step-By-Step: Managing Your Nano Servers This week I wanted to look at the capabilities with virtual Network adapter in Hyper-V. You can now add or remove a network adapter while the virtual machine is running, without any downtime and assign proper names to those vNICs This provides...(read more)

Office 365 Groups - используем все сервисы Office 365 по полной.

0
0

Здравствуйте, уважаемые партнеры!

Уверен, что многие знают, используют и продают Office 365 своим заказчикам. Каждый может выбрать подходящий план и настроить Office 365 под потребности бизнеса.

Но кроме платных сервисов, в Office 365 доступны и постоянно разрабатываются новые удобные бесплатные инструменты для совместной работы, общения и взаимодействия с коллегами как внутри компании, так и с партнерами. Изменений в этой сфере столько, что не все успевают уследить за ними. А ведь среди них есть скрытые возможности быстрого повышения использования (Consumption) основных сервисов Office 365 вашими заказчиками. Я говорю о новом Planner и Office 365 Groups.

Поэтому приглашаю вас посетить вебинар, в рамках нашего регулярного путешествия Office 365 Initial Journey. Я расскажу о новом эффективномсредстве совместной работы Office 365 Groups.

  • Мы обсудим основные средства совместной работы:

    • Группы рассылок;

    • Общие почтовые ящики;

    • Общие папки;

  • Подробно расскажу о новом сервисе Office 365 Groups;

  • Во время демонстрации, вы узнаете:

    • Чем Office 365 Groupsлучше и эффективнее стандартных средств;

    • Где грань доступности – за этот функционал не требуется денег;

    • Как Office 365 Groupsинтегрируется с новым сервисом Planner, повышает использование (consumption) сервисов Exchangeи SharePoint.

Интересно? Тогда ждем вас на тренинге!
Немного административной информации:

    • ЧТО? Технический вебинар на тему "Office 365 Groups";
    • ГДЕ?Наш любимый Skype for Business;
    • КОГДА?7 апреля, четверг 11:00 (МСК, UTC +3);
    • КОМУ? Менеджеры по продажам, технические специалисты и их руководители. 

ЗАРЕГИСТРИРОВАТЬСЯ

Напоминаю короткие ссылки для регистрации на всю серию наших вебинаров http://aka.ms/CiCruи http://aka.ms/O365ij

С уважением,
Евгений Артемьев

Build 2016での発表: 現在と未来のクラウド開発を支える最新技術

0
0
執筆者: Scott Guthrie (Executive Vice President, Cloud and Enterprise Group) このポストは、3 月 31 日に投稿された Build 2016: Announcing tomorrow’s cloud innovations for today’s developers の翻訳です。 クラウドによる変革が、あらゆる企業や業界で進んでいます。クラウドのスピード、スケール、俊敏性は向上し続けており、それに比例するようにクラウド サービスで実現可能なことも増えています。たとえば、酪農家が牛に監視用センサーを付けて生乳の生産量を増やしたり、病院で衛生状態を自動監視して安全性を向上させたり、自動車から交通状況が通知されるようにして通勤ストレスを軽減させたりといったことが、今すべて現実となっています。これを可能にしているのは、爆発的に増加を続けるデータと、そのデータを分析してビジネスに役立つ情報を引き出し、デバイスに接続するために使われる新たな手法です。 しかし、ビジネスを進化させ...(read more)

未来のつながる自動車を目指してトヨタとマイクロソフトが協力

0
0

By Susanna Ray

当ブログは2016年4月4日に米国で発表されたブログの抄訳をベースにしています


トヨタとマイクロソフトは、みなさんが乗っている自動車が走る巨大なスマートフォンになる世界を作り出すため、協力することになりました。バーチャルアシスタントが、どの道を選べばよいか、渋滞で会議に遅れそうな時は誰に連絡すればよいか、のろのろ運転の時にあなたの血圧がどうなっているか、次の出口でどのレストランが一番好みに合うかを教えてくれる世界です。

本日、トヨタは、自動車を人々の日常生活と結びつける取り組みの一環として、データサイエンスのハブとして機能する新会社Toyota Connected (以下、TC)の設立を発表しました。自動車の運転をよりパーソナルに、より直感的に、より安全にするためにTCが作り出すあらゆるものに対応するため、マイクロソフトのAzureはコンピューティング プラットフォームとしてハイブリッドなソリューションを提供します。

TC の社長兼CEOであるザック ヒックス (Zack Hicks) 氏は次のように述べています。
「われわれはビッグデータについて長い間議論してきましたが、自動車に新たなサービスと機能を提供することで、今まで実現したかったことがテクノロジによってようやく実現可能になったという点で、今は歴史上特別なタイミングです。」

自動車メーカーにとってテクノロジは、エンジンや鉄鋼と同じくらい重要になっています。テキサス州プレイノに拠点を置くTCを通してマイクロソフトとの既存のパートナーシップを活かし、この分野での能力をさらに拡大していくことがトヨタの目標です。この新しいベンチャー企業では、ヒックス氏の下にデータセンター管理、データ解析、データに基づいたサービス開発の業務を集約します。また、同氏は北米トヨタのCIOの職務も継続します。

マイクロソフト コーポレートストラテジープランニング担当 エグゼクティブ バイスプレジデント カート デルベーン (Kurt DelBene) は次のように述べています。
「ドライバーがデジタルライフスタイルを拡張するモバイルデバイスとして自分の車をとらえる傾向が強まる中で、自動車産業は大きな変革の時にあります。これは、人々が自分の車のエンジン馬力と同様に、コンピューターとしての力も重視していることを意味します。このため、マイクロソフトは運転体験を全体的に向上できるセンサー、スクリーン、コネクティビティ、そして、膨大なデータのネットワークによって自動車をよりインテリジェントにするために、トヨタとの今回の強力なパートナーシップを初めとして自動車メーカーと緊密に協力しています。」

ヒックス氏は、TCが多様なテクノロジの評価と開発を行っていくと述べています。

たとえば、ハンドルがドライバーの心拍や呼吸をモニターし、シートが体重計として機能するようになるかもしれません。これにより、現在のウェアラブルデバイスと同様に継続した健康管理機能が提供されます。車載システムが他の車と通信して前方の渋滞状況を知り、ドライバーが出席予定の会議の担当者に到着が遅れる可能性があることをメールできるようになるかもしれません。エンジンの警告システムが、ドライバーとディーラーのスケジュールをチェックして最適な予約時間を提案し、画面のタッチ操作だけでサービスを予約できるようにしてくれるかもしれません。

TC は、人々がテクノロジに萎縮したり、スマートフォンや車内ディスプレイを前にして当惑したりすることがないようにしながら、直感的で没入型な体験を提供し、運転者の注意を削がずに安全性を強化するために、テクノロジを「人に優しく」することを目指しています。

ヒックス氏はは次のようにも述べています。「当社は、お客様の生活を快適にするためのサービスを提供するために、テクノロジをバックグラウンドに置き、お客様が本当に必要なものだけを提供することができます。必要なのは派手な画面ではなく、たとえば会議に遅れそうだということを知らせられることが重要なのです。」

マイクロソフトは、最近、コネクテッドカー関連の提携に関する発表をいくつか行いましたが、TCとはテキサス州の新施設で協業し、データ解析とモバイルプログラムの広範な領域で継続的にエンジニアリングサービスを提供していくと述べています。TCはまず、北米で製品とサービスを提供し、他のトヨタの市場へと地域を拡大していく予定です。

ヒックス氏は「将来を見据えると、トヨタ一社だけですべてを行えるわけではありません。他社も同じです。このトヨタとマイクロソフトの素晴らしい協力関係は、新たに周囲の状況を反映した没入型の革新的なドライブ エクスペリエンスの提供に欠かせないものです」と述べています。

Tip o' the Week 321 – Quick Access Toolbar customisation

0
0

Most of us will have used the Quick Access Toolbar in Windows Office apps – clip_image001even if only to click the floppy disk icon to save documents, which, like many others, makes no sense to modern life. The QAT (not to be confused with other, phonetically similar terms) lets you dock commonly-used commands to be constantly available on the top corner of your favourite Office apps.

clip_image002Click the downward arrow to the right of the QAT and you can quickly add extra commands, either chosen from a common list or by selecting pretty much any command from the gamut of menus offered in the Office application.

clip_image004A common QAT command is the Touch/Mouse mode option that changes the spacing between menu items and the like, but there are many other useful commands that can quickly be added to the toolbar, that make it easy to do repetitive stuff or just things that are normally buried deeply in other menus. Let’s try a couple of examples.

In Outlook, try opening a message that someone else sent you (this one would be a good start); go to the QAT and click clip_image006the down arrow to the far right side, choose More Commands… andthen select “Developer Tab” from the Choose commands option. Now, pick the Design this Form option from the list and Add to the clip_image008toolbar. Then press OK.

Thiswill now add a new icon to the QAT, which will let you “design” whichever form you have open. In Outlook, a “form” is used to display clip_image010Items such as email messages, contacts, calendar appointments etc. The QAT is content-sensitive to different forms, so if you add it to email, it won’t show up on appointments unless you add it there too.

In fact, adding to appointments is the best place to do it, since you can show the date and time that an appointment was created in your calendar; if you just find an appointment that you can’t remember the context of, you could quickly show the date/time you created it and that might help figure out how valid it is. If you have a meeting that someone invited you to, you’ll easily see the date/time it was sent, but if you’re the organiser, you won’t – unless you use something like Design This Form, then navigate to All Fields and choose Date/Time fields to show all the common date or time attributes of that form.

For more context, this topic was covered some time ago on the Electric Wand blog and a previous tip, #102.

clip_image012Another example of QAT goodness is in OneNote– if you’re routinely using OneNote for account planning or clip_image014status reporting, it’s quite handy to be able to colour cells or rows in tables to show their status, but the menu option to set the colour would need you to go into the table menu. To quickly add to the QAT for future easy access, click the down arrow / More Commands… / choose the Table Tools tab and look for Shading, then Add>> and OK.

Whilst you’re playing with any application’s QAT, it’s worth having a look through the other commands you might want to add – like while still in OneNote, try your favourite OneTastic macros, for example.

clip_image016On the topic of OneNote (and we’re still talking about the desktop one, not the Modern App version), there have been some updates shipped out to Office365 users that could be interesting – especially the ability to search handwriting, not just scribbled using a Surface stylus or similar, but grabbed from a photo by OfficeLens. There’s a promise of a future update that will be able to search handwriting in any picture that’s dropped into OneNote.

This opens the door to being able to scan in old paper notebooks for easier reference/shelf space clearance, and ditch the dead tree notebooks for digital. If you’re like controversial car design Chris Bangle, you may beg to differ.

clip_image018To check you’re on the latest version of OneNote via O365, go to the File menu, look under Office Account and the Office Updates section, and choose Update Now from under Update Options.

[Script Of Apr. 5] Determining which version and edition of SQL Server Database Engine is running

0
0
image
Apr.
5
image
image

Script Download:  
The script is available for download from https://gallery.technet.microsoft.com/scriptcenter/Determining-which-version-af0f16f6.

You can also use  Microsoft Script Browser for Windows PowerShell ISE to download the sample with one button click from within your scripting environment. 

In this chapter will talk about how to determine which version and edition of SQL Server Database Engine is running by SQL Script. 

You can find more All-In-One Script Framework script samples at http://aka.ms/onescriptingallery

Interview with a .NET Developer & Wiki Ninja: Umer Qureshi

0
0

Today's interview is with...

Umer Qureshi

https://social.technet.microsoft.com/profile/umer%20qureshi/

Umer Qureshi's avatar 

Umer is a Microsoft intern in in Lahore, Pakistan. He has written 9 articles.

Example articles:

   

1. Who are you, where are you, and what do you do? What are your specialty technologies?

I am Umer Qureshi living in Lahore, Pakistan. I am 22 years old and in my last year of bachelors degree. As I am a student so I am not working in any IT Company yet but I teach computers to O-Level (Cambridge) students. I am a .Net Developer and have some knowledge about MVC, entity framework, ADO.Net, web scraping, azure etc. I am new to blogging so that’s why I do not have a huge list of blogs. Recently I did a 6-month internship in Microsoft Innovation Centre Lahore, where I got motivated to write articles and blogs.

Photo 1. Visit to Intel Office (March'15) - CA, USA

 

2. What are your big projects right now?

I have a couple of big projects which I am trying to complete in parallel, first of all I want to complete my degree this spring and to secure a good Job so I am getting myself prepared for the interviews and polishing my skills, secondly I want to be a MCSD (Web Applications) so preparing for that too and the third one in the list is to do my master’s degree from abroad so I can get a different exposure and learn new things.

 
3. What is TechNet Wiki for? Who is it for?

TechNet wiki is a guide to IT people from where they can seek help, and can help others. It’s a kind of digital library giving you all the things you need. I think TechNet wiki is for everyone not specifically for IT people or people working only on Microsoft technologies. TechNet wiki is so vast that everyone can be benefited somehow.

Photo 2. Visit to Stanford University (March'15) - USA

  
4. What do you do with TechNet Wiki, and how does that fit into the rest of your job?

TechNet wiki is like a technical encyclopedia for me, whenever I need help while doing my projects or I am stuck somewhere in coding, TechNet Wiki is the first resource I seek Help from. It has helped me in doing many of my university projects, so I am very thankful to TechNet wiki and its authors. Now as I have gained at least enough knowledge to guide someone so instead of always getting help I decided to provide help by sharing my knowledge with others.

 
5. What is it about TechNet Wiki that interests you?

TechNet Wiki has a collection of great articles and authors which interests me. As I am a Microsoft lover and work on their technologies so TechNet Wiki is the most reliable source from where I like to seek help. TechNet wiki has provided a great platform to experts so they can help newbies like me. Everyone is learning by exchanging their knowledge with others.

Photo 3. Teaching students how to code, as a volunteer in Hour Of Code (H.O.C. Dec'15) - Lahore, Pakistan.

    
6. In what other sites and communities do you contribute your technical knowledge?

I have my personal blog where I share my knowledge and also on few other platforms like code-project, c#corner and code.msdn. I share my source code on GitHub so I can provide maximum guidance to my readers with helping code for a jumpstart.

 
7 .Do you have any tips for new Wiki authors?

I am a new wiki author but as far as I have learnt is that one should try to write in a descriptive and easy way so people from different regions, speaking different languages and having little knowledge may also be able to understand what you are trying to explain. Before publishing anything perform it by yourself thinking like you are yourself a newbie and try to explain all the hurdles one can face, secondly do proof read it. 

==============  

  

Thank you, Umer for all your contributions!

Everyone, please join me in thanking Umer for his articles!

   - Ninja Ed

TNWiki Article Spotlight - IoT Suite Under The Hood - Predictive Maintenance

0
0

Hello and welcome everybody to our TNWiki Article Spotlight on Tuesday.

IoT has been around the news for a while now. In Germany we even have our own term for it ("Industrie 4.0"). Especially predictive maintenance is a common use case. Predictive maintenance tries to get the time in the future where a part can fail, for example a part of a robot in an industry plant. With Azure Microsoft offers some components which are very useful in IoT solutions. We have Stream Analytics, we have an Event Hub and we have Azure ML ... and we also have the IoT Hub. Putting them together takes some time and patience. What if you want a complete solution which has most of it already put together? That is the point where the Azure IoT Suite appears on the stage. The Azure IoT Suite contains pre-packaged solutions for common scenarios. Currently these solutions are for remote monitoring, that means monitoring multiple devices in several remote locations, and ... predictive maintenance. This solutions has a lot under the covers, such as WebJobs and Azure ML and it comes with a nice web interface. But going through it and trying to modify the solution can be hard. Luckily Peter a.k.a XAML guy wrote an article which explains the predictive maintenance solution. He shows the different components and what role they play and how you can create the solution. He also explains a little bit how the solution can be modified.

If you want to get your feet a little bit wet and don't have the time to built a complete solution yourself Azure IoT Suite is a good starting point. To get started with the predictive maintenance part of it you should definitely check out this article.

- German Ninja Jan (TwitterBlogProfile)


インテリジェント クラウドの実現 – Build 2016 の発表内容のまとめ

0
0
執筆者: Nicole Herskowitz (Director of Product Marketing, Cloud Platform) このポストは、3 月 31 日に投稿された Developing for the intelligent cloud at //Build の翻訳です。 Microsoft Azure は、あらゆるプラットフォームであらゆる言語を使ってアプリケーションを構築、実行するための環境を提供している開発者のための優れたソリューションです。コア インフラストラクチャ サービス、プラットフォーム サービス、開発ツールといった開発者が求める多種多様なニーズに応えることを目指しています。こうした柔軟で豊富な選択肢を提供するほかにマイクロソフトが重要なミッションとして掲げているのが、開発者の生産性向上です。最新のテクノロジをすべての開発者が簡単に利用できるようにし、短期間でアプリケーションを開発できるようにすることを目標としています。この取り組みの一環として行っている「サービスとしてのプラットフォーム (PaaS)」への投資は、業界内でも高い評価を得ています...(read more)

MS クラウド ニュースまとめ - Build 2016での主な発表内容一覧 (2016/03/31)

0
0
このポストは、2016 年 3 月 31 日に投稿された Cloud Platform Release Announcements for March 31, 2016 の翻訳です。 今週の //Build 2016 (英語) では、マイクロソフトのクラウド プラットフォームが、Web/モバイル、IoT、マイクロサービス、およびデータ分析の全体にわたって、最近の開発者シナリオに最適なソリューションである理由を示す、重要な発表を多数取り上げました。それらの発表は次のとおりです。 Azure Batch での Linux サポートの一般提供開始 Azure Data Catalog の一般提供開始 Azure Functions のパブリック プレビュー提供開始 //Build での Azure IoT Gateway SDK の事前発表 Azure IoT Hub の新機能事前発表 (デバイス管理) Azure IoT スターター キットの販売開始 Azure Machine Learning の PP - Jupyter Notebook...(read more)

Самоучитель «Microsoft Project 2016. Методология и практика»

0
0

31 марта вышла седьмая книга Алексея Просницкого «Microsoft Project 2016. Методология и практика», посвященная не только новой версии Microsoft Project Professional 2016, но и детальному описанию методологии управления проектами и практическому ее использованию.

...(read more)

(Cloud) Tip of the Day: Microsoft Azure Storage Explorer preview

0
0

Today’s Tip…

Microsoft Azure Storage Explorer (Preview) is a standalone app from Microsoft that allows you to easily work with Azure Storage data. The Preview release currently supports Azure Blobs only. Tables, queues, and files are coming soon.

Features

  • Mac OS X, Linux, and Windows versions (New in v0.7.20160107)
  • Sign in to view your Storage Accounts – use your Org Account, Microsoft Account, 2FA, etc.
  • Add Storage Accounts by account name and key, as well as custom endpoints (New in v0.7.20160107)
  • Add Storage Accounts for Azure China (New in v0.7.20160107)
  • Add blob containers with Shared Access Signatures (SAS) key (New in v0.7.20160107)
  • Local development storage (use storage emulator, Windows-only)
  • ARM and Classic resource support
  • Create and delete blobs, queues, or tables
  • Search for specific blobs, queues, or tables
  • Explore the contents of blob containers
  • View and navigate through directories
  • Upload, download, and delete blobs and folders
  • Open and view the contents text and picture blobs (New in v0.7.20160107)
  • View and edit blob properties and metadata
  • Generate SAS keys
  • Manage and create Stored Access Policies (SAP)
  • Search for blobs by prefix
  • Drag ‘n drop files to upload or download

Direct Download:

« stack storage » dans un environnement serveur

0
0

Je me propose de vous faire découvrir une « stack storage » typique que l’on retrouve coté serveur. Il y a des différences notables par rapport aux « stacks storage » coté poste client en raison de la complexité de certaines technologies inhérentes au monde serveur. A savoir : le multi-pathing, le fait que l’on va travailler sur des LUNs (du FC, du iSCSI, du SCSI locale) etc… L’idée étant de comprendre le cheminement que va prendre une IO pour atteindre un disque. i.e. quels devices\drivers vont prendre part à la résolution d’une IO.

 Attention, ça pique un peu. Bonne lecture !

 

Le dump que nous allons analyser a été généré sur un Windows 2016 (TP3) avec une topologie représentative (mais non exhaustive) de ce que l’on peut rencontrer.

1: kd> vertarget

Windows 10 Kernel Version 10514 MP (4 procs) Free x64

Product: Server, suite: TerminalServer DataCenter SingleUserTS

Built by: 10514.0.amd64fre.th2_release.150808-1529

Machine Name: "NUC1"

Kernel base = 0xfffff801`31873000 PsLoadedModuleList = 0xfffff801`31b9fb10

Debug session time: Wed Sep 30 00:04:08.423 2015 (UTC + 1:00)

System Uptime: 0 days 0:11:04.218

Pour connaitre le nombre de volumes que Windows « voit », il faut simplement rechercher les DEVICE_OBJECT gérés par le driver volmgr.sys. Dans notre cas, nous avons 4 devices:

 

1: kd> !drvobj \driver\volmgr

Driver object (ffffe000abe2cc00) is for:

\Driver\volmgr

Driver Extension List: (id , addr)

    Device Object list:

ffffe000adb4bac0 ffffe000ac832c90  ffffe000ac835980  ffffe000ac3d5580

 

 

Il faut savoir que pour le driver volmgr.sys (comme pour certains autres), il y a toujours un device servant à « gérer » les autres devices. i.e. il y a un device qui ne représente pas un volume réel. Concernant volmgr.sys, il s’appelle toujours VolMgrControlet, est le premier device créé (donc le dernier dans la liste ci-dessus):

1: kd> !devobj ffffe000ac3d5580

Device object (ffffe000ac3d5580) is for:

VolMgrControl \Driver\volmgr DriverObject ffffe000abe2cc00

Current Irp 00000000 RefCount 0 Type 00000012 Flags 00000840

Dacl ffffc101230c67f0 DevExt ffffe000ac3d56d0 DevObjExt ffffe000ac3d5860

ExtensionFlags (0x00000800)  DOE_DEFAULT_SD_PRESENT

Characteristics (0x00000100)  FILE_DEVICE_SECURE_OPEN

AttachedTo (Lower) ffffe000abfa2e40 \Driver\PnpManager

Device queue is not busy.

 

 

Nous savons donc que Windows, au moment de la génération du dump, « voyait » 3 volumes => HarddiskVolume 1 à 3. Les voici :

 

1: kd> !devobj ffffe000adb4bac0

Device object (ffffe000adb4bac0) is for:

HarddiskVolume3 \Driver\volmgr DriverObject ffffe000abe2cc00

Current Irp 00000000 RefCount 22 Type 00000007 Flags 00003050

Vpb ffffe000adb3efa0 Dacl ffffc101230c67f0 DevExt ffffe000adb4bc10 DevObjExt ffffe000adb4bdc0 Dope ffffe000adb39d10 DevNode ffffe000ad6c7360

ExtensionFlags (0x00000800)  DOE_DEFAULT_SD_PRESENT

Characteristics (0x00020000)  FILE_DEVICE_ALLOW_APPCONTAINER_TRAVERSAL

AttachedDevice (Upper) ffffe000adaf7040 \Driver\volsnap

Device queue is not busy.

1: kd> !devobj ffffe000ac832c90

Device object (ffffe000ac832c90) is for:

HarddiskVolume2 \Driver\volmgr DriverObject ffffe000abe2cc00

Current Irp 00000000 RefCount 1867 Type 00000007 Flags 00001150

Vpb ffffe000ac83a5c0 Dacl ffffc101230c67f0 DevExt ffffe000ac832de0 DevObjExt ffffe000ac832f90 Dope ffffe000ac83a550 DevNode ffffe000ac832960

ExtensionFlags (0x00000800)  DOE_DEFAULT_SD_PRESENT

Characteristics (0x00020000)  FILE_DEVICE_ALLOW_APPCONTAINER_TRAVERSAL

AttachedDevice (Upper) ffffe000ac831040 \Driver\volsnap

Device queue is not busy.

1: kd> !devobj ffffe000ac835980

Device object (ffffe000ac835980) is for:

HarddiskVolume1 \Driver\volmgr DriverObject ffffe000abe2cc00

Current Irp 00000000 RefCount 20 Type 00000007 Flags 00203050

Vpb ffffe000ac8358c0 Dacl ffffc101230c67f0 DevExt ffffe000ac835ad0 DevObjExt ffffe000ac835c80 Dope ffffe000abdf4cd0 DevNode ffffe000ac8355e0

ExtensionFlags (0x00000800)  DOE_DEFAULT_SD_PRESENT

Characteristics (0x00020000)  FILE_DEVICE_ALLOW_APPCONTAINER_TRAVERSAL

AttachedDevice (Upper) ffffe000ac833040 \Driver\volsnap

Device queue is not busy.

  

 

Sur ces 3 volumes, il y en 2 qui correspondent : au volume de 300MB pour la base BCD et au volume Système de Windows (typiquement, ce que nous retrouverons sur un poste client). Ce sont respectivement les 2 premiers devices créés durant la phase de boot. Nous pouvons d’ailleurs retrouver notre volume système facilement avec cette commande :

 

1: kd> !driveinfo c:

Drive c:, DriveObject ffffc000230ea8d0

    Directory Object: ffffc00022e1e630  Name: C:

       Target String is '\Device\HarddiskVolume2'

        Drive Letter Index is 3 (C:)

    Volume DevObj: ffffe000ac832c90

    Vpb: ffffe000ac83a5c0  DeviceObject: ffffe000abe18030

    FileSystem: \FileSystem\Ntfs

    Volume has 0x1703f4e (free) / 0x1bd32ff (total) clusters of size 0x1000

    94271.3 of 113971 MB free

Nous pouvons également retrouver le nom des volumes (s’il y en a un) avec la commande !vpb (Volume Parameter Block ).

Pour le HarddiskVolume1 (BCD), nous avons « System Reserved »:

 

1: kd> !vpb ffffe000ac8358c0

Vpb at 0xffffe000ac8358c0

Flags: 0x1 mounted

DeviceObject: 0xffffe000acfc2030

RealDevice:   0xffffe000ac835980

RefCount: 20

Volume Label:                System Reserved

 

 

Pour le HarddiskVolume2 (C:), nous n’avons pas de nom (car pas de label):

 

1: kd> !vpb ffffe000ac83a5c0 

Vpb at 0xffffe000ac83a5c0

Flags: 0x1 mounted

DeviceObject: 0xffffe000abe18030

RealDevice:   0xffffe000ac832c90

RefCount: 1867

Volume Label:

 

 

Pour le HarddiskVolume3 (une LUN), nous avons « LU-08 »:

 

1: kd> !vpb ffffe000adb3efa0

Vpb at 0xffffe000adb3efa0

Flags: 0x1 mounted

DeviceObject: 0xffffe000adb30030

RealDevice:   0xffffe000adb4bac0

RefCount: 22

Volume Label:      LU-08

  

 

Ce que nous avons découvert correspond pour le moment à ça :

L’idée de cet article consistant à montrer une stack storage « serveur », nous allons maintenant rentrer dans les détails de notre LUN (LU-08) qui se trouve être notre volume HarddiskVolume3. Une stack storage est, en réalité, composée de plusieurs sous stacks différentes. Dans cet exemple, et pour illustrer un cas complexe réel, nous rencontrerons une stack File System, une stack Volume, une stack disk (MPIO dans notre cas) et enfin les stacks Storport (pour la gestion de la partie SCSI). Pourquoi ? parce qu’une IO à destination de notre LUN va traverser un file system (NTFS\FAT et tous les File System minifilter drivers), puis un volume, puis va traverser un disque multi-path (MPIO) pour ensuite atteindre une LUN sous la forme d’une commande SCSI à destination du stockage.

 

Commençons par la stack file system. Le point d’entrée de la stack File System se trouve être le DeviceObjectde notre commande !vpb (voir plus haut) :

 

1: kd> !devstack 0xffffe000adb30030

  !DevObj           !DrvObj            !DevExt           ObjectName

  ffffe000ad961780  \FileSystem\FltMgr ffffe000ad9618d0 

> ffffe000adb30030  \FileSystem\Ntfs   ffffe000adb30180 

Nous savons donc que la LUN a été formatée au format ntfs car il y a un device ntfssur la stack. Il y a également moyen de récupérer tous les filter drivers file system à partir du device fltmgr(Filter Manager) mais ce sera l’objet d’un autre article. Une stack va se lire de haut en bas. i.e. pour notre stack file system, une IO va passer d’abord par fltmgr.sys (et tous les minifilter drivers file system) puis par ntfs.sys. Nous en sommes ici pour le moment :

 


 

Poursuivons avec la stack volume :

 

1: kd> !devstack 0xffffe000adb4bac0

  !DevObj           !DrvObj            !DevExt           ObjectName

  ffffe000adaf7040  \Driver\volsnap    ffffe000adaf7190 

> ffffe000adb4bac0  \Driver\volmgr     ffffe000adb4bc10  HarddiskVolume3

!DevNode ffffe000ad6c7360 :

  DeviceInst is "STORAGE\Volume\{82402ec9-6156-11e5-89cc-00fec8f70d10}#0000000000100000"

  ServiceName is "volsnap"

Une IO va donc d’abord passer par volsnap.sys. Volsnap gère les snapshots VSS. C’est au niveau de volsnap.sys que va se prendre la décision d’aller chercher des données plutôt dans la diffarea (si tel devait être le cas, en cas de snapshot), ou plutôt sur le volume réel. Je ferai un article sur le sujet plus tard. Si une IO doit continuer son chemin vers notre LUN, alors elle va passer par le driver volmgr.sys.

 

 

 

 

Nous allons maintenant traverser la stack disque. Comme le multi-pathing a été activé, notre disque sera un disque MPIO. Pour faire le lien entre le volume et le disque, il va falloir aller chercher l’information dans la structure DEVICE_OBJECT_EXTENSION de notre volume. Chaque DEVICE peut maintenir une structure (DEVICE_OBJECT_EXTENSION) pour stocker des informations qui lui sont propres. Les structures en question étant non-publiques, nous allons devoir retrouver l’information en tâtonnant. Il faut dans un premier  temps rechercher les adresses qui correspondent à la structure de type DEVICE_OBJECT_EXTENSION de notre device volume. Pour se faire, il suffit d’utiliser la commande !devobj sur notre device volume puis de dumper les adresses comprises entre le champ DevObjExt (en rose) et DevExt (en bleu). Nous avons donc :

 

1: kd> !devobj ffffe000adb4bac0

Device object (ffffe000adb4bac0) is for:

HarddiskVolume3 \Driver\volmgr DriverObject ffffe000abe2cc00

Current Irp 00000000 RefCount 22 Type 00000007 Flags 00003050

Vpb ffffe000adb3efa0 Dacl ffffc101230c67f0 DevExt ffffe000adb4bc10 DevObjExt ffffe000adb4bdc0 Dope ffffe000adb39d10 DevNode ffffe000ad6c7360

ExtensionFlags (0x00000800)  DOE_DEFAULT_SD_PRESENT

Characteristics (0x00020000)  FILE_DEVICE_ALLOW_APPCONTAINER_TRAVERSAL

AttachedDevice (Upper) ffffe000adaf7040 \Driver\volsnap

Device queue is not busy.

 

1: kd> dq ffffe000adb4bc10ffffe000adb4bdc0

ffffe000`adb4bc10  ffffe000`adb4bac0 ffffe000`ac3d56d0

ffffe000`adb4bc20  00000000`00000001 00000000`00000000

ffffe000`adb4bc30  ffffe000`ac3d57a0 ffffe000`ac832e00

ffffe000`adb4bc40  00000001`0000264f 00000000`00000000

ffffe000`adb4bc50  ffffe000`ad9759d0 00000001`00000002

ffffe000`adb4bc60  ffffe000`adb4bc60 ffffe000`adb4bc60

ffffe000`adb4bc70  ffffe000`ac3fe348 ffffe000`abfa8d90

ffffe000`adb4bc80  00000000`00000000 00000000`00000100

ffffe000`adb4bc90  00000001`00060000 ffffe000`adb4bc98

ffffe000`adb4bca0  ffffe000`adb4bc98 ffffe000`adb4bca8

ffffe000`adb4bcb0  ffffe000`adb4bca8 00000000`00000000

ffffe000`adb4bcc0  00000100`00010101 00000000`00000003

ffffe000`adb4bcd0  00000000`0070006e ffffc000`23941ef0

ffffe000`adb4bce0  00000000`00e400e2 ffffc000`23d4a010

ffffe000`adb4bcf0  00000000`00e400e2 ffffc000`23d48c00

ffffe000`adb4bd00  00000000`00000000 ffffe000`adafed00

ffffe000`adb4bd10  00000000`00000001 fffff801`5e9b7098

ffffe000`adb4bd20  fffff801`5e9bd5b0 fffff801`5e9bb180

ffffe000`adb4bd30  00000000`00000000 00000000`00000000

ffffe000`adb4bd40  00000000`00000000 fffff801`5e9bd300

ffffe000`adb4bd50  fffff801`31bda0a0 00000000`00000001

ffffe000`adb4bd60  00000000`00000000 00000000`00000000

ffffe000`adb4bd70  ffffe000`adb54b60 ffffe000`adb70060

ffffe000`adb4bd80  ffffe000`adb35b10 00000001`00000001

ffffe000`adb4bd90  00000000`00100000 0000000f`ffd00000

ffffe000`adb4bda0  00000000`715eb38b 00000000`00100000

ffffe000`adb4bdb0  00000000`00000000 00000000`00000000

ffffe000`adb4bdc0  00000000`0000000d

 

Nous avons à l’offset 0x168ce que nous recherchons (faites-moi confiance). Si d’aventure dans une version ultérieure de Windows cette structure devait changer, vous pouvez toujours essayer de retrouver notre device en tâtonnant avec une commande !pool pour retrouver un pool tag de type Devi.

Notre stack disque ressemble donc à ça :

 

1: kd> !devstack ffffe000`adb70060

  !DevObj           !DrvObj            !DevExt           ObjectName

  ffffe000adb35b10  \Driver\partmgr    ffffe000adb35c60

  ffffe000adb35060  \Driver\disk       ffffe000adb351b0  DR1

> ffffe000adb70060  \Driver\mpio       ffffe000adb701b0  MPIODisk0

!DevNode ffffe000adb3c850 :

  DeviceInst is "MPIO\Disk&Ven_QNAP&Prod_iSCSI_Storage&Rev_4.0_\1&7f6ac24&0&3630303134303541323742433033304446343633443432304344393737384436"

  ServiceName is "disk"

 

 

Ce qui nous donne le schéma suivant:

 


 

Pour continuer, il faut maintenant rechercher le nombre de paths, et les découvrir. Comme pour le device volume, la structure n’est pas publique mais peut être retrouvée en tâtonnant selon la même technique s’agissant de MPIO. Nous avons donc :

 

1: kd> !devobj ffffe000adb70060

Device object (ffffe000adb70060) is for:

MPIODisk0 \Driver\mpio DriverObject ffffe000ac3dbd50

Current Irp 00000000 RefCount 0 Type 00000007 Flags 00001050

Dacl ffffc10123202f40 DevExt ffffe000adb701b0 DevObjExt ffffe000adb709b0 DevNode ffffe000adb3c850

ExtensionFlags (0x00000800)  DOE_DEFAULT_SD_PRESENT

Characteristics (0x00000100)  FILE_DEVICE_SECURE_OPEN

AttachedDevice (Upper) ffffe000adb35060 \Driver\disk

Device queue is not busy.

 

1: kd> dq ffffe000adb701b0 ffffe000adb709b0

ffffe000`adb701b0  00000000`00000002 0000264f`00000000

ffffe000`adb701c0  00000000`00060001 ffffe000`adb701c8

ffffe000`adb701d0  ffffe000`adb701c8 ffffe000`adb70060

ffffe000`adb701e0  ffffe000`ac42d050 ffffe000`adb70060

ffffe000`adb701f0  ffffe000`ac3dbd50 ffffe000`ac42d050

ffffe000`adb70200  00000000`00010101 00000100`00000100

ffffe000`adb70210  00000000`00010000 0000264e`00000000

ffffe000`adb70220  00000000`00000000 00000001`00000001

ffffe000`adb70230  00000000`00000001 00000002`00000002

ffffe000`adb70240  00000002`00000003 00000000`77010001

ffffe000`adb70250  00000000`00000000 ffffe000`adb6fd80

ffffe000`adb70260  ffffe000`adb6fee0 00000000`00000000

ffffe000`adb70270  00000000`00000000 ffffe000`adb6fcd0

ffffe000`adb70280  ffffe000`adb42630 00000000`00000000

ffffe000`adb70290  00000000`00000000 00000000`00000000

ffffe000`adb70910  ffffffff`ffffffff 00000000`00000000

ffffe000`adb70920  00000000`00000000 00000000`00000000

ffffe000`adb70930  00000000`00000000 00000000`00000000

ffffe000`adb70940  00000000`00000000 00000000`00000001

ffffe000`adb70950  00000000`00000000 00000000`00000000

ffffe000`adb70960  00000000`00060001 ffffe000`adb70968

ffffe000`adb70970  ffffe000`adb70968 00000000`00000000

ffffe000`adb70980  00000000`00000000 00000000`00000000

ffffe000`adb70990  00000000`00000000 00000000`00000000

ffffe000`adb709a0  00000000`00000000 00000000`00000000

 

 

A l’offset 0x78, nous avons le nombre de paths (2 pour cette configuration). A l’offset 0xb8 et 0x90 nous avons les pointeurs vers la structure (non publique) qui décrit nos 2 paths :

 

1: kd> dq ffffe000`adb6fcd0

ffffe000`adb6fcd0  ffffe000`ac927050 00000000`77010000

ffffe000`adb6fce0  00000000`00000000 ffffe000`adb70060

ffffe000`adb6fcf0  ffffe000`adb6fa50 ffffe000`adb22390

ffffe000`adb6fd00  00000000`00000000 00000000`77010000

ffffe000`adb6fd10  ffffe000`adb6f638 ffffe000`ada28060

ffffe000`adb6fd20  ffffe000`adb0b040 fffff801`5f091200

ffffe000`adb6fd30  ffffe000`adb0b750 00040000`00000009

ffffe000`adb6fd40  00000001`ffffffff ffffe000`ad772b20

 

1: kd> dq ffffe000`adb42630

ffffe000`adb42630  ffffe000`ac927050 00000000`77010001

ffffe000`adb42640  00000000`00000000 ffffe000`adb70060

ffffe000`adb42650  ffffe000`adb22490 ffffe000`adb493a0

ffffe000`adb42660  00000000`00000001 00000000`77010001

ffffe000`adb42670  ffffe000`adb6f638 ffffe000`adb6d060

ffffe000`adb42680  ffffe000`adb409b0 fffff801`5f091200

ffffe000`adb42690  ffffe000`adb6f010 00040000`00000009

ffffe000`adb426a0  00000001`ffffffff ffffe000`ad751070

 

 

Nous retrouvons en rouge ci-dessus les 2 paths ID, ainsi que les devices mini-port storport qui correspondent au 2 LUNs qui ont été présentées à cette machine. Ce qui nous donne :

1: kd> !devstack ffffe000`ada28060

  !DevObj           !DrvObj            !DevExt           ObjectName

  ffffe000adb49b10  \Driver\partmgr    ffffe000adb49c60 

  ffffe000adb0b040  \Driver\disk       ffffe000adb0b190 

> ffffe000ada28060  \Driver\iScsiPrt   ffffe000ada281b0  0000003d

!DevNode ffffe000adb427b0 :

  DeviceInst is "SCSI\Disk&Ven_QNAP&Prod_iSCSI_Storage\1&1c121344&0&000000"

  ServiceName is "disk"

 

1: kd> !devstack ffffe000`adb6d060

  !DevObj           !DrvObj            !DevExt           ObjectName

  ffffe000adb3fb10  \Driver\partmgr    ffffe000adb3fc60 

  ffffe000adb409b0  \Driver\disk       ffffe000adb40b00 

> ffffe000adb6d060  \Driver\iScsiPrt   ffffe000adb6d1b0  0000003e

!DevNode ffffe000adb49010 :

  DeviceInst is "SCSI\Disk&Ven_QNAP&Prod_iSCSI_Storage\1&1c121344&0&000100"

  ServiceName is "disk"

Il s’agit ici de disques iSCSI vers une baie de disque QNAP. Le driver mini-port storport dans ce cas est celui de Microsoft (msiscsi.sys). S’il avait été question de LUNs  fiber channel, nous aurions eu des devices QLogic ou Emulex (i.e. du code non Microsoft).

 Ce qui nous donne le schéma suivant:

 

 

 

 

Pour résumer : 2 LUNs ont été présentées à Windows pour attaquer le même disque coté baie mais via 2 chemins différents (redondance). Ces 2 LUNs ont été « multipathées » coté Windows ce qui fait que le disque manager ne voit qu’un disque (le disque MPIO). Les IOs (si elles ne peuvent être résolues par le cache), vont traverser l’ensemble des devices\drivers depuis fltmgr.sys jusqu’au miniport storport pour transfert via la carte HBA ou adaptateur réseau (si iSCSI).

Si le multi-pathing est paramétré pour faire du round-robin (d’autres modes existent), alors les IOs seront distribuées successivement vers une LUN puis vers l’autres etc…

Merci de m’avoir lu.

Hervé Chapalain

Senior Escalation Engineer

Microsoft

Viewing all 17778 articles
Browse latest View live




Latest Images