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

Using SCOM AD integration – but with a CMDB instead of LDAP wizards

$
0
0

 

imageimage

 

AD integration has been around since SCOM 2007 first shipped.  The concept is simple – the ability to deploy agents as part of a build process to the OS, but with the SCOM agent left un-configured.  Then the SCOM agent checks with Active Directory in its local domain, and received management group and management server assignment from there.

 

Historically, there were two challenges using AD integration: 

First, we only provided a very simple UI, that allowed you to use LDAP queries to try and assign agents based on some criteria in AD.  While this worked for some people, in large enterprise environments, this rarely provided a good level of granularity or a good method of load balancing the agent numbers, without constant adjustments. 

Second, it wasn’t always reliable.  The UI wizards wrote these rules to the Default Management Pack, and when you made a change, it would delete these rules, and write new rules, and sometimes this process broke, leaving your AD publishing in a broken state.  The risk was high, because a mistake or a hiccup might cause all your agents to drop out of monitoring (worst case).

Because of these challenges, a lot of customers stopped using AD integration over the years.

What if I told you – you don’t have to use the built in AD LDAP wizards to configure AD integration?  Instead, you could use a CMDB datasource, to give you the potential for more granular control, and easier load balancing control of management servers.

I didn’t come up with this idea.  One of my customers actually did, a long time ago.  They have been using it for years to manage their agents with great success.  I have simply re-written the design using PowerShell and simplified it to demonstrate here.

 

At the end of the day – AD integration is controlled simply by one or more rules in a management pack.  The rule is made up of two components:

  • Datasource
  • Write Action

The Datasource is the custom script, that will query the CMDB, and return output necessary for the write action.  For our datasource, we will use a simple scheduler, and the Microsoft.Windows.PowerShellPropertyBagProbe DS.  The output will be propertybags for each computer we return from the CMDB.

The Write Action is very specific - Microsoft.SystemCenter.ADWriter – this is the “worker bee” in the equation – it takes inputs for DNSHostName and DistinguishedName of each server, and writes that to the specialized container and security groups in AD.  So if we are going to use a custom datasource with this write action – we simply need to pass these important items as propertybags to the Write Action.

 

Here is an example datasource script:

#================================================================================= # # Get Server list from CMDB for SCOM ADIntegration # Output FQDN and DistinguishedName into PropertyBags # # Kevin Holman # v 1.2 # #================================================================================= param($SQLQuery,$RuleId) # Manual Testing section - put stuff here for manually testing script - typically parameters: #================================================================================= # $RuleId = "Demo.CMDB.ADIntegration.MGNAME.MSNAME.Rule" # $SQLQuery = "WITH OrderedServers AS #( # SELECT SERVERNAME, ROW_NUMBER() OVER(ORDER BY SERVERNAME) AS RowNumber # FROM serverlist # WHERE MG = 'PROD' #) #SELECT SERVERNAME #FROM OrderedServers #WHERE RowNumber BETWEEN 1 and 2" #================================================================================= # Constants section - modify stuff here: #================================================================================= # Assign script name variable for use in event logging $ScriptName = "Demo.CMDB.ADIntegration.PsCMDBQuery.DS.ps1" $EventID = 9500 $SQLServer = "SQLSERVERNAMEINSTANCENAME" $SQLDBName = "CMDB" #================================================================================= # Starting Script section - All scripts get this #================================================================================= # Gather the start time of the script $StartTime = Get-Date #Set variable to be used in logging events $whoami = whoami # Load MOMScript API $momapi = New-Object -comObject MOM.ScriptAPI #Log script event that we are starting task $momapi.LogScriptEvent($ScriptName,$EventID,0,"`n Script is starting. `n Running as ($whoami).") #================================================================================= # PropertyBag Script section - Monitoring scripts get this #================================================================================= # Load SCOM PropertyBag function $bag = $momapi.CreatePropertyBag() #================================================================================= # Begin MAIN script section #================================================================================= # Log an event for the parameters $momapi.LogScriptEvent($ScriptName,$EventID,0,"`n Rule: ($RuleId) `n SQL Server: ($SQLServer) `n SQLDBName: ($SQLDBName) `n SQLQuery: ($SQLQuery)") #Clear any previous errors $Error.Clear() # Query the CMDB database to get the servers and properties $SqlConnection = New-Object System.Data.SqlClient.SqlConnection $SqlConnection.ConnectionString = “Server=$SQLServer;Database=$SQLDBName;Integrated Security=True$SqlCmd = New-Object System.Data.SqlClient.SqlCommand $SqlCmd.CommandText = $SQLQuery $SqlCmd.Connection = $SqlConnection $SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter $SqlAdapter.SelectCommand = $SqlCmd $ds = New-Object System.Data.DataSet $SqlAdapter.Fill($ds) $SqlConnection.Close() #Check for errors connecting to SQL IF($Error) { $momapi.LogScriptEvent($ScriptName,$EventID,1,"`n FATAL ERROR connecting to SQL server. `n Rule: ($RuleId). `n SQLServer: ($SQLServer). `n SQLDBName: ($SQLDBName). `n SQLQuery: ($SqlQuery). `n Error is: ($error).") EXIT } #Loop through each row of the SQL query output $i=0; $j=0; FOREACH ($row in $ds.Tables[0].Rows) { #Increment our counter to get number of computers returned from query $i = $i+1 #Get the FQDN from the SQL data $FQDN = $row[0].ToString().Trim() #Get the domain from the FQDN $Domain = $FQDN.Substring($FQDN.IndexOf(".") + 1) #Get the HostName and DomainComputer Account Name for DN use below $FQDNSplit = $FQDN.Split(".") #Get the HostName $HostName = $FQDNSplit[0] #Get the DomainComputerAccount $DomainComputerAccountName = $FQDNSplit[1] + "" + $HostName + "$" #Get the Distinguished Name $ADS_NAME_INITTYPE_DOMAIN = 1 $ADS_NAME_TYPE_NT4 = 3 $ADS_NAME_TYPE_1779 = 1 $NameTranslate = New-Object -ComObject "NameTranslate" #Clear any previous errors $Error.Clear() #Connect to Active directory $NameTranslate.GetType().InvokeMember("Init", "InvokeMethod", $NULL, $NameTranslate, ($ADS_NAME_INITTYPE_DOMAIN, $Domain)) | Out-Null #We need to check for an error at this point because this is where we connect to a domain and this might fail if we dont have rights or are firewalled IF($Error) { $momapi.LogScriptEvent($ScriptName,$EventID,1, "`n FATAL ERROR connecting to Active Directory. `n Terminating script. `n Rule: ($RuleId) `n Domain: ($Domain) `n Error is: ($error).") EXIT } #Connect to AD and look up computer object from CMDB $NameTranslate.GetType().InvokeMember("Set", "InvokeMethod", $NULL, $NameTranslate, ($ADS_NAME_TYPE_NT4, $DomainComputerAccountName)) | Out-Null $DN = $NameTranslate.GetType().InvokeMember("Get", "InvokeMethod", $NULL, $NameTranslate, $ADS_NAME_TYPE_1779) #We need to check for an error at this point because this is where we find the computer in AD and it might not exist IF($Error) { $momapi.LogScriptEvent($ScriptName,$EventID,2, "`n NON FATAL WARNING connecting to Active Directory to find computer from CMDB. `n This usually mean that a computer exists in the CMDB bues does not exist in AD or the CMDB record is bad. `n Rule: ($RuleId) `n Domain: ($Domain). `n ComputerName = ($DomainComputerAccountName). `n Error is: ($error).") } ELSE { # Assume no errors so we will continue #Increment our counter to get number of computers returned from AD $j = $j+1 # Debugging: #Write-Host "Servername: $FQDN" #Write-Host "HostName: $HostName" #Write-Host "Domain Name: $Domain" #Write-Host "Domain Computer Name: $DomainComputerAccountName" #Write-Host "DN: $DN" #$momapi.LogScriptEvent($ScriptName,$EventID,0, "`n Debug: `n Rule: ($RuleId) `n FQDN: ($FQDN) `n HostName: ($HostName). `n DomainName: ($Domain). `, Domain Computer Account Name: ($DomainComputerAccountName). `n DN: ($DN)") #Create a propertybag for each computer $bag = $momapi.CreatePropertyBag() #Put the hostname and DN in the bag. #Includes a value for the folder name so that we can tell which folder the data is from. $bag.AddValue("distinguishedName",$DN) $bag.AddValue("dNSHostName",$FQDN) #Return each property bag as we create and populate it. $bag } } $QueryComputerCount = $i $ADComputerCount = $j $momapi.LogScriptEvent($ScriptName,$EventID,0,"`n Rule: ($RuleId). `n CMDB query looped through ($QueryComputerCount) computers. `n AD query found ($ADComputerCount) matching computers.") #================================================================================= # End MAIN script section # End of script section #================================================================================= #Log an event for script ending and total execution time. $EndTime = Get-Date $ScriptTime = ($EndTime - $StartTime).TotalSeconds $momapi.LogScriptEvent($ScriptName,$EventID,0,"`n Script Completed. `n Script Runtime: ($ScriptTime) seconds.") #================================================================================= # End of script

 

Each rule will pass in a custom SQL query, and a RuleID (the RuleID is used only for logging to know which rule is running the shared DS.)

The script will run the SQL query, loop through each servername we get in a result, and query AD, to get the DNSHostname and DN of the object (if it exists).  Those items will be placed into propertybags to be consumed by the Write Action.

The rule has two parameters configured:

<Parameters> <Parameter> <Name>SQLQuery</Name> <!-- Use ANY query that returns only fully qualified domain names --> <Value> WITH OrderedServers AS ( SELECT SERVERNAME, ROW_NUMBER() OVER(ORDER BY SERVERNAME) AS RowNumber FROM serverlist WHERE MG = 'PROD' ) SELECT SERVERNAME FROM OrderedServers WHERE RowNumber BETWEEN 1 and 3 </Value> </Parameter> <Parameter> <Name>RuleId</Name> <Value>Demo.CMDB.ADIntegration.DOMAIN.MS1.Rule</Value> <!-- We use this to help identify the rule calling the script for troubleshooting --> </Parameter> </Parameters>

In the above SQL query – I am using numbers of results between 1 and 3 for the first management server.  If you had thousands of agents, you could use a method like this to assign 2000 agents to each management server, just using the result number as a separator for each rule.

That’s it.

Next – the Write Action:

<WriteAction ID="WA" RunAs="SC!Microsoft.SystemCenter.ADWriterAccount" TypeID="SC!Microsoft.SystemCenter.ADWriter"> <ManagementServerName>d46bb8b5-48b2-c607-4890-33efd9416450</ManagementServerName> <!-- This needs to be changed to the GUID of the Windows Computer object for your management server --> <Domain>DOMAIN.net</Domain> <!-- This needs to be changed to your domain name you want to publish to --> <UserAndDomain /> <Password /> <SecureReferenceId /> <dNSXPath>DataItem/Property[@Name='dNSHostName']</dNSXPath> <distinguishedNameXPath>DataItem/Property[@Name='distinguishedName']</distinguishedNameXPath> </WriteAction>

 

We will need a distinct rule with a unique write action for each management server we want assignments to.  The write action needs to contain the Management Server’s GUID in the <ManagementServerName> XML tag.  To get a list of the correct GUIDS:

SELECT bme.DisplayName, bme.BaseManagedEntityId
FROM BaseManagedEntity bme
JOIN MTV_HealthService mtvhs ON bme.DisplayName = mtvhs.DisplayName
WHERE bme.Fullname like 'Microsoft.Windows.Computer:%'
AND mtvhs.IsManagementServer = 1
ORDER BY bme.fullname

 

Next, provide the domain we are publishing to.

That’s it!

Now – you can publish to any domain, using one rule for each management server.  You can also assign agents to your gateways, using the same process.

 

I have published an example MP you can use as a template here:

https://gallery.technet.microsoft.com/SCOM-Active-Directory-abe8b3d1

 

You still use the normal RunAs account configuration you always would, and can scope different RunAs publishing accounts to different management servers or Gateways.  Additional reading on that:

https://docs.microsoft.com/en-us/system-center/scom/manage-ad-integration-agent-assignment

https://blogs.technet.microsoft.com/smsandmom/2008/05/21/opsmgr-2007-how-to-enable-ad-integration-for-an-untrusted-domain/


Top Contributors Awards! October’2017 Week 2

$
0
0

Welcome back for another analysis of contributions to TechNet Wiki over the last week.

First up, the weekly leader board snapshot...

 

As always, here are the results of another weekly crawl over the updated articles feed.

 

Ninja Award Most Revisions Award
Who has made the most individual revisions

 

#1 Richard Mueller with 631 revisions.

 

#2 Sabah Shariq with 137 revisions.

 

#3 RajeeshMenoth with 109 revisions.

 

Just behind the winners but also worth a mention are:

 

#4 Ousama EL HOR with 86 revisions.

 

#5 M.Vignesh with 82 revisions.

 

#6 Kapil.Kumawat with 68 revisions.

 

#7 Maruthachalam with 53 revisions.

 

#8 Burak Ugur with 46 revisions.

 

#9 M.Qassas with 41 revisions.

 

#10 Ken Cenerelli with 40 revisions.

 

 

Ninja Award Most Articles Updated Award
Who has updated the most articles

 

#1 Richard Mueller with 576 articles.

 

#2 Sabah Shariq with 121 articles.

 

#3 RajeeshMenoth with 91 articles.

 

Just behind the winners but also worth a mention are:

 

#4 Ousama EL HOR with 69 articles.

 

#5 M.Vignesh with 48 articles.

 

#6 Maruthachalam with 38 articles.

 

#7 Waqas Sarwar(MVP) with 27 articles.

 

#8 M.Qassas with 27 articles.

 

#9 Burak Ugur with 24 articles.

 

#10 Kapil.Kumawat with 22 articles.

 

 

Ninja Award Most Updated Article Award
Largest amount of updated content in a single article

 

 

[No Award in this category because have many SPAM articles and our Wiki authors cleared all Spam articles. Good job team 🙂 ]

 

Ninja Award Longest Article Award
Biggest article updated this week

 

This week's largest document to get some attention is Wiki Ninja Belt Status: Who Has What Belt Ranking, by Ed Price - MSFT

This week's reviser was [Kamlesh Kumar]

 

 

Ninja Award Most Revised Article Award
Article with the most revisions in a week

 

This week's most fiddled with article is Microsoft SQL Server specializations and certifications, by Rauf Khalafov. It was revised 29 times last week.

This week's revisers were Richard Mueller, M.Vignesh, Rauf Khalafov, Kapil.Kumawat, Ousama EL HOR & Burak Ugur

 

 

Ninja Award Most Popular Article Award
Collaboration is the name of the game!

 

The article to be updated by the most people this week is TechNet Guru Competitions - October 2017, by Peter Geelen

This week's revisers were RajeeshMenoth, Ousama EL HOR, [Kamlesh Kumar], C Sharp Conner, M.Vignesh, Mauricio Feijo, .paul. _ & Pete Laker

 

The article to be updated by the second most people this week is C# OOP Conways Game of Life, by .paul. _

This week's revisers were .paul. _, M.Vignesh, Kapil.Kumawat, Richard Mueller, Sabah Shariq & Burak Ugur

 

 

Ninja Award Ninja Edit Award
A ninja needs lightning fast reactions!

 

Below is a list of this week's fastest ninja edits. That's an edit to an article after another person

 

Ninja Award Winner Summary
Let's celebrate our winners!

 

Below are a few statistics on this week's award winners.

Most Revisions Award Winner
The reviser is the winner of this category.

Richard Mueller

Richard Mueller has been interviewed on TechNet Wiki!

Richard Mueller has featured articles on TechNet Wiki!

Richard Mueller has won 196 previous Top Contributor Awards. Most recent five shown below:

Richard Mueller has TechNet Guru medals, for the following articles:

Richard Mueller's profile page

Most Articles Award Winner
The reviser is the winner of this category.

Richard Mueller

Richard Mueller is mentioned above.

Most Updated Article Award Winner
The author is the winner, as it is their article that has had the changes.

No Winner in this section.
Longest Article Award Winner
The author is the winner, as it is their article that is so long!

Ed Price - MSFT

Ed Price - MSFT has been interviewed on TechNet Wiki!

Ed Price - MSFT has featured articles on TechNet Wiki!

Ed Price - MSFT has won 147 previous Top Contributor Awards. Most recent five shown below:

Ed Price - MSFT has TechNet Guru medals, for the following articles:

Ed Price - MSFT's profile page

Most Revised Article Winner
The author is the winner, as it is their article that has ben changed the most

Rauf Khalafov

This is the first Top Contributors award for Rauf Khalafov on TechNet Wiki! Congratulations Rauf Khalafov!

Rauf Khalafov has not yet had any interviews, featured articles or TechNet Guru medals (see below)

Rauf Khalafov's profile page

Most Popular Article Winner
The author is the winner, as it is their article that has had the most attention.

Peter Geelen

Peter Geelen has been interviewed on TechNet Wiki!

Peter Geelen has featured articles on TechNet Wiki!

Peter Geelen has won 187 previous Top Contributor Awards. Most recent five shown below:

Peter Geelen has TechNet Guru medals, for the following articles:

Peter Geelen's profile page

 

.paul. _

.paul. _ has been interviewed on TechNet Wiki!

.paul. _ has featured articles on TechNet Wiki!

.paul. _ has won 11 previous Top Contributor Awards. Most recent five shown below:

.paul. _ has TechNet Guru medals, for the following articles:

.paul. _'s profile page

Ninja Edit Award Winner
The author is the reviser, for it is their hand that is quickest!

Ousama EL HOR

Ousama EL HOR has won 2 previous Top Contributor Awards:

Ousama EL HOR has not yet had any interviews, featured articles or TechNet Guru medals (see below)

Ousama EL HOR's profile page

 

Kapil.Kumawat

Kapil.Kumawat has won 10 previous Top Contributor Awards. Most recent five shown below:

Kapil.Kumawat has not yet had any interviews, featured articles or TechNet Guru medals (see below)

Kapil.Kumawat's profile page

 

Burak Ugur

Burak Ugur has won 24 previous Top Contributor Awards. Most recent five shown below:

Burak Ugur has TechNet Guru medals, for the following articles:

Burak Ugur has not yet had any interviews or featured articles (see below)

Burak Ugur's profile page

 

RajeeshMenoth

RajeeshMenoth has won 22 previous Top Contributor Awards. Most recent five shown below:

RajeeshMenoth has TechNet Guru medals, for the following articles:

RajeeshMenoth has not yet had any interviews or featured articles (see below)

RajeeshMenoth's profile page

 

 

Another great week from all in our community! Thank you all for so much great literature for us to read this week!
Please keep reading and contributing!

 

Best regards,
— Ninja [Kamlesh Kumar]

 

[English] Tips to Manage Azure AD User’s Consent to Applications Using Azure AD Graph API

$
0
0

Imagine a scenario where you've disabled the user's permissions to consent access to applications:
a) The option "Users can consent to apps accessing company data on their behalf" was set to "No" using the Azure AD Portal
OR
b) The option "UsersPermissionToUserConsentToAppEnabled" was set to "False" using PowerShell Module for Azure AD

 

Under one of the above conditions, if a particular user wants to give consent to a set of permissions, for a specific Application, he needs to request to the Azure AD Administrator to provide the consent on his behalf. However, to achieve that, the Administrator can only provide what is called "admin consent", in other words, consent to all users of the Azure AD. Of course, this can create a problem if the Administrator just wants to give consent for a specific set of users, and not all.

 

To overcome this limitation, one of the possible solutions could be by giving the "admin consent" (consent to all users of the Azure AD), but then set to "Yes" the "User assignment required" under Enterprise Application Properties, and finally assign/add only the wanted users to the Application. With this method, the Administrator is still providing "admin consent" to the App, however, it's possible to control what are the users that can access it.

 

A second solution, is by using Azure AD Graph API to provide consent to each specific user. The Azure AD Administrator needs to:
1. Access the App, but instead of providing/requesting "admin consent", he only needs to provide "user consent" for his own user. Unlike a non-admin user, where this functionality is blocked as explained above, this consent will be allowed and it will create the Service Principal/Enterprise Application for the App, with the "user" consent for the Administrator account.

2. Access to the Azure AD Graph API, if you do not have your own tool, you can use:
https://graphexplorer.azurewebsites.net/

3. List existent consents:
GET https://graph.windows.net/myorganization/oauth2PermissionGrants/

4. Search under "clientId" to identify the objectID of Service Principal created in 1)

5. Copy the details of the identified consent above, and change it according to the needs. E.g.:
{
"clientId": "6518c856-4cb3-4c22-bb5c-935739ed5477",
"consentType": "Principal",
"expiryTime": "2018-04-12T21:51:49.5446711",
"principalId": "e83078bf-ab20-4ca3-bf78-ec0662b0856f",
"resourceId": "e4b81415-37ca-4acb-a178-0b33dc42ffdc",
"scope": " User.Read openid",
"startTime": "0001-01-01T00:00:00"
}
Notes:
"clientId": ObjectID of the Service Principal
"consentType": Principal means "user consent"
"principalId": The objectID of the user the consent applies to
"scope": Permissions given on the consent on behalf of the user

6. Create consent for the user:
POST https://graph.windows.net/myorganization/oauth2PermissionGrants/
Data for POST:
{
"clientId": "6518c856-4cb3-4c22-bb5c-935739ed5477",
"consentType": "Principal",
"expiryTime": "2018-04-12T21:51:49.5446711",
"principalId": "e83078bf-ab20-4ca3-bf78-ec0662b0856f",
"resourceId": "e4b81415-37ca-4acb-a178-0b33dc42ffdc",
"scope": " User.Read openid",
"startTime": "0001-01-01T00:00:00"
}

7. After the above, the consent is given for the user/principal, and if you list again the existent consents, you'll identify a new one:
{
"clientId": "6518c856-4cb3-4c22-bb5c-935739ed5477",
"consentType": "Principal",
"expiryTime": "2018-04-12T21:51:49.5446711",
"objectId": "LLc7jy3wpEacSf2S_weYbR",
"principalId": "e83078bf-ab20-4ca3-bf78-ec0662b0856f",
"resourceId": "e4b81415-37ca-4acb-a178-0b33dc42ffdc",
"scope": " User.Read openid",
"startTime": "0001-01-01T00:00:00"
}

8. If you need to remove/revoke consent, use the "objectId" (auto-generated during creation), and execute the following:
DELETE https://graph.windows.net/myorganization/oauth2PermissionGrants/LLc7jy3wpEacSf2S_weYbR

 

More Details:
Understanding user and admin consent - https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-devhowto-multi-tenant-overview#understanding-user-and-admin-consent

oAuth2PermissionGrant resource type - https://developer.microsoft.com/en-us/graph/docs/api-reference/beta/resources/oauth2permissiongrant

 

blogpost_lbbgc

 クラウド ビジネスへの移行にあたって直面する 6 つの課題【10/16更新】

$
0
0

(この記事は 2017 年 8  月 30 日にMicrosoft Partner Network blog に掲載された記事 6 Challenges Partners and Customers Face When Moving to the Cloud の翻訳です。最新情報についてはリンク元のページをご参照ください。)

 

 

私は今年 2 月、クラウド テクノロジをこよなく愛する仲間たちと共に、ある会社を立ち上げました。私たちが目指しているのは、人々や企業がクラウド移行によってビジネスを変革できるようにお手伝いすることです。約 20 年にわたってテクノロジや金融業界に携わってきた経験上、多くの企業がクラウド ビジネスへの移行に苦心しているのは明らかでした。私はここに新たなクラウド ビジネスの大きなチャンスがあると考え、Go2the.cloud (英語) を立ち上げたのです。

デジタル トランスフォーメーションのただ中にいる企業と間近で仕事をしていると、私たちが直面する課題の 1 つひとつに、明確なソリューションが存在するということがよくわかります。自分たちだけの力では太刀打ちできない問題であっても、マイクロソフト パートナー ネットワークを活用してその専門分野に特化したパートナーを見つけ、共にその問題に取り組むことで解決できます。このデジタル トランスフォーメーションの新時代においては、協働することが成功の鍵となります。

EU のさまざまな企業や組織がクラウド ビジネスへ乗り出すお手伝いを始めてわずか 5 か月後、当社は月間収益を倍増させられるまでに成長しました。現在、当社のお客様はさまざまなマイクロソフトのクラウド サービス (Office 365、Azure、Dynamics、HoloLens など) を活用して問題を解決し、社員の業績を向上させています。

クラウド ビジネスを拡大するチャンスはたくさんありますが、それと同時に、乗り越えなければならない課題も少なくありません。そこで今回の記事では、当社の経験に基づき、さまざまな企業やマイクロソフト パートナーがお客様のクラウド移行を支援する際に直面してきた課題を 6 つご紹介します。

 

  1. クラウド ベースのテクノロジに関する知識

多くの企業にとって、クラウドはまだ非常に新しいテクノロジです。クラウドを活用するには、まず社員やビジネスにどのような効果があるのか知る必要があります。古い考え方を捨てるのは、なかなか難しいものです。しかし、時代遅れのやり方を続けていては、クラウド ファーストの世界で成功することはできません。チームのメンバー全員が、技術的な観点から考えるのをやめ、よりビジネスに焦点を当てた考え方でクラウドを捉えなければならないのです。そのためには、あなた自身が率先して最新のクラウド テクノロジについて学ぶ時間を取り、クラウド テクノロジが自社やお客様のビジネス プロセスにどのような効果をもたらすか、いかにチームの作業効率を高められるかを理解しましょう。

 

  1. 財務面の変化

従来の IT ビジネスでは、プロジェクトごとに収益を得るのが一般的でした。たとえば、契約金額が 100,000 ユーロのプロジェクトなら、すぐにその全額を請求し、顧客は契約期間中その IT ソリューションを使い続けることになります。これに対し、多くのクラウド サービスには経常収益モデルが採用されています。パートナーにとっては財務面の安定性が確保されるため、長期的に見ればメリットがあるのですが、短期的にはどうしてもキャッシュフローが悪くなりがちです。しかしそれ以上に注意したいのは、経常収益が得られるようになると、社内の意識が新規ビジネスを軽視し、持続的なビジネスを重視する方向へと変わってしまうことです。これは、IT サービス プロバイダーが必ず直面する課題として想定しておきましょう。

 

  1. 請求とプロビジョニングの自動化

多くのクラウド テクノロジは、月ごとにエンドユーザーへの請求を行い、顧客はサービスのスケールアップまたはスケールダウンを毎月選択できるようになっています。マイクロソフトからは自動請求や自動プロビジョニングのツールが提供されていないものの、サードパーティー製の便利なソリューションがいくつも公開されています。その中から適切なものを選択することは CSP パートナーにとっては難しいかもしれませんが、私は最適なソリューションを判断するとき、マイクロソフト パートナー コミュニティでベストプラクティスを集めて参考にしています。当社ではその経験を活かし、コンサルティング サービスとして最適なツールのご提案を行うようになりました。

 

  1. 製品ポートフォリオの管理

今日、クラウド ソリューションには多様な選択肢が存在します。Azure Marketplace から Office 365 まで、マイクロソフトだけでも 500 以上ものクラウド ソリューションが展開されています。製品の選択肢がここまで複雑なことを考えると、顧客のニーズに合わせた、シンプルでわかりやすい製品ポートフォリオが必要になってきます。市場の中で抜きんでた存在になるためには、特徴のある製品ポートフォリオを作成するのがお勧めです。

 

  1. 長期顧客の確保

クラウド ビジネスでは、すばやく簡単にスケールアップできる特性上、顧客にスケールアップを促す機会が毎月巡ってきます。これはすばらしい利点ですが、言い換えれば、顧客が解約したり他社のサービスへ乗り換えたりする危機も毎月訪れるということです。このため、長期顧客をつかむことが欠かせません。そのためには、他社との差別化を行い、競合他社にはまねできないやり方で価値を提供する必要があります。

 

  1. サービスの管理

現代の顧客が求めているのは、セルフサービスや、サービスに関する要望へのリアルタイムの対応です。適切なツールがあれば、こうしたサービス管理業務の大部分を自動化できます。しかしやはり、最適なツールを見つけ出すのは至難の業となるでしょう。そこで頼りになるのが、マイクロソフト パートナーの皆様です。

 

 

私は常々、クラウド テクノロジが私たちのビジネスのやり方にどのような変化をもたらすかについて考えています。今回お話ししたクラウド ビジネスへの移行における課題は、乗り越えられないほど高い壁に見えるかもしれませんが、どの問題にもソリューションは必ず存在しますのでご安心ください。事実、当社はこれまでお客様やマイクロソフト パートナー様がこれらの課題を突破し、クラウドの力ですばらしいビジネス トランスフォーメーションを実現するためのお手伝いをし続けています。

クラウド ビジネスへの移行を容易にする方法をもっと知りたい方は、ぜひマイクロソフト パートナー コミュニティ (英語) にご参加ください。

 

 

BitLockerの暗号化状態を確認する方法について

$
0
0

こんにちは。Windows サポートの石井です。BitLocker に関連するお問い合わせで、最近よく、「レジストリからBitLocker の暗号化の状態を確認したい。」 というご要望をいただきます。残念ながら、レジストリから BitLocker の暗号化状態を確認する方法のご用意はございませんので、本稿では、BitLocker の暗号化状態を確認する方法についてご紹介いたします。

BitLocker によるドライブ暗号化の設定情報はレジストリやフォルダ等には格納されておりません。
そのため、レジストリ値を参照する方法では、BitLocker による暗号化の状態を確認することができません。
**補足の項目としてご紹介しております、BitLockerStatus というレジストリが Windows 10 以降に格納される事を確認しておりますが、こちらも暗号化の状態が 100% かどうか、どのドライブが暗号化されているのかなどを確認する事はできません。**

BitLocker によるドライブ暗号化の設定情報の確認につきましてグラフィック インターフェースを除いては、BitLocker ドライブ暗号化コマンドラインツールを使用する方法、または Windows Management Instrumentation (以下 WMI) を利用する方法がございます。

以下に 2 つの利用方法についてご説明いたします。

コマンドラインから確認する方法
====================================
Windows OS に標準で用意されている BitLocker ドライブ暗号化コマンドラインツール(Manage-bde.exe)を実行する事で、BitLocker による暗号化の状態を確認できます。

[確認手順]
1. 管理者権限を持つアカウントでログオンします。

2. コマンド プロンプトを管理者権限で起動します。

3. 以下のコマンドを実行し、BitLocker による暗号化の状態を確認します。

<コマンド実行例>
Manage-bde.exe -status

<実行結果の例>

 

表示された各ドライブの暗号化された割合が 100% になっており、保護状態が"オン"になっていれば、有効化されていると判断することができます。

WMI から確認する方法
======================================
BitLocker によるドライブ暗号化の状態は WMI の Win32_EncryptableVolume クラスでも確認できます。

Win32_EncryptableVolume クラスにはシステムのボリューム情報がインスタンスとして格納されています。
複数のボリュームが存在する場合は複数のインスタンスが存在します。

Win32_EncryptableVolume クラスのインスタンスにて DriveLetter および ProtectionStatus プロパティを参照する事で暗号化のステータスが確認できます。

<クラス情報>
名前空間: rootcimv2SecurityMicrosoftVolumeEncryption
クラス名: Win32_EncryptableVolume

<プロパティ>
DriveLetter : ボリュームに設定されているドライブ文字

ProtectionStatus
0 : PROTECTION OFF (暗号化オフ)
1 : PROTECTION ON  (暗号化オン)
2 : PROTECTION UNKNOWN (ステータス不明)

WMIC コマンドで実行する場合は以下のコマンドとなります。

<コマンド実行例>
wmic /namespace:\rootcimv2SecurityMicrosoftVolumeEncryption path Win32_EncryptableVolume get DriveLetter, ProtectionStatus

<実行結果の例>

GetConversionStatus メソッドにて、ドライブに対して Bitlocker 有効化が行われている最中の状態が取得できます。
ConversionStatus
0 : 暗号化されていない状態
1 : 暗号化されている状態
2 : 暗号化中
3 : 暗号化解除中EncryptionPercentage
//暗号化処理中の状態を % で取得できます。
0 : 暗号化処理が開始されていない状態
100 : 暗号化処理が完了した状態Win32_EncryptableVolume クラスを利用して VBS や PowerShell 等のスクリプトやプログラムを作成することで、端末上の BitLocker によるドライブ暗号化の設定情報を取得することが可能となります。<コマンド実行例>
(Get-WmiObject -Namespace root/CIMV2/Security/MicrosoftVolumeEncryption -Class Win32_EncryptableVolume).GetConversionStatus()

<実行結果の例>

BitLocker に関する WMI クラス、およびメソッドにつきましては以下の情報をご参照ください。

Win32_EncryptableVolume class
http://msdn.microsoft.com/en-us/library/windows/desktop/aa376483(v=vs.85).aspx
Win32_EncryptableVolume Methods
http://msdn.microsoft.com/en-us/library/windows/desktop/gg196263(v=vs.85).aspx

BitLocker の暗号化状態の確認には、上述の manage-bde.exe による確認方法または、WMI による確認方法を利用する事をご検討いただければ幸いです。

補足:Windows 10 / Windows Server 2016 では、システムの起動時にシステム ドライブの BitLocker の保護がオンとなっているかオフとなっているかをチェックするためのレジストリとしてBitlockerStatus がございます。

キー名:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlBitlockerStatus
名前:  BootStatus
種類:  REG_DWORD
データ:  1

データ:1 (オン)
データ:0  (オフ)

このレジストリが設定されるタイミングとしまして、システムドライブ(例えば C: )の暗号化が完了して、100 % となった後に再起動した際、または"BitLocker システム チェックを実行する(R)"のチェックをオンにして、暗号化を開始した場合です。
後者の場合は、暗号化が完了していなくても再起動後にレジストリはデータ値 1 に設定されております。
そのため、BitlockerStatus のレジストリ値から、暗号化状態が 100 % である事を確認する事はできません。
また、システム ドライブのみのチェックをしているので、データ ドライブのみを暗号化していてもレジストリのデータ値は 0 となります。

 

MS クラウド ニュースまとめ – Azure VM の Reserved Instances リリース、他 (2017/09/25)

$
0
0

このポストは、9 25 日に投稿された Cloud Platform Release Announcements for September 25, 2017 の翻訳です。

 

この記事では、クラウド プラットフォーム チームが進める一連の新しい更新をまとめてご紹介します。

マイクロソフトでは、ユーザーの皆様によるクラウドの利用をサポートする取り組みを日々行っています。私たちは幅広い製品ポートフォリオを通じてマイクロソフトならではの最新技術、総合的なモバイル ソリューション、開発ツールを提供しており、ユーザーの皆様にはこれらをご活用いただくことで皆様が本来持つ力を余すところなく発揮していただきたいと考えております。今回お届けする最新リリース情報は以下のとおりです。

  • Azure Reserved Virtual Machine (VM) Instances のリリース
  • Azure のセキュリティと運用の管理に関する新機能と更新 - Cloudyn、Azure Security Center、Monitor
  • 可用性ゾーンのプレビュー
  • Azure Batch の Low-Priority VM の一般提供
  • Azure Batch Rendering サービスの一般提供
  • Azure Cloud Shell での PowerShell のプレビュー
  • Azure Data Box の限定プレビュー
  • Azure DDoS Protection のプレビュー
  • Azure File Sync のプレビュー
  • Azure IoT Hub Device Provisioning Service のパブリック プレビュー
  • Azure IoT Suite Remote Monitoring の販売を開始
  • Azure Migrate のプレビュー
  • Azure Network Watcher の Express Route 用 Connectivity Check
  • Azure Traffic Manager Real User Measurements のプレビュー
  • Azure Traffic Manager Traffic View のプレビュー
  • Azure VPN Gateway での Mac 用 P2S VPN の一般提供
  • Standard Load Balancer の HA ポートのプレビュー
  • Standard Load Balancer のプレビュー
  • Project “Honolulu” のプレビュー
  • SDN のグローバル仮想ネットワーク ピアリングのプレビュー
  • System Center のプレビュー ビルド (Semi Annual チャネル)
  • Azure Storage および Azure SQL 向け VNet サービスのエンドポイントのパブリック プレビュー
  • Azure Storage および Azure SQL 向け Virtual Network サービスのエンドポイントのプレビュー
  • Windows Server バージョン 1709 の一般提供
  • SDN – IP サービス タグのプレビュー
  • Azure および Office365 の ExpressRoute で IPv6 をサポート
  • Azure の新サービス Azure Essentials のプレビュー
  • FastTrack for Azure のプレビュー
  • Azure Machine Learning の更新のプレビュー
  • Azure SQL Database のリフト & シフト サービスの事前発表
  • AI ソリューションに関する発表
  • Windows/Linux/Docker 用 SQL Server 2017 の一般提供
  • Azure SQL Database の Native Scoring のプレビュー
  • Azure SQL Database Premium レベルの 4 TB ストレージ プール
  • Azure SQL Database の Virtual Network サービス エンドポイントのプレビュー
  • Azure SQL Database の Vulnerability Assessment のプレビュー
  • Cognitive Services のテキスト分析、Bing Search v7、Bing Custom Search の一般提供
  • Machine Learning サービスの Hadoop 用 ML Server の SA の一般提供
  • R Server から Machine Learning Server へ名称を変更
  • Power BI Desktop の新機能の一般提供
  • Azure Cosmos DB のデータベース監査機能の一般提供
  • Azure Cosmos DB と Azure Functions の統合のプレビュー
  • Azure Cosmos DB の新しいメトリックとヒートマップの一般提供
  • Azure Data Factory の更新のプレビュー
  • Azure SQL Database の適応型クエリ処理の一般提供
  • Azure SQL Database でのグラフ サポートの一般提供
  • Azure SQL Database の Intelligent Insights のプレビュー
  • Power BI サービスの新機能の一般提供
  • SQL Data Warehouse 分析ワークロード用の新しい高パフォーマンス サービス レベル
  • Azure App Service での Premium サービス レベルの一般提供
  • Azure Functions での .NET Core のサポート
  • Azure Functions での Microsoft Graph バインディングのサポート
  • Azure Service Fabric の新機能
  • Azure OSS DevOps による Azure Cloud Shell の Hashicorp Terraform サポート
  • Visual Studio Mobile Center プレビューで Android 8.0 Oreo をサポート
  • Visual Studio Mobile Center プレビューでの iOS 11 のサポートの発表
  • Visual Studio Mobile Center プレビューの Continuous Export
  • 強化された新しい Azure Active Directory Cloud App Discovery の一般提供
  • System Center Configuration Manager の共同管理 (ConfigMgr+Intune) に関する新情報
  • Intune パートナーの Jamf を統合
  • Microsoft Cloud App Security のプロキシ機能のプレビュー
  • Azure HDInsight と OMS の統合のパブリック プレビュー
  • Power BI Embedded に関する新情報
  • Microsoft Azure Information Protection であらゆるユーザーのメールを保護
  • Azure Active Directory のアクセス レビューのプレビュー
  • Azure AD Conditional Access の新しい条件とコントロールのプレビュー
  • Microsoft Cloud App Security の AIP 自動ラベリングのプレビュー
  • EU データセンターにおける Microsoft Cloud App Security のサポート
  • System Center Configuration Manager の複合権限と Intune Data Importer
  • G シリーズおよび H シリーズの料金値下げに関する新情報
  • アプリケーション セキュリティ グループのプレビュー

Azure Reserved Virtual Machine (VM) Instances のリリース

Azure Reserved VM Instances (RI) がリリースされました。これにより、Azure の仮想マシンを非常に安価な料金で予約できるようになります。

Azure Reserved VM Instances では、場所や時間に応じてワークロードに優先順位を付け、コンピューティング能力を予約することができます。従量課金制と比較して 72% もコストを削減でき、1 年または 3 年契約の一括前払いのため予算の管理や予測が容易になります。Azure RI の購入方法は、リージョン、VM シリーズ、契約期間の 3 項目を選択するだけの簡単なステップです。また、契約期間内に予約内容の変更やキャンセルの必要が生じた場合でもすぐに対応できます。さらに、Windows Server をご利用中の場合、Azure Hybrid Benefit と組み合わせることで最大 82% のコスト削減が可能です。Azure Reserved VM Instances では、コンピューティング能力の優先度に応じて、柔軟な RI を低価格で利用することができます。

Azure のセキュリティと運用の管理 - Cloudyn、Azure Security Center、Monitor

Azure のセキュリティと運用の管理に関する新機能と更新

Azure には独自のセキュリティと運用の管理機能が組み込まれており、ネイティブなインテリジェンス機能とハイブリッド機能を活用することで生産性を向上できます。このたび、クラウド ワークロードの保護と管理を強化する新機能と更新が発表されました。Azure、AWS、Google Cloud Platform が混在する企業のクラウド関連のコストの管理と最適化を行う目的で導入された Cost Management by Cloudyn は、Azure ユーザーおよびパートナーの皆様に無料でご利用いただけます。Cost Management のページ (英語) で詳細をご確認のうえ、こちらのサイト (英語) から使用を開始してください。

Azure Security Center は、Azure で実行されているワークロードをサイバー攻撃から保護します。今回、Ignite にて発表されたパブリック プレビューでは、オンプレミスおよび他のプライベート クラウドやパブリック クラウドで実行されているワークロードも対象となりました。また、アプリケーションの動的ホワイトリスト登録、Azure Logic Apps との統合、インタラクティブな調査経路やマッピングを使用したインシデントのドリルダウンなどの新機能が Security Center に追加されます。さらに、Azure でリソースを作成する段階から、リソースの監視、バックアップ、セキュリティを目的とするサービスを検索して追加し、セキュリティ リスクやコンプライアンス リスクを容易に軽減できるようになりました。新機能である Update Management は、あらゆるマシンで無料でご利用いただけます。新しいサービスや機能の詳細は、Azure ブログの記事 (英語) を参照してください。

可用性ゾーンのプレビュー

先週、2 つのリージョンでの Azure Availability Zones (英語) のパブリック プレビュー開始と、今後の対象リージョン拡大予定を発表しました。現在、急増するビジネス継続性のニーズに対応するため、Availability Zones を使用して、既存のリージョンで包括的な高可用性および災害復旧機能を提供できるように取り組んでいます。

Availability Zones は Azure リージョン内の障害から隔離された場所に、冗長性を持つ電源、冷却能力、ネットワーク機能を提供します。Availability Zones では、データセンターでの障害発生に備えて高可用性とフォールト トレランス性が確保されているため、ミッション クリティカルなアプリケーションを実行するのに適しています。このサービスが一般提供される際には、単一リージョン内の 2 か所以上のゾーンにデプロイされた仮想マシンについて、返金制度付きの SLA で 99.99% の可用性が保証されます。

ぜひ Azure Availability Zones を今すぐお試しください (英語)。詳細は製品概要のページを参照してください。

Azure Batch の Low-Priority VM の一般提供

Azure Batch Low-Priority VM の一般提供を開始

Azure Batch | 料金
通常のオンデマンド VM よりも大幅に割安な Low-Priority VM の一般提供が開始されました。中断可能で実行タイミングも柔軟なバッチ アプリケーションの場合、Low-Priority VM を使用することで、ワークロードの実行コストを大幅に削減したり、同じ料金のままでより大規模で多くの処理を実行したりすることができます。多くのバッチ処理ワークロードには Low-Priority VM を活用するメリットがあり、Azure Batch を使用して Low-Priority VM の割り当て、管理、発生したプリエンプションの処理などを簡単に実行できます。

Azure Batch Rendering サービスの一般提供

Azure Batch Rendering の一般提供を発表

Batch Rendering (英語) | 料金

Azure Batch Rendering を使用すると、Maya や 3ds Max などのクライアント アプリケーションやマイクロソフトの SDK でのレンダリングをシームレスに実行できるため、アーティスト、エンジニア、デザイナーが大規模なレンダリング ジョブの結果をすばやく確認することができます。

Azure Batch Rendering は、パブリック プレビューの終了と同時に一般提供を開始いたします。

このサービスの一環として、日常的なレンダリング ワークロードを Azure でシームレスに実行できるように、Azure チームは Autodesk や Chaos Group などのパートナーとの協力を進めています。Batch Rendering では今後、リッチな統合エクスペリエンスを実現するクライアント プラグインなどの各種ツールを提供予定で、容易なスケーリング、監視、資産管理のほか、アプリケーション内からジョブを送信できるようになります。さらに、既存の環境とのカスタム統合を可能にする SDK をさまざまな言語で提供します。

詳しくは Azure Batch Rendering のページ (英語) を参照してください。

Azure Cloud Shell での PowerShell のプレビュー

9 月 25 日 (月)、マイクロソフトが管理する Azure の、Azure のための管理マシンである Azure Cloud Shell で PowerShell のパブリック プレビューを開始しました (英語)。これにより、場所やデバイスを問わず、クラウドでホストされている承認済みのブラウザーベースのシェル エクスペリエンスから PowerShell を使用して Azure へ接続できるようになります。

Hemant Mahawar のブログ記事 (英語) で詳しく説明されているとおり、PowerShell エクスペリエンスでは、リソースの検索、現在のパスに応じたコンテキスト機能、PowerShell Gallery (英語) から新規コマンドを追加する拡張モデル、仮想マシンの管理など、Azure ドライブ (Azure:) のファイル システムを使用することで、すべての Azure リソースの検索や移動の操作が簡略化されます。

詳しくは Azure Cloud Shell のページを参照してください。

Azure Data Box の限定プレビュー

Azure Data Box の限定プレビューを発表

Azure Data Box の限定プレビューが発表されました。Azure Data Box は、大量のデータを Azure Storage に転送することができる、安全、高耐久性で改ざんに強いマイクロソフト製アプライアンスです。Data Box は Azure ポータルでご注文いただけます。Data Box は、DHCP 経由またはお客様の IP アドレスを使用してお客様のネットワークに接続されます。Azure Data Box へのデータ コピーでは、SMB 3.0 プロトコルを使用し、データは 256 ビットの AES 暗号化キーで暗号化されます。Data Box をマイクロソフトに返却する場合、データを Azure Blob または Files のストレージに保存でき、データのアップロード完了後にデバイスは消去されます。パートナー様は、大量のデータを Azure に転送するプロジェクトなどに Azure Data Box を活用していただけます。今回のプレビュー対象は米国リージョンに限定されますが、ご興味をお持ちの場合はぜひ参加の意思をお知らせください。プレビューへのサインアップをご希望の方は、Azure Data Box のプレビュー プログラムをご確認ください。Azure Data Box の詳細については、ブログ記事を参照してください。

Azure DDoS Protection のプレビュー

料金 | DDoS Protection

OSI 参照モデルの第 3 ~ 7 層を悪用した分散型サービス拒否 (DDoS) 攻撃からアプリケーションを保護する新サービス Azure DDoS Protection のプレビューが発表されました。このサービスは Azure 内のリソースのパブリック IP アドレスを監視しながらアプリケーションの通常のトラフィック パターンを学習し、攻撃検出時に即座に影響を緩和します。またこのサービスを登録すると、アプリケーションに対する攻撃の詳細なテレメトリとアラートを受け取ることができます。プレビュー期間中は、完全に無料でご利用いただけます。詳しくは Azure DDoS Protection のページ (英語) を参照してください。

Azure File Sync のプレビュー

Azure File Sync のプレビューを発表

Azure File Sync のパブリック プレビューが発表されました。Azure File Sync では、クラウドのファイル共有管理を安全に集約することができます。Windows Servers に File Sync エージェントをインストールすると、アクセス頻度が低いファイルをクラウドに保存しながら、アクセス頻度が高いデータをそのままローカル ファイル共有できるため、構成やコードを変更することなく一貫したファイル共有パフォーマンスを得られます。また、File Sync にファイル共有管理を集約することで、支社やリモート オフィスの IT サポート要件を緩和することもできます。パブリック プレビューは米国リージョンのみで提供されます。プレビューへのサインアップをご希望の方は、プレビュー版 Azure File Sync のページにアクセスしてください。Azure File Sync の詳細については、ブログ記事を参照してください。

Azure IoT Hub Device Provisioning Service のパブリック プレビュー

Azure IoT Hub Device Provisioning Service のパブリック プレビューが発表されました。これは、IoT Hub へのデバイスのプロビジョニングを完全に自動化する Azure IoT Hub の新しいサービスです。

膨大な数のデバイスを安全でスケーラブルな方法でプロビジョニングできるため、これまで時間とリソースを大量に消費していた無数の接続型デバイスの管理プロセスの自動化が実現します。Device Provisioning Service は、クラウドへのデバイスの登録とデバイスの構成の両方に対応した、クラウド唯一の完全自動プロビジョニング ソリューションです。9 月 6 日より米国東部、西ヨーロッパ、東南アジアで提供が開始されており、段階的に全世界の地域に拡大される予定です。

プロビジョニング サービスを利用しない場合、Azure IoT Hub へのデバイス接続をすべて手動で操作しなければなりません。各デバイスに一意の ID を付与し、競合が発生した場合にデバイスごとにアクセス権を失効できるようにします。デバイス数が少なければ手動でも行えますが、IoT の膨大な数のデバイスに接続用の資格情報を付与するのはほぼ不可能です。

IoT Hub Device Provisioning Service を IoT Hub のデバイス管理機能と組み合わせることで、大規模な IoT デバイスのライフサイクルを安全に管理できるようになります。

詳細情報 (英語)

Azure IoT Suite Remote Monitoring の販売を開始

Ignite で発表された Azure IoT Suite Remote Monitoring ソリューションは、IoT プロジェクトの開発、デプロイ、メンテナンスを簡素化する取り組みの新たな一歩となります。マイクロソフトは、Azure サブスクリプションにデプロイ可能なマイクロサービス基盤のオープン ソース アーキテクチャを構築しました。このアーキテクチャは Java と .NET の両方の言語で使用できるため、Azure プラットフォーム上でのソリューション開発の選択肢が広がります。

利用方法などの詳しい情報は、以下の資料をご覧ください。

Azure Migrate のプレビュー

新サービスの Azure Migrate (英語) が発表されました。これにより、Azure への移行に必要なガイドや情報、メカニズムをお客様に提供できるようになります。

Azure Migrate では、アプライアンスを使用して以下のような機能を提供します。

  • オンプレミスの仮想マシンとサーバーの検出と評価
  • 多層アプリケーションを確実に検知するための組み込み型の依存関係マッピング
  • Azure Virtual Machines の適切なサイジング
  • 潜在的な問題の修正ガイドラインを含む互換性レポート
  • データベースの検出と移行を目的とした Azure Database Management Service との統合

Azure Migrate を使用すると、移行によるビジネスへの影響を最小限にとどめ、またワークロードを期待どおりに Azure で実行することができます。適切なツールとガイドラインによって、パフォーマンスと信頼性の重要なニーズに確実に対応できます。

Azure Migrate の詳細をご確認のうえ、ぜひ限定プレビューをお試し (英語) ください。限定プレビューでは VMware ベースの環境の検出、コスト分析、推奨構成をご利用いただけます。なお、今後数か月以内に Hyper-V 環境の検出とレプリケーションによるサーバー移行にも対応する予定です。

移行に関する資料、ツール、サービスをご希望の方は、新しい Azure Migration Center (英語) にアクセスしてください。

Azure Network Watcher の Express Route 用 Connectivity Check

Azure Network Watcher Azure ExpressRoute Connectivity Check のプレビュー

Azure Network Watcher の Express Route 回線用 Connectivity Check のプレビューが発表されました。これは既存の接続チェックに追加された高度な機能で、Azure 仮想マシンからオンプレミスのマシンへの Azure ExpressRoute 回線を使用したハイブリッド接続の問題を特定することができます。

Connectivity Check を使用すると、接続問題の特定にかかる時間を大幅に短縮できます。確認できる内容は以下のとおりです。

  • 接続元の仮想マシンからオンプレミスのマシンへの全ホップ
  • ホップ バイ ホップと全体のレイテンシ
  • Azure の各ホップのユーザー構成やプラットフォームに関する潜在的な問題。ポータルから、または REST API、PowerShell、CLI、SDK を使用して接続チェックを実施できます。

詳しくは接続チェックの概要ページを参照してください。

Azure Traffic Manager Real User Measurements のプレビュー

Azure Traffic Manager Real User Measurements のプレビュー

Azure Traffic Manager Real User Measurements のプレビューが発表されました。これは、Traffic Manager プロファイルへのクエリによって Azure Traffic Manager のルーティング精度を向上させる機能で、Azure Traffic Manager の既存のネットワーク レイテンシ インテリジェンスをエンド ユーザーの接続元のネットワークに適切に配置することができます。まず Azure で提供される JavaScript コードを Web プロパティ内で実行し、エンド ユーザーのネットワークから Azure リージョンへのレイテンシを計測します。この計測結果は Azure Traffic Manager サービスに送信され、ルーティング決定の精度向上に使用されます。Real User Measurements を活用することで、組織におけるネットワーク レイテンシ最小化の課題を解決することができます。料金などの詳細については、Real User Measurements の概要ページ (英語)Azure Traffic Manager の料金ページを参照してください (注: パブリック プレビュー期間中は無料でご利用いただけます)。

Azure Traffic Manager Traffic View のプレビュー

Azure Traffic Manager Traffic View のプレビュー

Azure Traffic Manager Traffic View のプレビューが発表されました。この機能を使用すると、ユーザー拠点の位置情報 (ローカル DNS リゾルバー単位までの精度)、そのリージョンで発生するトラフィック量、ユーザーの平均レイテンシ、各ユーザー拠点から使用中の Azure リージョンへの特定トラフィック パターンなどを把握できます。情報は Azure ポータル上の表で確認でき、データをそのままダウンロードすることもできます。これにより、既存の Azure リージョンの容量管理の方法や拡張が必要な Azure リージョンなどの情報を基に、ユーザー エクスペリエンスを改善することができます。料金などの詳細については、Traffic View の概要ページ (英語)Azure Traffic Manager の料金ページを参照してください (注: パブリック プレビュー期間中は無料でご利用いただけます)。

Azure VPN Gateway の Mac 用 P2S VPN の一般提供

Mac P2S VPN および 専用 AD ドメイン認証の一般提供を開始

Azure Networking で Mac 用 P2S VPN および P2S VPN 用 AD ドメイン認証が一般提供されることになりました。

これにより、ネイティブな IKEv2 VPN クライアントを使用して Mac から P2S VPN で Azure Virtual Network に接続できます。SSTP は引き続き Windows 用 P2S ソリューションとして使用できます。IKEv2 と SSTP VPN を使用することで、Windows と Mac のクライアントを同じ環境で利用できるようになります。

RADIUS 認証を有効化して、IKEv2 および SSTP VPN の認証に組織のドメインの資格情報を使用できます。Azure VPN Gateway では、Azure またはオンプレミスのデータセンターで RADIUS と AD ドメイン デプロイメントを統合できます。RADIUS サーバーでは他の ID プロバイダーも統合可能で、多要素認証などの P2S VPN 用の便利な認証オプションを利用できます。

Standard Load Balancer の HA ポートのプレビュー

Azure Load Balancer HA ポートのプレビューを開始

Azure Networking チームより Azure Load Balancer の Premium サービスである HA ポートのプレビューが発表されました。この機能では、単一の負荷分散ルールを構成してすべてのプロトコルとポートのトラフィックに適用するため、高可用性モードでサービスやアプライアンスをデプロイできます。このルールでは、ポート数にかかわらず、複数の接続元からのバックエンド プールへの仮想ネットワーク トラフィックの負荷分散が容易になります。複数の負荷分散ルールを 1 つにまとめることで、ルール数の制限がなくなり ARM テンプレートを簡素化することができます。これにより、ネットワーク仮想アプライアンスの高可用性やポート範囲の構成などの重要なシナリオが実現できます。この機能の詳細については、Microsoft Azure Load Balancer のドキュメント (英語) を参照してください。

Standard Load Balancer のプレビュー

Standard Load Balancer のプレビューを開始

Standard Load Balancer では、これまでよりもはるかに大規模で耐久性が高い負荷分散環境を作成可能なほか、仮想ネットワーク内のすべての仮想マシン インスタンスを容易に使用できます。非常に幅広いシナリオや機能を実現でき、Availability Zones、仮想ネットワーク内のすべての仮想マシン インスタンス、1,000 台規模の VM スケール セット、高可用性ネットワーク仮想アプライアンスのインスタンス負荷分散ルールのほか、データ プレーン正常性、エンドポイント正常性、トラフィック カウンターの診断などが可能です。

Project “Honolulu” のプレビュー

9 月 14 日に、Windows Server の次世代 GUI 管理エクスペリエンスの Project "Honolulu" (英語) が発表されました。このエクスペリエンスでは、ローカルにデプロイされる柔軟なブラウザーベースの管理プラットフォームおよびツール セットを利用できます。

お客様からいただいたフィードバックが製品のさまざまな部分に反映されており、ハイブリッドおよび従来の非接続型のサーバー環境をサポートし、デプロイの手間もいらず、一般の IT 管理者向けに手軽で使いやすいエクスペリエンスとなっています。
Project “Honolulu” は、Windows Server の GUI 管理エクスペリエンスの将来のビジョンに沿って開発されています。

マイクロソフトは、まずプラットフォームとツールを刷新し、デプロイやツールの利用における方法や場所がより柔軟になりました。これによりパートナー様は、進化するツールや機能のエコシステムを利用して容易に社内外のソリューションを構築できるようになります。プラットフォームを導入して発展させるためには、最新バージョンだけでなく一定範囲の既存の Windows Server のバージョンもサポートし、追加料金なしで Windows Server の一部としてライセンスを付与することが重要です。GUI 管理プラットフォームの刷新により、最新の管理ツールを開発する負担を軽減することができます。

マイクロソフトは、次にエクスペリエンスを適切に簡素化し、インターネットなしで、すばやく簡単にデプロイできるようになりました。ツールは使いやすく、トラブルシューティング、構成、メンテナンスにおける主要な管理タスクをサポートしています。従来 PowerShell でしか管理できなかった Windows Server の機能も GUI で操作可能になります。

さらに、管理エクスペリエンスを根本から統合し、さまざまなツールを 1 か所から使用できるだけでなく、コンテキストに応じたデータをフィルタリングして他のツールで表示できるようにしました。コンテキストを含んだツールの URL リンクを別のツールに提供し、外部ソースから起動することができます。このアーキテクチャは今後、クラウドとの統合にも対応する予定です。

最後に、安全なプラットフォームを提供することで、ソリューションの安全を既定で確保すると共にセキュリティ ソリューションのサポートを最適化しました。今後も、セキュリティと保証の取り組みについて詳しく説明していきます。

Project “Honolulu” をお試しになる場合は、パブリック プレビューをダウンロード (英語) のうえ、こちらのドキュメント (英語) を参照してください。

SDN のグローバル仮想ネットワーク ピアリングのプレビュー

グローバル仮想ネットワーク ピアリングのパブリック プレビュー

グローバル仮想ネットワーク ピアリングでは、異なる Azure リージョンに属する仮想ネットワークとのピアリングが可能になります。従来、ピアリングできるのは、同一リージョンに属する仮想ネットワークに限られていました。今回のプレビューでは、さまざまなシナリオで、異なるリージョン間のピアリング接続をセットアップできます。例として、災害復旧、データベースのフェールオーバー、プライベート IP を使用したデータ レプリケーションなどが挙げられます。グローバル仮想ネットワーク ピアリングでは、異なるリージョンの仮想ネットワークに属する VM 間を低レイテンシで直接接続します。このトラフィックは、インターネットではなくマイクロソフトのバックボーンのみを使用した完全な専用回線です。さらに、グローバル仮想ネットワーク ピアリングでは、仮想マシンのサイズに応じた範囲内であれば帯域幅制限を受けません。グローバル仮想ネットワーク ピアリングの詳細については、グローバル ピアリングの Web ページを参照してください。

System Center のプレビュー ビルド (Semi Annual チャネル)

System Center では、2018 年の初旬に Semi Annual リリースの提供を開始する予定で、System Center バージョン 1801 のパブリック プレビューを 11 月に開始します。このリリースでは主に、System Center の Operations Manager、Virtual Machine Manager、Data Protection Manager を対象に、最新バージョンの Windows Server や Linux がサポートされるほか、Azure ベースのセキュリティおよび管理サービスによってパフォーマンス、操作性、信頼性、拡張性が向上されます。限定プレビューは、Windows Server Technical Adoption Program の参加者にのみ提供されます。詳しくはブログ記事 (英語) を参照してください。

Azure Storage および Azure SQL 向け VNet サービスのエンドポイントのパブリック プレビュー

Virtual Network サービスのエンドポイントを使用すると、Azure Storage アカウントや Azure SQL DB から仮想ネットワーク (VNet) に安全に接続でき、パブリック インターネットを使用してリソースにアクセスする必要がなくなります。また、仮想ネットワークから Azure サービスに直接接続することで、サポートされている Azure サービスを利用する際に VNet のプライベート アドレス空間を使用できるようになります。サービス エンドポイントから Azure サービスへのトラフィックは、必ず Microsoft Azure をバックボーンとするネットワークのみを経由します。お客様の仮想ネットワークでサービス エンドポイントを使用する場合には、追加コストは発生しません。

詳しくは Virtual Network の Web ページを参照してください。

Azure Storage および Azure SQL 向け Virtual Network サービスのエンドポイントのプレビュー

Virtual Network サービスのエンドポイントを使用すると、Azure Storage アカウントや Azure SQL DB から仮想ネットワーク (VNet) に安全に接続でき、パブリック インターネットを使用してリソースにアクセスする必要がなくなります。また、仮想ネットワークから Azure サービスに直接接続することで、サポートされている Azure サービスを利用する際に VNet のプライベート アドレス空間を使用できるようになります。サービス エンドポイントから Azure サービスへのトラフィックは、必ず Microsoft Azure をバックボーンとするネットワークのみを経由します。お客様の仮想ネットワークでサービス エンドポイントを使用する場合には、追加コストは発生しません。

詳しくは Virtual Network の Web ページを参照してください。

Windows Server バージョン 1709 の一般提供

Windows Server バージョン 1709 がリリースされました。このバージョンは、新しい Semi Annual チャネルのリリース サイクルに従ってリリースされる初の Windows Server となります。このチャネルは、主にコンテナーやマイクロサービスで構築されたアプリケーションの開発を行うお客様や、ソフトウェア定義のハイブリッド データセンターに移行するお客様を対象としています。Semi Annual チャネルでは、Windows Server が 6 か月ごとにリリースされ、18 か月間サポートされます。

Windows Server バージョン 1709 では、開発者や IT プロフェッショナルの皆様が、コンテナーを使用してすばやく簡単に既存の従来型アプリケーションを刷新したり、クラウド アプリを新たに構築して Windows Server にデプロイしたりできます。これには、既存のアプリに最適化された Server Core コンテナー イメージや、新しいクラウド アプリケーション用に 79% 縮小された新しい Nano Server コンテナー イメージなどが含まれます。バージョン 1709 では Hyper-V の分離機能を備えた Linux コンテナーがサポートされているため、OS が混在する環境でも Linux と Windows のワークロードを並行して実行することができます。

Azure ユーザーの皆様は、10 月初旬から Windows Server バージョン 1709 をご利用いただけます。ソフトウェア アシュアランスや MSDN などのロイヤルティ プログラムに加入しているお客様は、10 月下旬からダウンロードできます。Windows Insider の皆様は、Semi Annual チャネルでプレビュー ビルドにアクセスできます。また、Microsoft Tech Community (英語) にもご参加いただけます。

SDN – IP サービス タグのプレビュー

Azure サービスへのアクセス許可をカスタマイズしてセキュリティ コンプライアンスのニーズへの対応を簡単に

サービス タグでは、簡単に仮想マシンのネットワーク アクセスを実際に使用する Azure サービスに制限できるため、Azure Virtual Machines や Virtual Networks のセキュリティ対策がシンプルになります。

今回のプレビューでは、Storage、SQL、Traffic Manager のネットワーク セキュリティ グループで使用可能なサービス タグが提供されます。

サービス タグおよびネットワーク セキュリティ グループは、無料でご利用いただけます。

こちら (英語) からサービス タグに関するドキュメントを参照してください。

Azure および Office365 の ExpressRoute で IPv6 をサポート

マイクロソフトのピアリングを通じて、Office 365 および Azure のサービスでホストされる IPv6 エンドポイントにアクセスできるようになります。マイクロソフトのピアリングはデュアル スタックであるため、すべての対象エンドポイントにアクセスするには、IPv4 と IPv6 の両方を構成していただく必要があります。ルート フィルターを使用して、接続先のサービスやリージョンを選択することができます。

この機能は API、PowerShell、CLI で完全にサポートされます。

Azure の新サービス Azure Essentials のプレビュー

Microsoft Azure Essentials は、クラウド コンピューティングの可能性に関心があり、実践的なスキルを習得したいと考えている IT プロフェッショナルや開発者の皆様向けの新しい無料サービスです。すぐに Azure を使用して新しいスキルを習得したい場合にお勧めです。3 ステップの簡単な手順でトピックを選択すると、基本を紹介する短いデモ ビデオを視聴できるようになります。Azure の無料アカウントを取得して、ライブのガイド付きラボで学習したことを実際に活用することができます。

Pluralsight とのパートナーシップによる無料のガイド付き Azure 学習サービスでは、対面またはオンラインの形式で、マイクロソフト公式カリキュラムを担当する業界エキスパートから高度なスキルを習得できます。習得事項はマイクロソフト認定で証明されるため、キャリア形成にも役立ちます。

Azure の成長と共に Azure Essentials で提供される内容も進化します。お客様のキャリアを支援するため、Azure Essentials のコンテンツとエクスペリエンスは継続的に更新されます。

FastTrack for Azure のプレビュー

FastTrack for Azure のプレビューの提供地域を拡張

FastTrack は 8 月に米国、カナダ、オーストラリアで提供を開始していますが、10 月上旬より英国と西ヨーロッパも対象となります。FastTrack for Azure はマイクロソフトのエンジニアが直接的な支援を行うサービスで、パートナー様と協力してご希望のソリューションをすばやく確実に構築する作業をお手伝いします。FastTrack では、お客様がスムーズに作業を完了できるよう、Azure ソリューション製品のセットアップ、構成、開発に関するガイドを提供します。詳しくは FastTrack for Azure のページを参照してください。

Azure Machine Learning の更新のプレビュー

Azure Machine Learning の更新のパブリック プレビュー

料金 | Azure Machine Learning (英語)

Azure Machine Learning の新機能をパブリック プレビューでご利用いただけます。今回の新機能は AI 開発者とデータ サイエンティストを対象に、クラウドやオンプレミス、エッジ デバイスで、あらゆる場所、あらゆる規模で使用される AI モデルの構築、デプロイ、管理を支援します。TensorFlow、Cognitive Toolkit、Spark MLlib などのきわめて強力な機械学習フレームワークと、Jupyter、PyCharm、Visual Studio といった使いやすい IDE を使用して、すぐに実験を開始することができます。あらゆる規模での AI の構築に対応しており、ローカルでプロトタイプ モデルを開発した後、クラウドでの利用に合わせて簡単にスケーリングできます。料金は、実際に使用したクラウド リソースの分が請求されます。構築したモデルは Azure Machine Learning から数分でデプロイでき、エッジ コンピューティングなどの要求数の多い情報も、どこでもリアルタイムで得ることができます。運用環境にデプロイされたモデルは管理および保持できるため、インテリジェント アプリケーションの最大限のパフォーマンスを維持できます。組み込み型のインテリジェントなデータ準備機能による機械学習のライフサイクル全体の調整、モデル アセットの追跡による実験頻度の向上、Git などの使いやすいツールのサポート、最適なモデルを選択し再現するためのバージョン管理など、さまざまな新機能によりデータ サイエンスの生産性が大きく向上します。マイクロソフトは、すべての機能におけるエンタープライズ クラスの安全性を保証します。

  • 高コスト効率の機械学習: まずは無料シートをお試しください。クラウド リソースは、実際に使用した分のみお支払いいただきます。
  • モデルの実験頻度を向上: モデルのコード、構成、パラメーター、トレーニング データを追跡することで、最適なパフォーマンス モデルをすばやく特定し、再現性を確保します。
  • あらゆる場所で開発、デプロイ、管理が可能: デスクトップでプロトタイプをすばやく作成した後、仮想マシンを使用したスケールアップや、Spark クラスターを使用したスケールアウトが可能です。Docker コンテナーを使用すると、さらに手軽かつ柔軟にトレーニングやデプロイを実施できます。
  • あらゆるユーザー環境に対応: データ サイエンティストや AI 開発者が使い慣れているツールやテクノロジを使用できるため、新たなスキルを習得する必要はありません。Visual Studio Code に統合されています。
  • 準備を簡素化してモデリングに集中: 組み込みのインテリジェントなデータ準備機能が、手動でのデータ準備の作業手順を学習し、残りのデータ準備を実行します。作業内容を Python または Spark でエクスポートして、すべてのデータを再現およびスケーリングできます。

Azure Machine Learning の新機能は、米国東部 2、米国中西部、オーストラリアでパブリック プレビューを実施しており、今後さらに提供地域を拡大する予定です。Azure Machine Learning の新機能は無料 (英語) です。

Azure SQL Database のリフト & シフト サービスの事前発表

Azure SQL Database でクラウドへのリフト & シフトが容易に

今日の市場競争で優位に立ち続けるために、IT 企業は常に、データのメンテナンス方法や利用方法を最適化してビジネスに活用しようと模索しています。クラウドへ移行することで、企業の継続的な成長に必要な運用効率化とビジネス実現の両方が可能になります。この秋に開始予定の、Azure Database Migration Service、SQL Database Managed Instance、および新しい Hybrid Use Benefit のパブリック プレビューにより、SQL Server のデータをすばやく Azure SQL Database に移行できるようになります。近日、完全自動の Database Migration Service を使用して、オンプレミスの SQL Server から SQL Server と互換性の高いマネージド型のインスタンスに、大規模にリフト & シフトできるようになります。使い慣れたツールや機能はそのまま使用でき、アプリを設計し直す必要もありません。また、新しい Hybrid Use Benefit ではマネージド型インスタンスに割引が適用されるため、既に所有しているライセンス資産を最大限に活用できます。これらの新サービスは、SQL Server ワークロードを Azure SQL Database で経済的に実行できるようにするための取り組みの一環です。提供開始のお知らせをご希望の方は、こちらからサインアップ (英語) してください。

AI ソリューションに関する発表

マイクロソフトは、新しい AI ソリューションで Dynamics 365 を拡張。企業ユーザーの日常業務を変える、ビジネス クリティカルなシナリオの変革を実現。

Microsoft Dynamics 365 の AI ソリューションは、価値の高い複雑なビジネス シナリオを対象に、既存のプロセス、システム、データを考慮した設計となっています。主に、カスタマー ケア用のインテリジェント 仮想エージェント、カスタマー サービス スタッフ用のインテリジェント アシスタント、会話管理ツールなどでマイクロソフトの AI が活用されています。オーストラリア政府の福祉省、HP Inc、Macy’s、マイクロソフトでは既にこのテクノロジを採用し、顧客満足度の向上やリクエスト処理の時間短縮などを目的に活用しています。

AI 基盤の新ソリューションの詳細は、AI ソリューションのブログ記事 (英語) を参照してください。

Windows/Linux/Docker 用 SQL Server 2017 の一般提供

SQL Server 2017 の一般提供を開始

2017 年 10 月 2 日より、SQL Server 2017 を通常購入いただけるようになります。これにより、業界最高レベルのパフォーマンスとセキュリティを備えた SQL Server を、Linux および Docker コンテナー環境での運用ワークロードに使用して、お好みの言語と環境でインテリジェント アプリケーションを開発できるようになります。業界最高レベルのパフォーマンス、保証された先進的なセキュリティ機能、ビジネスを変革する組み込み済みの AI 機能、あらゆる場所のユーザーに情報を配信できるモバイル BI ツール などを体験していただけます。

2018 年 6 月 30 日以降、Linux のお客様は SQL Server から SQL Server 2017 にアクセスできるようになっており、年間サブスクリプションではさらにお得にご利用いただけます。ぜひこちらからお申し込みください。

Azure SQL Database の Native Scoring のプレビュー

Azure SQL Database で Native Scoring のプレビューを開始

Azure SQL Database の Native Scoring プレビューが開始され、RevoScaleR または RevoScalePy のパッケージで生成された機械学習モデルを Transact-SQL でスコアリングできるようになります。PREDICT 関数を使用すると、外部言語のランタイムを呼び出すことなくトランザクションの一部としてモデルにスコアを付けることができるため、パフォーマンスが低下しません。詳しくは、PREDICT 関数のドキュメント (機械翻訳) を参照してください。

Azure SQL Database Premium レベルの 4 TB ストレージ プール

Azure SQL Database Premium レベルで容量が拡張されたエラスティック プールの一般提供を開始

最大のコンピューティング能力を持つ Premium レベルのストレージ プールの容量が、1 TB を超える最大 4 TB に拡張されました。現在、一部のリージョンでの一般提供を開始しており、今後さらに多くのリージョンに拡大する予定です。詳しくは Azure ブログ記事 (英語) を参照してください。

Azure SQL Database の Virtual Network サービス エンドポイントのプレビュー

Virtual Network サービス エンドポイントで細かいセキュリティ管理が可能に

Azure SQL Database で Virtual Network サービス エンドポイントのパブリック プレビューが開始されました。特定のパブリック IP に対してファイアウォール ルールを設定し、すべての Azure サービスの IP からお客様のサーバーに接続することができます。接続を細かく制限するには静的パブリック IP をプロビジョニングする必要がありますが、大規模な環境の場合、管理が複雑でコストもかかります。Virtual Network サービス エンドポイントでは、仮想ネットワークの特定のサブネットから Azure SQL Database のサーバーへの接続を制限することができます。

Azure SQL Database の Vulnerability Assessment のプレビュー

Azure SQL Database で潜在的なデータベースの脆弱性を追跡して修復

Vulnerability Assessment (英語) は、Azure SQL Database サービスに組み込まれているスキャン サービスです。構成ミス、過剰なアクセス許可、機密データ漏洩などに関して、ベスト プラクティスからセキュリティ上の脆弱性や逸脱を特定するルールのナレッジ ベースを提供します。評価結果と共に問題解決のための実際的な手順が示され、カスタマイズされた修正用スクリプトが提供される場合もあります。評価レポートは環境ごとにカスタマイズ可能で、特定要件に特化させることもできます。

Cognitive Services のテキスト分析、Bing Search v7、Bing Custom Search の一般提供

Microsoft Cognitive Services のさまざまな技術が大きく進化しました。データ サイエンティストに頼ることなく、画像や音声認識、感情やセンチメントの検知、言語理解など、業界屈指の AI サービスを網羅した API およびサービス セットをアプリケーションに追加できるようになります。

今回の更新内容は以下のとおりです。

  • Text Analytics API の一般提供: 生のテキストに高度な自然言語処理を実行できるクラウドベースのサービスです。このサービスには、センチメント分析、キー フレーズ抽出、言語検出を行う API 関数が含まれます。
  • Bing Custom Search API が 10 月から一般提供され、高度なカスタマイズで対象を絞った Web 検索ができるようになります。これにより、商用レベルのサービスで、対象が限定された Web 空間からより適切な結果を得ることができます。わかりやすいユーザー インターフェイスを備えた Bing Custom Search は、コーディング一切なしで独自の Web 検索エンジンを作成できます。Web での検索の対象範囲を指定したり、最新の AI テクノロジを使用して識別したりできます。さまざまな規模のビジネス ユーザー、愛好家、起業家が、優れた Web 検索アプリケーションを設計しデプロイできるように、あらゆるシナリオに対応します。
  • Bing Search V7 が 10 月より一般提供され、地球上の莫大な知識をアプリケーションに組み込めるようになります。Bing Web Search API のクエリ パフォーマンスが向上し、すばやく検索結果を得られます。新しい並べ替えとフィルターのオプションでは、話題のニュース トピックや画像の中から関連性の高い結果を取得できます。またエラー メッセージが改良され、簡単にクエリのトラブルシューティングや診断を行うことができます。ドキュメントは最新状態に更新されるため、Bing Search API の能力を手軽に活用できます。
  • インテリジェントなボット構築や接続のための機能を搭載した Language Understanding Intelligent Service および Microsoft Bot Framework が年内に一般提供されます
  • さらなる機能がサービスに追加される予定です。
    • 製品マニュアルの簡単な質問に答えるシンプルなボットの構築、トレーニング、公開に使用するプレビュー版 QnAMaker API をリリースします。
    • Face API、Computer Vision API、Content Moderator の提供地域に、米国中南部、米国西部 2、米国東部、ブラジル、北ヨーロッパ、オーストラリア東部、東アジアの 7 つのリージョンが追加されます。

詳しくは Cognitive Services のブログ記事 (英語) を参照してください。

Machine Learning サービスの Hadoop 用 ML Server SA の一般提供

Hadoop Machine Learning Server のソフトウェア アシュアランス特典

Microsoft R Server ブランドを Microsoft Machine Learning Server に刷新すると同時に、購入方法や取得の手順を簡素化します。10 月 1 日より、SQL Server Enterprise Edition ユーザー向けの Hadoop/Spark 用 Microsoft Machine Learning のソフトウェア アシュアランス特典を提供します。10 月 1 日時点で新しいソフトウェア アシュアランス特典が有効な場合、Hadoop 用 Microsoft Machine Learning Server を SQL Server Enterprise Edition 2 コアごとに最大 10 個のサーバーで実行する権利が付与されます。

Microsoft R Server 単体 (データベース エンジン コンポーネントが付属しないもの) は、Microsoft Machine Learning Server という名称に変更されます。このサーバーは、SQL Server との同時購入のみの販売となります。機械学習や Microsoft Machine Learning Server のスケールやパフォーマンスを必要とするデータ サイエンティストを対象としており、データベース コンポーネントやその他のサービスは付属しません。

Linux Machine Learning Server のライセンスを SQL Server Enterprise Edition から付与

10 月 1 日より、Linux 用 Machine Learning Server のライセンスは SQL Server 2017 Enterprise Edition から付与されるようになります。SQL Server Enterprise Edition を通じた Windows 用 R Server のライセンス付与により、SQL プラットフォーム上の Linux ワークロード用 Machine Learning Server との一貫性が保たれます。

R Server から Machine Learning Server へ名称を変更

SQL R Services が SQL Server ブランドの傘下の Microsoft Machine Learning Services に変更されるのに伴い、Microsoft R Server は Microsoft Machine Learning Server という名称に変更されます。サポート言語が追加されたほか、機械学習機能への高度な分析ワークロード追加など、AI に重点が置かれています。

R および Microsoft ML ライブラリに加えて Python がサポートされたことにより機械学習機能がさらに強化され、SQL Server 2017 の企業向けの機能とオープン ソースのメリットを組み合わせた新しいインテリジェント アプリケーションを作成できるようになります。

Python はデータ サイエンスや機械学習アプリケーションで最も広く普及している言語です。マイクロソフトは 2 年前に Revolution Analytics を買収し R での開発を進めていましたが、お客様やユーザーのデータ サイエンスのニーズに応えられるよう、対応言語を拡大しています。

Power BI Desktop の新機能の一般提供

ご要望の多かった Power BI Desktop の新機能がビジネス アナリストの皆様に向けてリリースされました。

他のレポート ページへのドリル スルー: ドリル スルー フィルターを使用すると、顧客、メーカー、製品、場所などのモデル内の単一の「エンティティ」の詳細ページをレポート内に作成し、レポート全体の「エンティティ」列を参照する任意のデータ ポイントを使用して、フィルターのコンテキストに一致するドリル スルー ページに移動できます。

増減の理由の説明 (プレビュー): この機能では、折れ線グラフのデータ ポイントかバーを右クリックし、そのデータ ポイントが以前のポイントよりも増加または減少している理由を入力できます。該当するデータに対してインサイト機械学習アルゴリズムを実行し、値の増減の原因となっているカテゴリのグラフをポップアップ ウィンドウで表示します。

Visio visual (プレビュー): Visio visual を使用すると、ユーザーが求める形式で Power BI データを表示できます。ビジネス プロセスのワークフローやフロア プランなどの設計図を Visio でデザインして、すばやく Power BI に連携することができます。基盤となる Power BI のデータは、図形のプロパティに基づいて自動でインテリジェントにリンクされるため、手動でリンクを作成する必要はありません。これは非常に優れた描画機能で、Visio の図をインタラクティブな Power BI 表示に変換し、情報に基づくすばやい意思決定を支援します。こちらのブログ記事 (英語) で Visio visual の詳細をご確認のうえ、Office ストア (英語) からダウンロードしてください。

ESRI Plus: 先日、ArcGIS Maps for Power BI の一般提供を発表いたしました。Power BI と ArcGIS の統合により、ビジネス ユーザーは、これまで専用ツールに限定されていた地図や高度な GIS 技術を使用した新しいデータ活用ができるようになります。Esri とマイクロソフトは、Ignite で発表された ArcGIS Maps for Power BI の新しい Plus サブスクリプションを通じて、このエクスペリエンスをさらに強化してまいります。Plus サブスクリプションでは、地図、世界の統計データ、検証済みの整形されたデータなどを利用して、精密なグラフィックを作成し、将来の計画や意思決定に利用できます。この新しいサブスクリプションは、第 4 四半期に Esri から提供されます。詳しくは、こちら (英語) を参照してください。最新の Power BI Desktop をダウンロードして今すぐ新機能をお試しください。今回ご紹介した新機能やその他の機能の詳細については、Power BI ブログ (英語) をお読みください。

Azure Cosmos DB のデータベース監査機能の一般提供

Azure Cosmos DB のデータベース アカウントの監査機能

Azure Cosmos DB の Azure 診断ログ (英語) の一般提供を開始いたします。これは、各データベース アカウントに対するすべての要求のログを要求レベルで個別に確認する機能です。診断ログでは、データベースにアクセスされた日時とアクセス方法を追跡できます。また、特定ユーザーのログの保存先を簡単に構成できます。保存先には、ストレージ アカウント、Event Hubs、Operation Management Suite の Log Analytics を選択できます。

Azure Cosmos DB と Azure Functions の統合のプレビュー

Azure Cosmos DB Azure Functions をネイティブに統合

Azure Cosmos DBAzure Functionsネイティブに統合 (英語) され、Azure Cosmos DB アカウントから簡単に直接トリガー関数を追加できるようになりました。トリガー関数の特徴は、呼び出しをトリガーするように設定したイベントの発生時にのみ実行されることです。Azure Functions と Azure Cosmos DB を使用することで、イベント主導型の世界規模のサーバーレス アプリの構築およびデプロイが実現します。さらに、きわめて低いレイテンシで、膨大な数の世界中のユーザーに関する豊富なデータにアクセスできます。

Azure Cosmos DB の新しいメトリックとヒートマップの一般提供

Azure Cosmos DB の新しいメトリックとヒートマップ

新しいメトリックとヒートマップの一般提供が発表されました。これにより「ホット パーティション」問題の検出とトラブルシューティングが容易になります。スロットリング シグナルからパーティションのヒートマップおよび問題のパーティション キーのレコードへの移動をわずか 2 クリックで操作することができます。スループット、可用性、レイテンシ、SLA の一貫性に対するリージョンごとの使用状況パフォーマンスをすべて把握できます。詳しくはメトリック ドキュメントのページ (英語) の発表内容をご確認ください。

Azure Data Factory の更新のプレビュー

料金 | Data Factory

Azure Data Factory は完全に管理されたクラウドのデータ統合サービスで、データの移動と転送を自動化します。ファクトリを作成して監視することで、生のデータ ポイントを有意義なビジネス情報に変換し、ビジネスを成長させるための意思決定に活用することができます。データ主導型ワークフローをオーケストレーションし、オンプレミスとクラウドのデータ ストアの間でデータを移動したり、Apache Spark for Azure HDInsight、SQL Server、SQL Database、SQL Server Integration Services (SSIS)、Azure Data Lake Analytics などのコンピューティング サービスを使用してデータを処理したりできます。

現在パブリック プレビュー中の Azure Data Factory の新機能を使用すると、クラウドや自社ホスト ネットワークなどのデータの格納場所にかかわらず、大規模な ETL/ELT ワークフローの作成、スケジュール、オーケストレーションを実行するハイブリッド データ統合を構築することができます。セキュリティとコンプライアンスのニーズに対応した広範な機能を活用しながら、使用した分のみの料金を支払います。また、サービスでネイティブな複数のデータ ソース コネクタを使用してデータ統合を加速できます。現在パブリック プレビュー中の SSIS では、Data Factory の新しいマネージ SSIS ホスティング機能を使用して SSIS パッケージを容易にクラウドに移行できます。

マイクロソフトは、すべての機能におけるエンタープライズ クラスの安全性を保証します。

  • クラウドや自社ホスト ネットワークなどデータの場所を問わず、データ統合ワークフローをオーケストレーションします。
  • 複数のネイティブなデータ コネクタと完全なマネージド サービスとしてのデータ移動機能により、データ統合を加速します。
  • Azure のビッグ データ、および Azure HDInsight や Azure Data Lake Analytics などの高度な分析サービスにより、既存のデータ ウェアハウスを刷新します。
  • SSIS ワークロードをクラウドに容易に移行します。

Data Factory の新機能は、米国東部リージョンでパブリック プレビューが提供されています。料金の詳細は料金ページを、Data Factory の詳細は製品ページを参照してください。

Azure SQL Database の適応型クエリ処理の一般提供

Azure SQL Database の適応型クエリ処理をサポート

SQL Server 2017 および Azure SQL Database に新世代の適応型クエリ処理が導入され、アプリケーションのワークロードのランタイム条件を最適化できるようになりました。適応型クエリ処理機能の初期バージョンには、バッチ モード適応型結合 (英語)バッチ モード メモリ割り当てフィードバック (英語)マルチステートメント テーブル値関数の交互実行 (英語) の 3 つの機能強化が実装されています。

Azure SQL Database でのグラフ サポートの一般提供

Azure SQL Database でグラフをサポート

データ量の増加と複雑化が急速に進む中、データ間の複雑なリレーションシップを解決するためにスキーマやクエリの設計を最適化しなければなりません。グラフ データベースはノードとリレーションシップがシンプルなリンク構造になっており、複雑なモデリングにも対応できます。Azure SQL Database では、完全統合されたグラフ データベースの拡張機能がリリースされ、グラフ オブジェクトを使用してグラフ スキーマを定義できるようになりました。また、T-SQL 言語の拡張機能により、パターン検出やマルチホップ ナビゲーションなどが可能になります。グラフ サポートの詳細は、TechNet ブログ (英語) を参照してください。

Azure SQL Database の Intelligent Insights のプレビュー

Azure SQL Database Intelligent Insights にパフォーマンス低下診断ログが登場

Azure SQL Database に組み込まれたインテリジェント機能では、データベースの使用状況を常時監視し、パフォーマンス低下の原因となる危険なイベントを検出すると Intelligent Insights 診断ログを生成します。このログでは、パフォーマンス低下の根本原因の詳細を確認でき、可能な場合はその改善策も示されます。この機能を Azure Log Analytics やサードパーティ製ソリューションと組み合わせて、アラートやレポートをカスタマイズすることもできます。

Power BI サービスの新機能の一般提供

Power BI では、ユーザーやビジネス アナリストの皆様に向けて皆様からのご要望の多く寄せられた新機能が一般提供されます。

Power BI アプリの一般提供: 組織全体に柔軟な方法でコンテンツを配布できる新しい Power BI アプリの一般提供を開始いたします。

Power BI Premium 機能の追加により、大規模モデル、仮想コア、スケールアップ機能などが利用できるようになります。企業向け機能の追加には、AAD B2B、データ系列、高度な管理機能、ユーザー レベルの使用状況メトリックなどが含まれます。こちらからサインインして、ぜひ新機能をご利用ください。今回ご紹介した機能やその他の新機能については、Power BI ブログ (英語) にてご確認ください。

SQL Data Warehouse 分析ワークロード用の新しい高パフォーマンス サービス レベル

ミッション クリティカルなアプリケーションでより高いコンピューティング能力を必要とするお客様に向けて、SQL Data Warehouse で 2 つのサービス オプションの提供を開始いたします。これにより、クラウドにおける分析パフォーマンスと規模を大幅に向上した、新しい「コンピューティング最適化」パフォーマンス サービス レベルのプレビューをご利用いただけます。コンピューティングに最適化されたサービス レベルでは、30,000 Data Warehouse ユニットまでスケーリングできるように強化されています。プレビューはこの秋から開始される予定です。

Azure App Service での Premium サービス レベルの一般提供

Azure App Service で新たに Premium サービス レベルが一般提供となります。このオプションでは、より高速なプロセッサ、SSD ストレージ、同一コアに対して従来のコンピューティング イテレーションの 2 倍の容量のメモリが搭載された Dv2 シリーズ VM を採用しています。これは、高いパフォーマンスとスケーラビリティが必要なアプリに理想的と言えます。詳しくはブログ記事 (英語) を参照してください。

Azure Functions での .NET Core のサポート

Azure Functions で .NET core がサポートされ、.NET Core を対象とした関数コードを使用できるようになります。これにより、開発者はクロスプラットフォームの .NET Core コード資産をサーバーレス環境で使用できるようになります。さらに、Windows、Mac、Linux のあらゆる開発プラットフォームのローカルで、関数の開発とデバッグを行うことができます。詳しくはブログ記事 (英語) を参照してください。

Azure Functions での Microsoft Graph バインディングのサポート

Azure Functions では、個別のデータ ソースの煩雑さに関係なくコード内から宣言的にデータに接続できる、バインディングという機能を提供しています。このサポートをさらに強化し、開発者が独自のバインディングを構築できるようにしました。これにより、カスタム データ ソースの Azure Functions 用のバインディング作成が容易になります。また、開発者以外のユーザーもサーバーレス関数を構築し、カスタム データ ソースをシームレスに操作することができます。

Microsoft Graph 用と Office 用のバインディングが新たに提供されます。Graph や Office の複雑な API を使用せずともサーバーレス コードから Graph や Office の情報を変更でき、非常に便利です。

詳しくはブログ記事 (英語) を参照してください。

Azure Service Fabric の新機能

Service Fabric の更新版のリリースと同時に、すべてのリージョンを対象とした Service Fabric 上の Linux コンテナーのオーケストレーション機能が一般提供されます。今回の発表により、リソースのガバナンス、DNS サービス、コンテナー ログの OMS との統合、ボリューム ドライバーのサポートなど、Windows Server コンテナーと同等の豊富な機能を Linux でも使用できるようになります。また、今回のリリースから Docker Compose API のサポートがプレビューとして提供され、compose.yaml ファイルを再利用できるようになります。さらに、Linux クラスターで実行される Service Fabric のサポート OS に Ubuntu 16.04 が追加されます。

このほか、ステートレスおよびステートフルな Reliable Services を含む Java および .NET Standard 2.0 のプログラミング モデルのプレビューがリリースされます。ステートフルな Reliable Services では、サービス実行中のノードと同じノードにデータを自動的に配置し、データと演算処理を近づけることでレイテンシを短縮できます。さらに、使いやすい C# および Java の Reliable Actors プログラミング モデルもリリースされます。

Azure OSS DevOps による Azure Cloud Shell の Hashicorp Terraform サポート

Terraform Azure のサポートを強化

Terraform は Hashi Config Language (HCL) に基づいて API を宣言的な構成ファイルとして体系化した HashiCorp のオープン ソース ツールです。HCL は、チーム間での共有、コードとしての取り扱い、編集、レビュー、バージョン管理などを行うことができます。AzureRM Provider (英語) への Azure リソースの新規追加に伴い、Terraform が Azure Cloud Shell に直接組み込まれます。また、新しい Azure 用 Terraform モジュール (英語) により、Azure でさらに便利に Terraform を使用できるようになります。詳しくは、Azure ブログの記事 (英語) を参照してください。

Visual Studio Mobile Center プレビューで Android 8.0 Oreo をサポート

Android 8.x Oreo で信頼性の高いアプリケーション構築をする開発者の皆様に向けて、Visual Studio Mobile Center のテスト サービスで Oreo プラットフォームをサポートいたします。マイクロソフトのデータセンターでは、実際の Oreo デバイス プラットフォームを複数提供しており、今後数か月以内にさらなるデバイスを追加予定です。実際に使用される環境を正確に反映した主要サンプル デバイスでテストを実施できます。サンプル デバイスには、Android 2.2 FroYo までさかのぼる数百種類の Android デバイスと OS プラットフォームが含まれます。

Visual Studio Mobile Center プレビューで iOS 11 をサポート

Apple の最新 iOS 11 で信頼性の高いアプリケーション構築をする開発者の皆様に向けて、Visual Studio Mobile Center のテスト サービスでこのプラットフォームをサポートいたします。マイクロソフトのデータセンターでは (シミュレーションではない) 実際の iOS 11 デバイス プラットフォームを複数提供しており、今後数か月以内にさらなるデバイスを追加予定です。実際に使用される環境を正確に反映した主要サンプル デバイスでテストを実施できます。サンプル デバイスには、iOS 8 までさかのぼる数百種類の iOS デバイスと OS プラットフォームが含まれます。

Visual Studio Mobile Center プレビューの Continuous Export

Visual Studio Mobile Center ユーザーがデータの管理や操作に他の Azure サービスを使用できるようにするため、Application Insights と Blob ストレージの 2 つの主要 Azure サービスに統合する Continuous Export 機能を提供いたします。

Mobile Center SDK を追加し Continuous Export を Application Insights で有効化すると、ファネルやユーザー フロー、保持期間、ワークブック、カスタム クエリ機能などの高度な分析機能や、その他の Application Insights の高度な分析ツールのホストなどに安定的にデータを提供します。

Azure Blob ストレージは、テキスト データやバイナリ データなどの非構造化オブジェクト データを大量に保存するサービスで、HTTP または HTTPS を通じて世界中どこからでもアクセスできます。Blob ストレージで Continuous Export を有効化すると、プライベートまたはパブリックなデータ格納、自動スケーリングが可能になるほか、必要な期間データを保持していつでもアクセスすることができます。

強化された新しい Azure Active Directory Cloud App Discovery の一般提供

従業員の 80% 以上が、未承認の SaaS アプリを業務目的で使用しています。クラウドを採用していない企業でも、従業員が個人で使用している場合があります。データを保護するためには、まず可視性を確保することが重要です。把握している範囲外を守ることはできません。

Azure Active Directory Premium P1 の機能を持つ Azure Active Directory Cloud App Discovery が強化され、組織でクラウド アプリの使用状況を詳細に把握できるようになりました。この最新エクスペリエンスは Microsoft Cloud App Security を基盤としており、追加コストなしでご利用いただけます。

使用を開始する場合は、Azure Active Directory の資格情報で強化された新しいエクスペリエンスにサインインしてください。Cloud App Discovery の詳細については、こちらのドキュメントを参照してください。

System Center Configuration Manager の共同管理 (ConfigMgr+Intune) に関する発表

デジタル改革で IT インフラストラクチャ、ポリシー、プロセスを刷新することで、コストの削減、デバイスやアプリ管理の簡素化を実現し、より優れたエクスペリエンスをユーザーや IT プロフェッショナルに提供できるようになります。Microsoft 365 はデジタル改革を目的に設計されており、今回新たに Windows 10 および Office 365 ProPlus をクラウドからデプロイおよび管理する機能が強化され、Microsoft 365 のメリットを最大限に活用できるようになります。

既存の System Center Configuration Manager (ConfigMgr) ユーザーは、共同管理を使用して最新の管理機能にアクセスできるため、ConfigMgr エージェントと Intune MDM の両方で Windows 10 デバイスを管理できます。たとえば、VPN プロファイル、OS の更新、条件付きアクセスの管理を ConfigMgr から Intune に移行し、引き続き ConfigMgr で詳細なデバイス セキュリティの強制適用などのワークロードを使用することも可能です。今後、より多くのワークロードを Intune に移行できるようになる予定です。これにより、クラウドベースの管理を小規模で管理しやすい方法で開始し、リスクを抑えながら思いどおりの制御性を維持することができます。

Intune パートナーの Jamf を統合

Jamf  と Microsoft Enterprise Mobility + Security (EMS) の提携に伴い、Azure AD 認証を使用したアプリケーションにアクセスする Mac デバイス向けの自動コンプライアンス管理ソリューションが発表されました。EMS は ID 主導型の独自のエンドポイント管理ソリューションであり、デジタル改革におけるモバイルおよびセキュリティに関する課題を総合的なアプローチで解決できます。Jamf は、標準的な Apple エコシステム管理ソリューションです。Jamf は、Mac デバイスの管理状態や正常性に関する情報を Microsoft Intune のデバイス コンプライアンス エンジンに提供します。Azure AD Conditional Access と統合されているため、管理対象外のコンプライアンスに準拠していない Mac デバイスを特定して対応することができます。

Microsoft Cloud App Security のプロキシ機能のプレビュー

Microsoft Cloud App Security によるクラウド アプリのアクセス制御と制限

情報漏えいの 80% 以上が、パスワードの盗難やパスワード強度の不足によるものです。強力な条件付きアクセス戦略を策定し、フロント ドアを狙った攻撃から企業を保護することが重要です。Azure Active Directory Conditional Access を使用すると、アクセス条件、継続的なサイバーセキュリティ脅威インテリジェンス、リスク シグナルなどを、リアルタイムでのアクセス制御に設定することができます。マイクロソフトは Ignite にて、この条件付きアクセス機能を Microsoft Cloud App Security に拡張することを発表しました。

Azure AD Conditional Access と統合された Microsoft Cloud App Security では、リアルタイムでクラウド アプリケーションを監視、制御できるようになります (2017 年 10 月よりプレビュー開始)。クラウド アプリのユーザー セッションで実行されるアクティビティを、ユーザー ID、場所、デバイス、検出されたサインイン リスク レベルなどに基づいて制限および制御できます。Conditional Access のポリシーを使用すると、Cloud App Security のプロキシを通じてセッションを制限することができます。たとえば、知らない場所や管理対象でないデバイスに対して、クラウド アプリへのアクセスは許可しつつ、機密ドキュメントのダウンロードを禁止することができます。詳しくは製品ページを参照してください。

Azure HDInsight と OMS の統合のパブリック プレビュー

Azure HDInsight での Interactive Data Warehouse の一般提供、および Azure Log Analytics 統合のパブリック プレビュー

HDInsight に 2 つの機能が追加されました。HDI Interactive Query (旧称 Interactive Hive) では、クエリのインタラクティブ性とパフォーマンスを向上させるインメモリ キャッシュが使用できるようになりました。また、Azure Log Analytics 統合がパブリック プレビューにて提供されることになり、ログとメトリック データをプロアクティブに監視および分析して、リソース全体の可用性やパフォーマンスの最適化に活用できるようになりました。機能詳細については、Web ドキュメントを参照してください。

Power BI Embedded に関する発表

Microsoft Power BI で性能ベースの SKU Power BI Embedded に導入

10 月初旬に、Power BI Embedded に性能ベースのサービスが新たにリリースされます。Azure インフラストラクチャ上でアプリを構築するのと同様に、Power BI の機能を使用して魅力的なグラフィック、レポート、ダッシュボードを手軽にインテリジェント アプリに追加できるようになります。Power BI Embedded では、Power BI 付属のグラフィックを使用することも新たに自身で作成することもできます。また、無数のデータ ソースに接続してユーザーに情報を公開したり、ビジネスやユーザーの要件に基づいてアプリやサービスのニーズを容易に管理したりできます。さらに、Azure でのトランザクション、構築、デプロイが可能なため、包括的な API セットや完全にドキュメント化された SDK を活用してアプリの開発期間を短縮することができます。詳しくは製品ページを参照してください。

Microsoft Azure Information Protection であらゆるユーザーのメールを保護

Office 365 Message Encryption の新機能と機能強化の一般提供を開始

Azure Information Protection を基盤とする Office 365 Message Encryption の機能が強化され一般提供されました。今回の機能強化では、社内および社外のあらゆるユーザーと保護された電子メールを簡単に共有できるようになります。受信者は、保護された Office 365 のメールを、主なメール クライアント、および Gmail、Outlook.com、Live.com などの一般メール サービスで読むことができます。詳しくは Office 365 ブログ (英語) を参照してください。

さらに、コンプライアンス ニーズへの対応として、Exchange Online で Bring Your Own Key (BYOK) をサポートいたします。この詳細はこちらの技術ドキュメントを参照してください。

Azure Active Directory のアクセス レビューのプレビュー

Azure Active Directory のアクセス レビューのプレビューを開始

Azure Active Directory に新たに導入された新機能では、ハイブリッド環境やクラウド サービス全体におけるアクセス対象とユーザー権限を企業が制御できるようになります。現在プレビュー期間中の機能は以下のとおりです。

  • グループのアクセス レビューを開始すると、グループ メンバーシップ継続の必要性を証明するように、グループの所有者やメンバーに依頼することができます。
  • アプリケーションに対するアクセス許可を継続する必要性の再認定を、エンタープライズ アプリケーションへのアクセス許可を所有するユーザーや社内のその他のユーザーに依頼することができます。アクセス レビューの再認定エクスペリエンスでは、アプリケーションに対するユーザーのサインイン履歴などのアクセス概要を表示することで、わずらわしい構成証明に対処しやすくなっています。

アクセス レビューは、Azure AD Premium P2 サービスの一部として提供されます。詳しくはこちらのドキュメントを参照してください。

Azure AD Conditional Access の新しい条件とコントロールのプレビュー

Azure Active Directory の条件付きアクセスの機能強化のプレビュー

Azure Active Directory の条件付きアクセスの強化に伴い、新たな条件およびコントロール セットのプレビューが提供されます。

  • リアルタイム監視の新しいコントロールは Cloud App Security との統合が基盤となっており、承認済みどうかにかかわらず、クラウド アプリケーションの使用状況を IT 担当者が制御できます。SaaS アプリケーション上のユーザー操作には、条件付きアクセス ポリシーに基づいた制限や制御が可能です。たとえば、知らない場所や管理対象でないデバイスに対して、クラウド アプリへのアクセスは許可しつつ、機密ドキュメントのダウンロードを禁止することができます。
  • ファイル レベルでのセキュリティをさらに強化するため、機密ファイル向けの条件付きアクセスが導入されます。Azure Information Protection と Azure Active Directory の統合により、条件付きアクセスを設定して、Azure Information Protection で保護されたドキュメントへのアクセスを許可および禁止できるようになりました。また、多要素認証やデバイス登録などの高度なセキュリティ要件を強制適用することもできます。
  • サインイン前またはエンタープライズ アプリケーションへの初回アクセス時に、ユーザーはプラットフォーム、ユーザー、アプリ、リスク条件などに基づく完全にカスタマイズされた使用条項ドキュメントを参照し承諾する必要があります。
  • 管理者は、2 つ目の認証要素プロバイダーを矯正的に使用するように、プラットフォーム、ユーザー、アプリ、場所、リスク条件に基づくポリシーを設定することができます。今回のプレビューで対応したサードパーティ認証ベンダーは Duo、RSA、Trusona です。
  • アプリケーション ベースの条件付きアクセス (MAM ポリシー): MDM のコンプライアンスに準拠したデバイスで実行中の MAM ポリシーを強制適用して、SaaS からモバイル アプリへのアクセスを制限できます。
  • Windows 10 VPN クライアントで条件付きアクセス ポリシーを使用できます。
  • 国や地域の IP アドレスに基づく新しい条件を使用できます。

詳しくはこちらのドキュメントを参照してください。

Microsoft Cloud App Security の AIP 自動ラベリングのプレビュー

クラウド アプリの機密ファイルを分類し自動でラベルを付与

マイクロソフトの情報保護ソリューションでは、保存場所や共有されている場所にかかわらず、データの検出、分類、保護、監視が実現します。重要なポイントは、より一貫して統合された分類、ラベリング、保護のアプローチを情報保護テクノロジ全体に採用し、持続的にデータを保護することです。

クラウド アプリの情報保護に関して、Microsoft Cloud App Security では細かい制御ポリシーをカスタマイズして適用することで、高度な修正操作を実行できます。マイクロソフト製またはサードパーティ製にかかわらず、出荷時のままのポリシーや自身で作成したポリシーを、Box、Dropbox、Salesforce などのクラウド アプリにすぐに適用できます。また、Microsoft Cloud App Security では Azure Information Protection でネイティブに設定されている分類ラベルを使用して、ファイルの検疫、ネイティブな暗号化、分類に基づく共有削除、ファイルの共有レベルなどのさまざまなガバナンス操作を強制適用できます。

マイクロソフトは、クラウド アプリの情報保護機能の開発に力を入れています。マイクロソフトの情報保護機能により、Microsoft Cloud App Security はクラウド アプリのファイルをスキャンして分類し、暗号化を含む Azure Information Protection のラベルを自動適用して保護できるようになります (2017 年 10 月にパブリック プレビューを開始)。

EU データセンターにおける Microsoft Cloud App Security のサポート

2017 年 10 月より、Azure の西ヨーロッパ リージョンで Microsoft Cloud App Security の提供を開始し、ヨーロッパでのユーザー サービスの向上と共にコンプライアンス要件のサポートが実現します。

System Center Configuration Manager の複合権限と Intune Data Importer

System Center Configuration Manager を Microsoft Intune (ハイブリッド MDM) に接続して使用しているお客様より、Azure で Intune を使用したクラウド専用エクスペリエンスに移行したいという要望が多数寄せられていました。これを実現することで、規模の拡大、統合管理コンソール、RBAC などの多くの新しいメリットが得られます (英語)。お客様の移行支援として、ハイブリッド MDM から Intune 単体環境への新しい移行プロセスを導入いたします。

従来、ハイブリッド MDM から Intune 単体環境に移行するには、一度でテナント全体を移動して権限を切り替える必要があり、全デバイスの再登録などの Intune 設定を管理者がすべて構成し直す必要がありました。新しいアプローチでは、エンド ユーザーに影響を与えることなく、制御しやすい方法でハイブリッド MDM から Intune 単体環境に移行できます。このプロセスは、Microsoft Intune Data Importer、複合権限、改良された MDM 権限切り替えの 3 フェーズで構成されます。

詳しくはこちらのブログ記事 (英語) を参照してください。

G シリーズおよび H シリーズの料金値下げに関する発表

H シリーズおよび G シリーズ VM を値下げ
10 月 1 日より、H シリーズおよび G シリーズの VM が最大 21% 値下げされます。H シリーズの値下げは、米国東部、西ヨーロッパ、東日本、米国中北部の各リージョンで実施されます。G シリーズの値下げは、オーストラリア東部、カナダ東部、カナダ中部、イギリス南部、米国政府機関バージニア、ドイツ中部の各リージョンで実施されます。

H シリーズ VM は、金融リスク モデリング、地震や油層のシミュレーション、分子モデリング、ゲノム研究などのハイ パフォーマンス コンピューティングに最適です。G シリーズ VM は、特に SAP HANA、SQL Server、Hadoop、DataZen、Hortonworks の大規模データベース ワークロードに最適です。

料金の詳細は Virtual Machines の料金ページ、サービスの詳細は Virtual Machines の Web ページを参照してください。

アプリケーション セキュリティ グループのプレビュー

アプリケーション セキュリティ グループのパブリック プレビューを発表

セキュリティに関して、複数の論理階層や異なるアプリケーション ロールのワークロード間で、ネットワーク アクセスを細かく制御したいというユーザーのニーズがあります。

アプリケーション セキュリティ グループ (ASG) では、Azure Virtual Machines のセキュリティ定義を簡素化し、ユーザーが定義したグループに基づいてネットワーク セキュリティ ポリシーを容易に管理できます。

ユーザーは、明示的な IP アドレスを使用することなく、アプリケーションやロール、階層などの任意の抽象化レイヤーに基づいて VM をグループ化できます。同一の VM が同時に複数の ASG に参加することも可能で、複数の異なるポリシーを同一 VM に適用することができます。

また、ネットワーク セキュリティ グループ (NSG) のルールを使用してセキュリティ ポリシーを定義することもできます。NSG は仮想ネットワークのサブネットや個別の仮想マシンに適用することが可能で、柔軟かつ容易にワークロードのセキュリティを設定できます。

また、ASG と NSG のスケーリングも可能で、VM の新規作成中に適切なアプリケーション セキュリティ グループに割り当てるだけで VM のセキュリティを設定できます。

アプリケーション セキュリティ グループは、無料でご利用いただけます。

詳しくはアプリケーション セキュリティ グループのドキュメントを参照してください。

To SQL or not to SQL

$
0
0

I was on tour last week at @SQL_Relay and gave a talk on CosmosDB at

To SQL, or not to SQL: that is the question: Whether ’tis nobler in the mind to suffer The tweets and articles of outraged fanatics, Or to code structured queries against a sea of data, And by opposing end them?

To dice: To slice; No more;

and by a sleep state to say we end The head-ache and the continual knocks that sql is heir to,

’tis a computation devoutly to be wish’d.

To query, to sql; To sql: perchance to dream:

ay, there’s the resultset;

For in that unstructured code what dreams may come When we have shuffled off this SQL foolishness,

Must give us pause: there’s the respect That makes calamity of so long running queries; For who would bear the cast and convert of datetimes, The processors of strings, the proud man’s CLR, The hangs of revised plans, the  3rd normal forms law’s delay, The insolence of office365 and the spurns That patient merit of the unworthy takes, When he himself might his query make With a bare vm? who would install sql server, To grep and awk  under a linux prompt,

But that the dread of something after SQL, The undiscover’d country from whose bourn No dba returns, puzzles the will And makes us rather bear those ills we have Than try other data stores that we know not of? Thus conscience does make cowards of us all; And thus the native hue of screen resolution Is sicklied o’er with the pale cast of management studio, And the enterprise edition of great pith and moment With this regard many a dba turns old, And lose the name of action– SQL Relay you now! The fair SQL Server! in thy master database Be all my sins remember’d.


Azure Machine Learning の新機能の詳細

$
0
0

執筆者: Matt Winkler (Group Program Manager, Machine Learning)

このポストは、9 月 25 日に投稿された Diving deep into what’s new with Azure Machine Learning の翻訳です。

 

このたび、Azure Machine Learning が大幅に更新され、データ サイエンティストがあらゆる規模のモデルを構築、デプロイ、管理、監視するためのツールが提供されました。この 6 か月間、これらのツールのプライベート プレビューを実施し、100 社以上の企業にご参加いただきました。今回、この更新を皆様にお届けできることを光栄に思います。今回の記事では、Azure Machine Learning に関してマイクロソフトがこれまでに学んだこと、今日のお客様に見られる傾向、新機能を開発するうえで検討した主要な設計ポイント、新機能の詳細について説明します。

これまでに学んだこと

3 年前にリリースされた Azure Machine Learning Studio は、経験を積んだデータ サイエンティストとこの分野に新規参入するお客様の両方が ML モデルを簡単に作成、デプロイできるように設計されたツールです。Azure Machine Learning Studio では、構築した実験のサーバーレス トレーニングを (この用語が誕生する前から) 実現しており、グラフィカル インターフェイスで豊富なモジュール セットから選択するだけで実験を作成し、ワンクリックで Web サービスとしてデプロイすることができます。このサービスでは、データ サイエンティストが構築した数十万種類のモデルに対する何十億ものスコアリング要求を処理します。以下に、お客様による優れた活用事例をご紹介します。

マイクロソフトは長期間にわたり、一段階上の強力な機能と制御性を求めるお客様と協力してきました。今回の発表された機能は、このご要望にお応えするものです。お客様が実施しているデータ サイエンスのワークフローを詳細に確認したところ、以下の段階から構成されることが判明しました。

Business goals

主な傾向

この数年間、マイクロソフトはあらゆる業界のお客様と接してきました。お客様によって ML の経験も異なれば、解決している問題の分野も異なります。この経験から以下のような傾向が判明しました。

開発者による ML AI の採用が増加: 開発者の皆様との話の中で、パーソナライズされた生産性の高い没入型のエクスペリエンスを構築したいという声がよく聞かれます。アプリの作成方法の一環として、ML や AI 機能は着実に浸透しつつあります。マイクロソフトの社内でも、開発しているアプリケーションに AI を使用する開発者が増加しています。特に興味深い例として、PowerPoint チームによる 2 つの活用方法が挙げられます。同チームは Microsoft Cognitive Services を活用して、リアルタイムで翻訳や字幕作成を行う機能と、箇条書きリストからタイムラインを作成する (英語) 言語認識ツールを開発しました。Microsoft Cognitive Services は、すぐに使用可能な 30 種類の AI API セットで構成されており、アプリケーションの強化を目的として数十万人の開発者に使用されています。AI に対する開発者の需要は増大する一方で、これらの新機能を使用したソフトウェアの作成方法が進化するにつれて、企業では自社のデータを基盤とする AI を容易に活用できるようにする方法がより一層求められています。

ハイブリッドでのトレーニングとスコアリング: データ要件はお客様によって異なり、データや決定を保存できる場所を判断するには、コンプライアンス、コスト、規制、物理的要因、既存のプロセスやアプリケーションなどのあらゆる要素が関係します。そのため、データの管理や移動に関する課題が生じると共に、あらゆるデータを扱えるツール、サービス、フレームワークが必要になります。また、モデルをさまざまな場所にデプロイできる必要もあります。多くのお客様が大量のデータをデータ レイクに集約し、Spark などのツールを使用してデータの準備と分析を行っていますが、生成されたモデルはさまざまなフォーム ファクターにデプロイする必要があります。ハイブリッドのパターンには、主に 2 種類あります。1 つ目は、オンプレミス システムに保存されている機密データを使用してモデルのトレーニングを行い、クラウドやアプリケーションにデプロイするパターンです。2 つ目は、クラウド (IoT アプリケーションなど) に取り込まれた大量のデータを使用してモデルのトレーニングを行い、そのモデルをオンプレミスや非接続型環境にデプロイするパターンです。

可能な限りイベント近い場所でスコアリングを実行: 前述のポイントに関連して、開発者が場所を問わずにモデルを使用できることの重要性が高まっており、エッジやデバイス上でのスコアリングが増加しています。先日、Custom Vision Service ではトレーニング済みの認識モデルを CoreML に出力して iOS から直接使用できる (英語) 機能を実現しました。IoT 分野のお客様は、モデルをデバイスに直接配置したり、独立して実行できるゲートウェイ デバイスに配置したりする方法を求めています。レイテンシに対応したいという場合でも、非接続時にもスコアリングをサポートしたいという場合でも、場所を問わずにモデルのトレーニングを柔軟に実行し、可能な限りイベントに近い場所でスコアリングを実行するようにデプロイ先を制御したいと考えています。

ハードウェア、フレームワーク、ツールの多様化が加速: この分野に携わっていて興味深いことの 1 つに、スタックのすべての層において驚くべきスピードでイノベーションが進行していることが挙げられます。目もくらむほどの種類のツールが提供されており、それぞれが魅力的な特長を備えています。ハードウェア レイヤーでは、CPU、GPU、FPGA などの処理能力が指数関数的に向上しています。このイノベーションの結果、徐々にツールチェーンが成熟し、ハードウェア レベルでも特定のワークロードへの最適化が進み、お客様がコスト、レイテンシ、制御性のバランスを取りながら調整できるようになります。短期的には、お客様がさまざまなツール セットを試用して、自社のユース ケースに最適なものを発見しようとしている段階にあります。

設計ポイント

このように学んだことを踏まえ、マイクロソフトは今回の新機能を作成するにあたって、以下の 4 項目に重点を置いて設計を行いました。

大規模な機械学習

マイクロソフトが開発するサービスやツールは大規模で動作する必要があります。お客様は現在、少なくとも以下の 5 つの側面で「規模」の問題を抱えています。

あらゆるデータに対して動作する: お客様は、大規模なモデルの構築に必要なすべてのデータにアクセスできる必要があります。多くの場合、そのためにはデータ レイク内の増加を続けるデータに対して Spark などのツールを使用しますが、問題はそれだけではありません。お客様はデータを発見して取得してから、データを理解して整形する必要があります。データ サイズが増大しても各段階でボトルネックが発生しないように、マイクロソフトのツールは、ローカルの CSV ファイルからクラウド上のペタバイト規模のデータ レイクまで、あらゆる規模に合わせてスケーリングできる必要があります。

増大するコンピューティング ニーズに対応する (スケールアップとスケールアウト): データ量の増加以外に、マイクロソフトが使用している手法では処理能力をスケーリングする必要があります。これに対応するには、巨大なデータセットをインメモリで直接処理できるマシンや、ディープ ラーニング用の最新の GPU を搭載したマシンにお客様がスケールアップする必要があります。同時に、Spark などの分散型データ インフラストラクチャ上でスケールアウトして問題セットに対応したり、Azure Batch サービス上でスケールアウトしてハイパーパラメーター スイープの超並列処理やモデル評価を実行したりします。大規模なディープ ラーニングを実行するには、この 2 つの方法を組み合わせて、スケールアップされたマシンを多数使用する必要があります。

モデルと実験の数を増やす: チームでの実験速度が増加することで、実行される実験と生成されるモデルの数も増加します。その結果、これらのモデルを管理、監視、保守できることが非常に重要になります。チームはモデルの任意のバージョンを特定して再作成できる必要がありますが、企業が意思決定に AI を活用する機会が増加するにつれて、記録する必要がある成果物の数も増大しています。

モデルの使用規模を拡大する: 任意のツールやフレームワークを使用して生成されたモデルは、どれほど多数の要求にも対応できるように、簡単にスケーリングできる形でデプロイする必要があります。マイクロソフトはこれを実現するために、お客様が細かく制御できるようにモデルのコンテナーベースのデプロイメントを採用すると共に、Azure Container Service などのサービスを使用して Azure でスケーラブルなホスト レイヤーを提供する必要があります。

チームの規模を拡大する: データ サイエンティストのチームは 1 か所にまとまっているわけではありません。マイクロソフトのツールやサービスは、データ サイエンスのライフサイクルのあらゆる段階で、安全な共同作業や共有を可能にする必要があります。ソフトウェア開発において、さまざまな形態のチームやプロセスを柔軟にサポートするためにソース管理システムが進化したのと同様に、マイクロソフトのシステムはチームの成長に合わせて AI 開発ライフサイクルをサポートする必要があります。

現在使用しているツールで構築

お客様ごとに使用しているフレームワークやツールチェーンはさまざまです。エコシステムが急速に多様化する中で、お客様はさまざまなツールを試用して、自社に最適なものを選択できるようになりました。また、エコシステムにおけるイノベーションが急速に進行しているため、現在使用しているツール、フレームワーク、手法が 6 か月後にもそのまま通用するとは限りません。マイクロソフトが開発するサービスやツールには、データ サイエンティストがエコシステムの中からツールを自由に選択して使用できること、ツールが進化しても一貫したトレーニング、デプロイメント、管理のエクスペリエンスを提供することが求められます。

ツールが爆発的に増加した結果、再現性の確保が難しくなっています。12 か月後にはツールが変化していたら、どのように実験を再作成すればよいでしょうか。ソフトウェア開発者が検証済みの依存関係のチェックポイントを作成する必要があるのと同様に、マイクロソフトのシステムでは、フレームワークが変化しても結果を確実に再現できる必要があります。

実験速度を向上

データ サイエンス チームにとって主な負担となる分野として、よく耳にするのが以下の課題です。

  • データの取得、準備、理解
  • トレーニングの確実なスケーリング (ローカルでの迅速なプロトタイプ作成から大規模なデータセットへのスケーリング)
  • 異なるツールや手法でトレーニングされたモデルの比較と選択
  • 運用環境へのモデルのデプロイ
  • デプロイされたモデルからのテレメトリの取得とモデルの改良

各段階の負担と次の段階へ移行する際の負担を軽減することが、チームによる実験速度の向上につながるとマイクロソフトは考えます。これにより、優れたモデルを迅速に作成できるため、最終的にはお客様にもたらされる価値が高まり、チームの作業効率が向上します。マイクロソフトのサービスやツールは、これらの主な負担を軽減すると同時に、必要とされる柔軟性や制御性を維持する必要があります。

あらゆる場所にモデルをデプロイ

最後に、マイクロソフトが開発するサービスでは、あらゆる場所にモデルをデプロイして、管理、監視できる必要があります。お客様は、以下のようなフォーム ファクターに柔軟にデプロイできることが重要です。

  • クラウドへのデプロイ: スケーラブルな Web サービスとして膨大な数のデバイスやアプリで使用
  • データ レイクへのデプロイ: インタラクティブかつリアルタイムのストリーミング パイプラインで大規模にデータを一括処理
  • SQL Server 2017 などのデータ エンジンへのデプロイ: データをインラインでスコアリングしてトランザクション処理やデータ ウェアハウスの用途に使用
  • エッジ デバイスへのデプロイ: 可能な限りイベントに近い場所にスコアリングを移動し、非接続型シナリオをサポート

新機能の詳細

前述の設計ポイントを踏まえ、以下の Azure Machine Learning の新機能がリリースされました。

Azure Machine Learning Experimentation

Azure Machine Learning Experimentation Service により、開発者やデータ サイエンティストは実験速度を向上させることができます。すべてのプロジェクトは Git リポジトリでバックアップされており、シンプルなコマンド ライン ツールを使用して実験やトレーニングの実行を管理できるため、実行するたびに使用されたコード、構成、データを記録できます。さらに重要なこととして、モデルのファイル、ログ出力、主要なメトリックといった実験の出力も記録されるため、時間の経過と共に進化したモデルの履歴を確認できる強力なリポジトリとなります。

Experimentation Service では、お客様が希望する任意の Python ツールやフレームワークを活用できます。実験は、ローカル マシンで実行することも、ローカルまたはリモートの Docker コンテナー内で実行することも、Spark 上でスケールアウトして実行することもできます。HDInsight の Apache Spark を活用すると、データの準備や変換、大量のデータを使用したトレーニングを実行できます。ディープ ラーニング ベースの実験には、GPU アクセラレーション対応仮想マシンで Microsoft Cognitive Toolkit (英語)Tensorflow (英語)Caffe (英語)PyTorch (英語) などのフレームワークを使用します。今後は、Azure Batch AI (英語) サービスを試用してトレーニングの大規模なスケールアウトを行い、Model Management Service で運用化できるようになります。

Azure Machine Learning で使用可能な Machine Learning Server の Python ライブラリ (revoscalepymicrosoftml、英語) には、マイクロソフトが提供する Python バージョンの Parallel External Memory Algorithms (線形回帰、ロジスティック回帰、デシジョン ツリー、ブースト デシジョン ツリー、ランダム フォレスト) と、運用環境でテストされた ML アルゴリズムと変換 (ディープ ニューラル ネット、1 クラス SVM、高速ツリー、フォレスト、線形回帰、ロジスティック回帰) が含まれます。また、これらのライブラリには、リモートのデータ ソースやデプロイメント先に接続するための豊富な API が含まれています。これらのライブラリを使用すると、Experimentation Service でモデルをトレーニングして、これらのモデルを Machine Learning Server が実行されている場所 (SQL Server、HD Insight、Windows Server、Linux、Spark の 3 種類のディストリビューション) で運用化することができます。このトレーニングと運用化の機能はほぼすべての Python ツールキットで使用できます。これにより、お客様が普段使用しているデータ サイエンス環境から直接モデルを構築し、運用環境のデータ プラットフォームで運用化することができます。

データ サイエンスのプロセスは一方向ではありません。そこで、Experimentation Service では履歴を確認し、適切な結果が得られた実験を比較することができます。適切なバージョンを発見したら、使用されたコード、構成、データを現在のプロジェクトに設定することで、過去の任意の時点から開発を容易に開始できます。さらに、環境構成を記録することで、まったく同じ構成で新規環境を簡単かつ迅速にセットアップできます。Experimentation Service では、ローカル マシン上、ローカルやクラウドで実行されている Docker コンテナー内、HDInsight の Spark などの Azure のスケールアウト エンジン上のトレーニングを管理できます。コマンド ラインのパラメーターを変更するだけで、ジョブの実行場所をローカルからクラウドに容易に移動できます。

Azure Machine Learning Model Management

Model Management Service では、Azure やオンプレミスのモデルを IoT エッジ デバイスなどにデプロイし、ホスト、バージョン管理、管理、監視を行うことができます。このサービスでは Docker を大幅に活用し、モデルをホストするメカニズムとしてのコンテナーの制御性、柔軟性、利便性を提供しています。コンテナーにより、モデルのホスティング環境の再現性と一貫性が得られます。モデルは Python で作成された Web サービスに表示されるため、高度なロジック、カスタムのログ記録、状態管理、その他のコードを Web サービスの実行パイプラインに追加できます。このロジックをパッケージ化してコンテナーが構築されます。コンテナーは Azure Container Registry に登録し、任意の標準 Docker ツールチェーンを使用してデプロイできます。Azure Container Service クラスターへのモデルの大規模なデプロイにも対応するため、モデルのホストに最適化されたホスティング インフラストラクチャを開発しました。このインフラストラクチャでは、コンテナーの自動スケーリングを行ったり、要求を使用可能なコンテナーに効率的にルーティングしたりする処理を行います。

デプロイされたモデルやサービスは Application Insights で監視し、特定のモデルのメトリックなど、モデルの実行に関する詳細情報を決定ごとに把握できます。デプロイされたモデルのバージョンが記録されるため、モデルの作成に使用されたコード、構成、データをリンクから辿ることができます。アップグレードしたモデルのデプロイメント管理もサポートされており、ダウンタイムを発生させずに新しいバージョンを確実にデプロイできるほか、必要な場合は以前のバージョンにロールバックすることもできます。デプロイされたモデルを監視し、新しいデータを使用してトレーニングを行った後に更新するという再トレーニングのシナリオも可能で、新しいデータに基づいてモデルを継続的に改良できます。

Screenshot_1

このモデルの主なメリットとして、デプロイメント プロファイルを完全に制御できることが挙げられます。すべてのモデルを単一のクラスターでホストする場合にも、部署やお客様ごとにクラスターをデプロイする場合にも、単一のモデルによって日中は大量の呼び出しをサポートし、夜間はスケールダウンする場合にも対応できます。マイクロソフトの目標は、お客様がコンテナーのホスティング インフラストラクチャを制御できるようにして、お客様が求めていた制御性とカスタマイズ性を実現することです。お客様は VM の種類とデプロイメント プロファイルを自由に選択できるため、クラスターにデプロイする前の開発およびテストに使用する単一インスタンスとして Data Science Virtual Machine の使用を容易に開始することができます。

Model Management Service でデプロイされたモデルには、コードからサービスを簡単に使用できるようにするためのメカニズムとして Swagger も表示されます。Excel チームのパートナーは、この機能を使用して、Excel から直接モデルをきわめて容易に発見、使用できるようにしました。

Experimentation Service と Model Management Service の連携により、デプロイされたモデルを管理し、モデルの作成に使用されたトレーニング ジョブまでさかのぼって時系列を確認できます。デプロイされたモデルに対してテレメトリを有効化すると、すべての決定を表示して、モデルを作成した実験の決定を辿ることができます。これにより、モデルのライフサイクル全体を通じてデバッグや診断を行うことができます。

Model Management Image

Azure Machine Learning Workbench

開発を開始するにあたってまず取り組んだのは、このサービスをコマンド ラインから完全に操作できるようにすることでした。しかし、お客様からは環境のセットアップ、データ ラングリング、実行結果の比較の視覚化が難しいというご意見が寄せられていました。そこで、マイクロソフトはお客様の現在の開発プロセスを補助するアプリケーションとして Azure Machine Learning Workbench を開発しました。ぜひ皆様のご意見をお聞かせください。Azure Machine Learning Workbench は Windows と Mac で動作するクライアント アプリケーションです。簡単なセットアップとインストールによって、conda や Jupyter などを含む構成済みの Python 環境がインストールされるほか、Azure のすべてのバックエンド サービスと接続されます。このツールは開発ライフサイクルのコントロール パネルの役割を果たすもので、サービスの使用を開始する場合に非常に便利です。

また、アプリケーションには豊富なサンプルが組み込まれており、ワンクリックでさまざまなツールや手法を使用したトレーニングを実行できます。これらのサンプルは、[New Project] をクリックすると表示されます。以下の図は、前述の Experimentation Service の実験履歴の管理画面です。実行結果の履歴を辿って主要なメトリックの進化を一目で把握したり、個々の実行結果の詳細を確認したり、並べて表示してパフォーマンスを比較したりできます。

Workbench

matplotlib などを使用してコードに視覚化を組み込んだ場合は、実行結果の詳細情報の一部としてアーカイブおよび保存されます。以下のスクリーンショットでは、ドキュメントの分析結果に基づいて生成されたワード クラウドが表示されています。また、Git のコミット ID も表示されるため、この実験の時点から編集を開始したい場合には、そのコミットから簡単にチェックアウトできます。

Workbench 2

最後に、実行結果は並べて表示して、比較や評価を行うことができます。

Workbench 3

Azure Machine Learning Workbench では、Jupyter ノートブックもホストされており、ローカルやリモートのカーネルを対象として構成できます。そのため、ノート PC のノートブックで反復的に開発を行ったり、HDInsight で実行されている大規模な Spark クラスターに接続したりできます。

Workbench 4

AI を活用したデータ ラングリング

特に時間がかかる作業の 1 つがデータの準備です。データの取得、整形、準備に関する問題 (と所要時間) については以前から多数のご意見が寄せられており、その改善に取り組んでいます。マイクロソフトは、モデリングに使用するデータを取得するため時間と労力を削減し、データ サイエンティストがデータを準備、理解する速度を抜本的に迅速化して、短時間で「データ サイエンス」を開始できるようにしたいと考えています。今回、Azure Machine Learning Workbench の一部として、AI を活用した新しいデータ ラングリング テクノロジが導入されました。これは、データを準備する際の生産性向上を目的としたものです。マイクロソフトは、Microsoft Research の PROSE (Program Synthesis、英語)データ クリーニング (英語) に関する高度な研究を活用してさまざまな手法を組み合わせ、データ準備の所要時間を大幅に短縮するデータ ラングリング エクスペリエンスを作成しました。データ ソースを処理するためのシンプルなライブラリが複数含まれており、データ サイエンティストは環境を切り替える場合にも、ファイル パスや依存関係の変更に時間を取られることなく、コード作成に集中できます。これらのエクスペリエンスを組み合わせることにより、クラウド コンピューティング エンジン間で透過的にスケールアウトした場合にも、実行環境を選択するだけで、小規模な環境と大規模な環境の両方で同じツールを使用できます。

Workbench 5

このデータ ラングリング ツールには、サンプルに基づいてデータ変換を構築できる強力な機能が備わっています。これまでは数値や日付の書式設定や変換に時間がかかりましたが、サンプルを利用することでデータ変換を簡素化することができます。以下の例では、後でデータセットの結合や集計に使用できるように、datetime 文字列を「曜日 + 2 時間ごとの時間帯」に変更しています。表示された変換が希望する結果にならない場合は、カスタムの Python コードやライブラリを挿入して、データの絞り込みや変換に使用することもできます。

Workbench 6

構築したデータ変換は、変換結果を含む pandas DataFrame を返すことで、容易に Python コードに組み込むことができます。

Workbench 7

DataFrame を生成するためには、以下のコードを作成します。

# Azure Machine Learning のデータ ラングリング パッケージを使用します。
from azureml.dataprep import package
# Azure Machine Learning のデータ コレクターを使用して各種メトリックのログを記録します。
from azureml.logging import get_azureml_logger
logger = get_azureml_logger()
# この呼び出しにより、参照パッケージが読み込まれ、DataFrame が返されます。
# PySpark 環境で実行されている場合は、この呼び出しによって
# Spark DataFrame が返され、それ以外の場合は Pandas DataFrame が返されます。
df = package.run('bikes.dprep', dataflow_idx=0)
# この行を削除して、DataFrame を使用するコードを追加します。
df.head(10)

Visual Studio Code Tools for AI

お客様が任意の開発ツールを使用できることは重要です。マイクロソフトは、それらのエクスペリエンスが Azure の新しいサービスとシームレスに連携するようにしたいと考えています。そこで、エディターに統合できる Visual Studio Code Tools for AI (英語) の初回リリースを発表しました。この拡張機能では、Microsoft Cognitive Toolkit (CNTK、英語)Google TensorFlow (英語)Theano (英語)Keras (英語)Caffe2 (英語) などのディープ ラーニング フレームワークでモデルを構築するための豊富な機能が提供されるほか、Experimentation Service と統合してローカルやクラウドでジョブを実行し、Model Management Service と統合してデプロイすることができます。

Visual Studio Code Tools for AI

使用を開始するには

詳細をご希望の方は、Azure に新しいアカウントをデプロイする方法を説明したドキュメントをご確認ください。また、各種クイック スタート ガイドやサービスの機能を紹介する詳細なチュートリアルも豊富に取り揃えています。

お客様が関心のある課題に取り組んだり、以下のような今後の課題を解決するための手法を採用したりできるように、マイクロソフトのデータ サイエンティストは、サンプル データを含む詳細なシナリオの作業手順をまとめました。

これらのドキュメントは継続的に更新してまいります。ご意見やご提案がありましたら、ぜひお聞かせください。

今後の展望

本日より、上記のサービスやツールは Azure でパブリック プレビューとして提供されます。サービスの一般提供の開始は、今後数か月以内を予定しています。今後も引き続きお客様と協力し、お寄せいただいたフィードバックを参考にして、主要機能、更新、全世界に向けたロールアウトを決定してまいります。ぜひフィードバック サイト (英語)MSDN フォーラム (英語)、Twitter (ハッシュ タグ #AzureML) を通じてマイクロソフトのチームにご意見をお聞かせください。また、2017 年 10 月 4 日には、シニア PM の Ted Way による Web セミナー (英語) を開催しますので、ご興味をお持ちの方はぜひご参加ください。

今回の発表は、この画期的な取り組みの始まりに過ぎません。今後も皆様のご協力をお願いいたします。

3 Highlight-Videos zum Windows 10 Fall Creators Update

$
0
0

Ab Morgen wird das Windows 10 Fall Creators Update für weltweit mehr als 500 Millionen Geräte verfügbar. Außerdem werden zeitgleich erste Windows Mixed Reality Headsets von Hardware-Partnern auf dem deutschen Markt erhältlich sein. Drei Videos zeigen, welche coolen Features Euch künftig erwarten.

 

 

1) Eine neue Designsprache mit dem „Fluent Design System“

Eine modernisierte Designsprache erlaubt Nutzern zukünftig eine noch intuitivere Bedienung über Windows 10 Geräte und Anwendungen hinweg. Entwicklern ermöglicht das durchgängige Design, zukünftig noch effizientere Anwendungen zu programmieren. Hierfür setzt das Fluent Design System grundsätzlich auf die fünf Design-Elemente Licht, Tiefe, Bewegung, Materialien und Dimension.

 

 

2) Startschuss für Windows Mixed Reality

Mit dem Launch des Windows 10 Fall Creators Update bringen wir Mixed Reality auf Windows Rechner. Durch die Kombination der physischen und der digitalen Welt machen Nutzer völlig neue Erfahrungen: So können sie von zu Hause abgelegene Orte erkunden, Spiele intensiver erleben, Events besuchen oder sogar Zeitreisen machen. Bereits seit dem 3. Oktober sind erste Headsets von Partnern im deutschen Microsoft Store vorbestellbar und kommen nun am 17. Oktober auf den deutschen Markt.

 

 

3) Intelligente Sicherheit für Unternehmen

Windows 10 bietet intelligente Werkzeuge für den Schutz, die Erkennung und den Umgang mit hochentwickelten Bedrohungen. Mit dem Windows 10 Fall Creators Udpate erfolgt erstmals die nahtlose Integration von Windows Defender ATP über den gesamten Windows Sicherheits-Stack. Außerdem erhält die „Post Breach Lösung“ von Microsoft zusätzliche Erweiterungen für den Umgang mit hochentwickelten Bedrohungen.

 

 

Weitere Videos zu Windows 10 gibt es auf unserem YouTube-Kanal. Informationen und Bilder zum Windows 10 Fall Creators Update findet ihr auf dem Microsoft Newsroom.

 


Ein Beitrag von Irene Nadler
Communications Manager Devices & Services

26 октября вебинар “Управление учетными данными и защита корпоративной информации”

$
0
0

Безопасность информационных систем является одним из основных на повестке многих компаний, которые сталкивались с утечками данных, ущербом от вымогателей-шифровальщиков, хакерскими и другими атаками. Помимо потери коммерческих данных, могут быть потеряны персональные данные физических лиц, что повлечет за собой финансовые и репутационные риски.

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

В рамках данного вебинара будут рассмотрены возможности:

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

Участие бесплатное, регистрация обязательна!

Easily Multi thread Powershell commands and scripts

$
0
0

I want to share this script, I wrote for my customer few months back. This one is special as it is my first script without any Exchange commands in it 🙂 .

There are many everyday tasks in support and administration which takes long time to complete. Some of the common tasks are

  •                Collecting asset information, configuration from all the workstations
  •                Collect mailbox statistics or other details for thousands of objects...etc.

I had seen some commands/scripts that was executed for large number of objects and took more than 24 hours to complete. Scripting is all about reducing time spent performing mundane tasks, but seems it is not enough. The commands simply take so long just because of too many objects it has to process sequentially. Then comes the idea of Multi-threading in powershell, using powershell background runspaces seem fit for the job than using Powershell jobs. Background Runspaces are more faster and light weight to process more number of tasks in parallel.

I started integrating runspaces to achieve multi-threading on my scripts, but for every script, the requirement is different and coding it consumes time. To overcome this challenge, I decided to create a generic function that can be used on all the commands and scripts with very less modification to the actual command. Not all Administrators who uses powershell for the daily administrative tasks and reporting are well versed on scripting. With all that kept in mind, Invoke-all function was created, I have made the function very generic, easy-to-use and lightweight as possible.

The script can be downloaded from https://aka.ms/invokeall

Usage example:

#Actual command:

Get-Mailbox -database 'db1' | foreach{ Get-MailboxFolderStatistics -Identity $_.name -FolderScope "inbox" -IncludeOldestAndNewestItems } | Where-Object{$_.ItemsInFolder -gt 0} | Select Identity, Itemsinfolder, Foldersize, NewestItemReceivedDate

Same command with Invoke-all

Get-Mailbox -database 'db1' | invoke-all{ Get-MailboxFolderStatistics -Identity $_.name -Folder Scope "inbox" -IncludeOldestAndNewestItems }  | Where-Object{$_.ItemsInFolder -gt 0} | Select Identity, Itemsinfolder, Foldersize, NewestItemReceivedDate

As you see it is that easy to use. Imagine, 100s of DBs and using invoke-all function is 10x faster than the conventional way.

Note: The scriptblock is the first parameter to the Invoke-all function and it should only contain the first command and its parameters that needs to be executed. Any Filtering that is done using another command (Where-Object) must be outside of the script block as mentioned in the above example.

Features:

  1. Easy to use.
  2. When used with Cmdlets or Remote PowerShell, it automatically detects and loads the (only) required modules to the sessions.
  3. Checks if it can complete the first job without errors before scheduling all the jobs to run in parallel.
  4. By default, the script processes the jobs in batches. With batching, the resource consumption is very less and its proportional to the batch size which can be adjusted as required.
  5. Ability to pause the Job scheduling in-between batches. This is very useful if too many requests are overloading the destination.
  6. Creates a runtime log by default.

The Invoke-all is a function exported and is a wrapper like function that takes input from Pipeline or using explicit parameter and process the command concurrently using runspaces. I have mainly focused on Exchange On-Perm (and some Online Remote powershell (RPS) commands) while developing the script. Though I have only tested it with Exchange On-Perm Remote sessions and Snap-ins, it can be used on any powershell cmdlet or function.

I haven’t tested it with any Set-* commands, but it is possible to use this script to modify objects in parallel. Carefully chose the command so that there is no contention created when using multiple threads.

Exchange remote PowerShell uses Implicit remoting, the Proxyfunctions used by the Remote session doesn’t accept value from pipeline. Therefore, the Script requires you to declare all the Parameters that you want to use in the command when using such commands. See examples on how to do it.

It can handle cmdlets and functions from any modules. I have updated script to handle external scripts as well. I will see to include applications handling in the next version, but it can be achieved in this version with a simple script as shown in the examples that can execute your EXE or application.

Please refer to the comments on the script to learn more about the technique used on the script or please leave a comment here. Hope you find this one useful to save some time on your long running powershell commands.

OAuth 2.0 Confidential Clients and Active Directory Federation Services on Windows Server 2016

$
0
0

In this blog post, I want to clarify just how you can make your OAuth 2.0 Confidential Client work against Active Directory Federation Services on Windows Server 2016 (AD FS) using different forms of client authentication. Although there is a great article on the Microsoft web on this topic, it doesn’t disclose how you can utilize either Certificate Based- or Windows Integrated Authentication-Based authentication for your confidential client.

Important note: This article assumes you are using AD FS Farm Behavior Level 2 (AD_FS_BEHAVIOR_LEVEL_2) or higher.

Whenever you code against Azure Active Directory (using version 1.0 or version 2.0 endpoints), you would use Client Credentials in the form of a shared secret to authenticate your client;

aad-key2

This also works against AD FS; You can create an Application Group, and add a Confidential Client (called Server application in AD FS) to the Application Group. During the setup of the Server application, or by modifying it’s configuration, you can configure a shared secret by selecting “Generate a shared secret” from the Configure Application Credentials page:

adfs-key1

Using this form of Client Authentication, you would POST your client identifier (as client_id) and your client secret (as client_secret) to the STS endpoint.

Note that AD FS supports two other forms of authenticating the confidential client:

  • Register a key used to sign JSON Web Tokens for authentication
    This option is used to allow a confidential client to authenticate itself using a certificate.
  • Windows Integrated Authentication
    This option is used to allow a confidential client to authenticate itself using WIA; a Windows user context.

Let’s take a closer look at these two other options to authenticate a confidential client.

Signed JSON Web Tokens

When you don’t want to use a shared secret to authenticate your confidential client, nor does the client run on a Domain-Joined machine under an Active Directory User context, you can use Signed JSON Web Tokens to authenticate the client to AD FS. This option is typically chosen when you want the client to authenticate itself using Certificate Based-Authentication. Next to using Certificates, this option would also allow you to use JSON Web Key Sets (JWK Sets). In this article, I will focus on using Certificates.

Select “Register a key used to sign JSON Web Tokens for authentication” and click on Configure…

From there, click Add… to add the (public key) of the certificate(s) that you want to use with your client.

adfs-cert

Under “JWT signing certificate revocation check”, select the CRL checking that you want. Remember that, in order for AD FS to do any CRL checking, AD FS would require Internet access (on port 80).

Now comes the hard part. Although the HTTP protocol defines certificate based authentication for clients, this is not actually what we will be using. Instead, we will use a JSON Web Token which is signed using the private key of the certificate you chose.

Hence, in our client we need to craft such a JWT and sign it accordingly. In this post, I will use RS256 to sign the JWT. Signing a JWT is a fairly straight-forward process: You Base64-Url-encode the header, you Base64-Url-Encode the content, you concatenate the two with a dot (‘.’), you create a SHA256 hash on that string, and you sign it using your certificate.

The header should contain the algorithm (alg) used to create the signature (in our case; RS256). It should also contain the Certificate Hash in the x5t field. In “Pseudo-code”:

{
   “alg”: “RS256”,
   “x5t”: Base64UrlEncode(certificate.GetCertHash()
}

The token itself would need the intended audience (“aud”), which is the AD FS token endpoint, the Issuer (“iss”) which is the client identifier of our client, a Subject (“sub”) which in our case is also the client identifier, a issuance datetime (“nbf”) and expiry datetime (“exp”), both in Unix Epoch Time (e.g. seconds passed since 01-01-1970) and a unique identifier of the request (“jti”). In “Pseudo-code”:

{
   “aud”: “https://adfs.contoso.com/adfs/oauth2/token”,
   “iss”: “2954b462-a5de-5af6-83bc-497cc20bddde”,
   “sub”: “2954b462-a5de-5af6-83bc-497cc20bddde”,
   “nbf”: (int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalSeconds,
   “exp”: nbf + 60 * 10,
   “jti”: Guid.NewGuid().ToString()
}

We Base64-Url-Encode these two (which is the same as Base64 Encode, but remove the trailing ‘=’ characters and replace ‘+’ by ‘-‘ characters and replace ‘/’ by ‘_’ characters) and glue them together with a dot (‘.’).

Let’s get the SHA256 hash we need to sign:

var bytesToSign = Encoding.UTF8.GetBytes($"{Base64UrlEncode(tokenHeader)}.{Base64UrlEncode(tokenContent)}");
var sha256 = SHA256.Create();
var hash = sha256.ComputeHash(bytesToSign);

In this sample, hash contains the bytes to sign using SHA256.

Windows Integrated Authentication

When your client runs on a domain-joined machine, you can use the “Windows Integrated Authentication” checkbox in the Configure Application Credentials dialog. You can either use the security context the client is running under, or you can pass other domain user credentials. Although the latter is possible, the feature is intended to be used against the currently user context. Should you use the current context, the client itself does not store these credential anywhere, which is obviously a security benefit.
This can be used with the security context of the IIS Application Pool (if it's a Web Application) or perhpaps the credentials used to schedule a task that runs the client. So it’s really great for scheduled tasks, daemons etc.!

When you select the “Windows Integrated Authentication” checkbox, you can select a user account in your Active Directory that the client needs to run under. (Although the dialog only allows you to select actual User objects, through PowerShell, you can also use (Group-) Managed Service Accounts using the Set-AdfsServerApplication command, in combination with the ADUserPrincipalName parameter.)

After selecting this form of authentication, your client needs to send the client identifier (as client_id) to AD FS, and it needs to ‘tell’ AD FS that the client is using Windows Integrated Authentication by adding this field and value to the request:

use_windows_client_authentication=true

Remember; you do not send a client_secret in the request.

Instead, you send your Windows Credentials whenever you POST the request to AD FS:

var request = HttpWebRequest.CreateHttp(endpoint);
request.Headers.Add("client-request-id", Guid.NewGuid().ToString());
request.Accept = "application/json";

request.UseDefaultCredentials = true;

var postBytes = Encoding.UTF8.GetBytes(content);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = postBytes.Length;

If you do not want to send your current context as the credential, simply replace the highlighted line with this one (where networkCredential is an instance of System.Security.NetworkCredential:

request.Credentials = networkCredential;

When the request is POSTed to the STS (typically the token-endpoint), no authorization header is sent, and AD FS replies with an HTTP 401 (Unauthorized). AD FS adds two WWW-Authenticate headers in the 401 response; one for Negotiate and one for NTLM. The client then retries the HTTP POST, but now with the proper Authorization header in the request. If the credentials are valid, and the account is the one configured on AD FS, AD FS should reply properly. Here is an example of a succesfull request to AD FS (taken with Fiddler):

adfs-wia2

Happy coding!

Cumulative Update for October-INACCESSIBLE BOOT DEVICE

$
0
0

The issue arises if the delta and the full cumulative update for October (KB4041691 https://support.microsoft.com/en-us/help/4041691) was installed same time. Those was released last week and if you configured your internal WSUS to automatically approve you will see this issue -> https://support.microsoft.com/en-us/help/4049094/windows-devices-may-fail-to-boot-after-installing-october-10-version-o

After installing this update you probably broke your machine with stop code: INACCESSIBLE BOOT DEVICE

let's calm down 🙂 from my experience we could fix all instances with below procedure and do not attempt to run "automatic repair" in that case

Let's boot into 'Troubleshooting' and open our lovely good old command prompt

 

Microsoft Support advises to get rid of the SessionsPending reg key. Let's load the software registry hive:

reg load hklmtemp c:windowssystem32configsoftware

Delete the SessionsPending registry key (if exists):

reg delete "HKLMtempMicrosoftWindowsCurrentVersionComponent Based ServicingSessionsPending"/v Exclusive

Unload the software registry hive:

reg unload HKLMtemp

now lets pullout with DISM.exe the list of installed packages

dism /image:C: /get-packages

Checkout the ones which are state "Install Pending" as one of those was causing the issues (highly like the last entries in your list)

before we can remove them we need to create a temporary directory first to where we can move the updates to

MKDIR C:temppackages

Now let's (re)move the "pending" package(s) with the DISM command

dism /image:c: /remove-package /packagename:PACKAGEIDENTITYNAME /scratchdir:c:temppackages

be focused on the output of the command and if it completes successfully

Reboot your VM and it will reboot again and you can run Windows update afterwards as the faulty update was already corrected

Official Microsoft KB:
https://support.microsoft.com/en-us/help/4049094/windows-devices-may-fail-to-boot-after-installing-october-10-version-o

DISM Operating System Package Servicing Command-Line Options
https://msdn.microsoft.com/en-us/library/hh825265.aspx 

Virtual Entities Demo Solution

$
0
0

In my previous post "Virtual Entities" I listed the steps to create a Virtual Entity.

Please note the following about the OData v4 Data Provider

  • We’ll be updating the OData Provider semi-weekly out of band from other online updates
  • It’s a solution installed by default
  • Updates must be applied by managing the solutions installed for a particular instance in the admin center
  • Status will be “Update available” when there is something to install

To test a virtual entity you can

  1. Create a Dynamics 365 free trial
  2. Download and import the demo solution used in the above mentioned blog post - link

 


Recovering from Crypto- or Ransomware attacks with the OneDrive for Business Admin Tool

$
0
0

Recently, I had a requirement come up to enable the bulk restore of content from a OneDrive for Business site in the event of a cryptoware or ransomware attack.  OneDrive has versioning turned on, so I figured this would be an "easy" add.  As with most of my initial thoughts on how long something should take (see "IT time"), it turned out to be a little more complicated than I originally thought.

However, I felt that this tool could really be of benefit to organizations planning their migrations to OneDrive for Business who were concerned with the ability to recover from a malware attack that compromised user files.

I decided to add this functionality to my existing OneDrive for Business Admin Tool, since I already had a lot of the foundational code in place to enumerate and manipulate OneDrive sites.

This version of the tool has several restore capabilities, that I've outlined below:

  • Restore Versions by Date
  • Restore Versions using the most recent previous saved version
  • Restore Versions by going back "n" number of versions

To restore the files in a user's library by date, using a modified date of 4 days ago:

OneDriveForBusinessAdmin.ps1 -Credential (Get-Credential)  -RestoreVersions ByDate -FilesModifiedOnThisDate ((Get-Date).AddDays(-4)) -Identity "user@domain.com" -Tenant "tenant.onmicrosoft.com"

This will enumerate the user's OneDrive for Business library, find files with versions matching the modified date, and restore the second most recent version on that date (since restoring the most "recent" version on an "infected" date would more than likely restore the infected file again).

To restore the files in a user's library by just selecting the most recent previous version:

OneDriveForBusinessAdmin.ps1 -Credential (Get-Credential) -RestoreVersions ByNumberOfVersionsToGoBack -Identity adelev@ems340903.onmicrosoft.com -Tenant ems340903

And, to restore the files in a user's library by specifying a number of versions to go back (keep in mind that the current version "counts" as a version)

OneDriveForBusinessAdmin.ps1 -Credential (Get-Credential) -RestoreVersions ByNumberOfVersionsToGoBack -Identity adelev@ems340903.onmicrosoft.com -Tenant ems340903 -VersionsToGoBack 4

You can find the updated version of the OneDrive for Business Admin tool on the TechNet Gallery.  I look forward to your comments and suggestions!

 

Office 365: Who can receive the weekly digest email…

$
0
0

In Office 365 we provide administrators the ability to access important information about the service via the message center.  At https://portal.office.com on the main administration page the message center option appears in the center view.

 

image

 

When selecting the message center option the administrator is presented with a list of notifications, announcements, and other messages regarding Office 365.

 

image

 

One of the options at the top right of the list is an option to edit message center preferences. 

 

image

 

image

 

When editing message center preferences administrators can include or exclude difference services.  They can also signup for a weekly digest email to be sent using the email options at the bottom of the preferences selections. 

 

image

 

I recently had a customer inquire about how the weekly digest email could be provided to accounts that did not have administrator rights within Office 365.  For example – maybe you have a help desk group where receiving Office 365 notifications and announcements would be helpful but providing administrator rights in the Office 365 portal is not necessary.

 

One of the message center preferences allows the administrator to provide additional email addresses where the notifications can be sent.  The field allows for up to two email addresses to be specified.  My proposed solution to this was to specify a distribution list.  This would allow the administrator to add and remove members dynamically who they determined should receive these notifications without requiring any additional administrator access be provided within Office 365.  Let’s take a look at an example.

 

To being a distribution list was created – Office365Notification@contoso.com.  

 

PS C:> Get-DistributionGroup Office365notification@contoso.com

Name                  DisplayName           GroupType PrimarySmtpAddress
----                  -----------           --------- ------------------
Office365Notification Office365Notification Universal Office365Notification@contoso.com

 

An important setting of the distribution list is to allow external emails to be delivered to the group.  The Office 365 Weekly Digest emails are technically external to the tenant and therefore this setting needs to be allowed in order for the group to receive messages.

 

Set-DistributionGroup Office365notification@contoso.com -RequireSenderAuthenticationEnabled:$FALSE

 

PS C:> Get-DistributionGroup office365notification@contoso.com | select-object name,requiresenderauthenticationenabled

Name                  RequireSenderAuthenticationEnabled
----                  ----------------------------------
Office365Notification                              False

 

The ability to create this distribution group and adjust the settings is also available within the Office 365 Portal –> Exchange Administration Console. 

 

image

 

Once the group has been successfully created and the authentication settings modified you can add members to the group that you desire to receive notifications.  The members can be any recipient object within Exchange Online (including external mail enabled contacts etc). 

 

PS C:> Add-DistributionGroupMember -Identity Office365Notification@contoso.com -Member tmcmichael@cotoso.com

 

PS C:> Get-DistributionGroupMember -Identity Office365Notification@fortmillrescue.com

Name              RecipientType
----              -------------
ContosoAdmin      UserMailbox
Timothy McMichael UserMailbox
Contact Mailbox   UserMailbox
Laurie Hays       UserMailbox

 

With the distribution group created, the security settings adjusted, and the members added you can now configure the notification settings for the group.  In this example I have taken a global administrator account and selected the message center preferences.  Under the weekly digest email settings I have selected the option for an additional recipient and specified the primary SMTP address of the notifications group that I created.

 

image

 

When this setting has been successfully applied members of the groups should start receiving the weekly digest email.  The weekly digest email will appear from an Office 365 service address to the primary SMTP address of the distribution list.  Here is an example of the email successfully sent to the distribution list and received by the member.

 

image

 

Using the distribution list method administrators and supply the weekly digest email to parties where it would be helpful to have the information but administration rights are not required.

Mehr Souveränität!

$
0
0

Logbucheintrag 171016:

Bei der Evolution ins Cloud Computing ist es wie bei der Entdeckung Amerikas – die ersten riskierten noch ihr Leben, wir höchstens noch unsere Freizeit. Gut, lebensbedrohlich war der Gang in die Cloud eigentlich nie, aber er war geprägt von Fear, Uncertainty and Doubt. Der „FUD“-Faktor bestand vor allem in dem Argument, dass die Cloud den Unternehmen die Souveränität über die eignen Anwendungen und – schlimmer noch – über die eigenen Daten nimmt. Einmal Cloud und niemals zurück – wie bei der Entdeckung Amerikas!

Tatsächlich wissen heute alle: das Gegenteil ist der Fall! Die Cloud ist der Schlüssel zu mehr Flexibilität, zu mehr Funktionalität und schließlich – ganz im Gegensatz zur alten FUD-Argumentation – zu mehr Souveränität.

Denn die Realität sieht doch eher so aus: Wer heute Teile seiner Infrastruktur in die Cloud migriert, gewinnt zusätzliche Flexibilität schon alleine dadurch, dass er nach Bedarf skalieren kann. Wer beispielsweise bestimmte rechenintensive Operationen nur zweimal pro Jahr durchführt – etwa für die Inventur oder für Marktanalysen –, der muss seine IT-Ausstattung nicht mehr nach diesen Peaks ausrichten und übers Jahr gesehen völlig überflüssige Rechnerkapazitäten vorhalten. Er kann Rechenzentrumsleistungen hinzubuchen, wann er sie braucht, und abschalten, wenn er sie nicht mehr benötigt. Er kann wachsen, ohne seine IT zu stressen. Und er kann schrumpfen, wenn es die Geschäftslage verlangt, ohne dass die eigene IT ihn auffrisst. Pay per Usage ist eines der attraktivsten Angebote von Infrastructure as a Service.

Mehr Funktionalität gibt es durch die Hybrid Cloud, wenn bestehende IT-Anwendungen on Premises erweitert werden können durch zusätzliche Cloud-Services, die beispielsweise Big Data Analysen oder KI-Anwendungen von Spracherkennung bis Machine Learning ergänzen. Wir erleben derzeit geradezu einen „Option-Shock“ an Anwendungsmöglichkeiten, die sich durch Cloud Services ergeben. Oder wie Satya Nadella formuliert: Wir demokratisieren künstliche Intelligenz. Will sagen: jeder kann sie haben, wenn er will und wann er will.

Wenn Flexibilität und Funktionalität nicht schon starke Argumente für die Cloud sind, dann sollte Souveränität die „Killer-App“ für Cloud-Skeptiker sein. Wer heute seine Unternehmenslösungen im eigenen Rechenzentrum betreibt, beschränkt sich in nahezu allen Punkten der Infrastruktur selbst. Nach jüngsten Studien von Bitkom Research waren zwei Drittel aller Unternehmen in Deutschland in den vergangenen zwölf Monaten Ziel einer Hacker-Attacke. Und praktisch ebenso viele erwarten, in Zukunft Opfer von Cyberkriminellen zu werden. Unsere Azure-Zentren rund um den Globus sind deutlich besser gegen Hackerangriffe gefeit, als es – da lege ich mich jetzt mal weit aus dem Fenster – jeder mittelständische Betrieb in Deutschland unter Bedingungen der wirtschaftlichen Vernunft zu leisten vermag.

Und wer heute schon in eigene Cloud-Infrastrukturen investiert hat – und welches global aktive Unternehmen hat das nicht? – kann aus seiner Private Cloud mithilfe von Microsoft Azure Stack das eigene Gefängnis und die damit verbundenen Kostenstrukturen durchbrechen. Azure Stack ist nicht weniger als die identische Administrations-Umgebung für die Weiterentwicklung der Private Cloud in eine individuell Hybrid Cloud-Infrastruktur: soviel on Premises wie nötig und so viel Cloud-Services wie möglich. Und alles unter einer identischen Administrationsoberfläche – der Anwender merkt nicht einmal, dass er den Server wechselt, der ihm die Anwendungsdienste bereitstellt.

So gewinnen Anwender noch mehr Souveränität. Ein Beispiel aus der Microsoft Cloud-World mag dies verdeutlichen: Wer heute mit Azure seine Anwendungen in die Cloud verlagert, entscheidet sich für eine hybride Infrastruktur, die völlig unabhängig vom tatsächlichen Microsoft-Standort ist. So bietet beispielsweise das Microsoft Data Center in Dublin nicht nur sensationelle Skalierungsmöglichkeiten, sondern schafft echte Kostenvorteile alleine dadurch, dass Strom in Irland deutlich günstiger ist als in Deutschland. Wer also hochgradig rechenintensive Anwendungen fährt oder mit massiven Datenvolumen operiert, sollte die Stromkosten nicht aus den Augen verlieren. Für den aber, dem die Sicherheit – auch vor US-amerikanischem Datenzugriff – das oberste Gebot ist, sollte das Treuhand-Rechenzentrum der Deutschen Telekom in Partnerschaft mit Microsoft Azure die nötige Zuflucht geben. Und wer zum Beispiel wegen dem Ausstiegs Großbritanniens aus der EU einen Daten-Brexit fürchtet, kann innerhalb der Microsoft Azure-World in einen sicheren Hafen wandern. Per Knopfdruck!

Mehr Souveränität über die eigenen IT-Infrastrukturen geht nicht. Das gilt für Anwenderunternehmen mit eigenem Rechenzentrum oder ersten Erfahrungen mit dem Cloud Computing ebenso wie für Hosting-Anbieter, die für ihre mittelständischen Kunden die optimale Infrastruktur bereitstellen wollen. Microsoft Azure bietet europaweit mehr Flexibilität, mehr Funktionalität, mehr Sicherheit und vor allem Souveränität.

Übrigens: kein Wunder, dass wir Europäer mehr von Sicherheit und Souveränität in der Cloud verstehen. Es waren ja schließlich auch Europäer, die Amerika entdeckt haben. Smile!

Office 365 Data Loss Prevention Block Access with SharePoint and OneDrive

$
0
0

Last week we announced Office 365 Data Loss Prevention Block Access (https://techcommunity.microsoft.com/t5/Security-Privacy-and-Compliance/Policy-Tips-in-SharePoint-Online-and-OneDrive-for-Business-at/ba-p/116158) with SharePoint Online and OneDrive for Business.  Office 365 Data Loss Prevention Block Access prevents the potential for overexposure of sensitive information by allowing a Tenant administrator to configure Data Loss Prevention Policies limiting how and with whom sensitive information can be shared.

For example, if a document is determined to contain sensitive information, for example U.S. Financial Data, a DLP policy can prevent that information from being shared externally or with guests while providing real-time policy information to the user attempting to initiate the share.

Users are presented with a Policy Tip when viewing information about the document in addition to the option to view the specific policy that limits sharing of the document.

In addition, if the user attempts to share content that violates the policy configuration, they are notified at the time of sharing with a Policy Tip and link to additional information.

Configuring Office 365 Data Loss Prevention Block Access policies in the Security and Compliance Center

To configure Office 365 Data Loss Prevention Block Access policies browse to https://protection.office.com/, and expand Data loss prevention.

Under Data loss prevention select Policy.

Select Create new policy to create a policy and choose from one of the available templates.

Provide a Name and Optional description of the policy and click Next.

Select one or more locations to protect and click Next.

Under Policy settings select Detect when this content is shared: and choose With people outside of my organization and click Next.

On the What do you want to do if we detect sensitive info? dialog select Restrict who can access to the content and override the policy and click Next.

Optionally you can configure additional settings for the policy such as:

  • The ability to block specific people from accessing sensitive content that meets the criteria of the policy.
  • Allowing policy override with or without business justification.

Click Next to save the policy settings.

On the Review your settings page, click Create to save and apply the policy.

Configuring Existing DLP Policies

In addition to the creation of new policies, a Tenant administrator can use Windows PowerShell to configure existing data loss prevention policies for block access.

To update one or more existing policies, connect to Office 365 Security and Compliance Center PowerShell, refer to the Windows PowerShell example below:

Get-DlpComplianceRule | Where-Object {$_.BlockAccess -eq 'true' -and $_.BlockAccessScope -ne 'PerUser' -and $_.AccessScope -eq 'NotInOrganization' -and $_.NotifyUser -ne ''} | Set-DLPComplianceRule -BlockAccessScope 'PerUser'

NOTE

The script above will turn any DLP policy rules that previously blocked everyone (except Last Modifier, Owner, and Site Administrator) into a rule that only blocks access to external users.

Resources

To learn more about data loss preventions policies in Office 365 visit Overview of data loss prevention policies at https://support.office.com/en-us/article/Overview-of-data-loss-prevention-policies-1966b2a7-d1e2-4d92-ab61-42efbb137f5e.

Windows PowerShell and DSC on Linux in Microsoft Azure

$
0
0

Hello everyone! I'm Preston K. Parsard, Platforms PFE and I'd like to talk about running PowerShell and Desired State Configuration (DSC) on Linux in Microsoft Azure. Just in case you haven't heard yet, PowerShell has been open sourced and released for Linux since 18 August, 2016. More details and other resources for the announcement can be found here. If you are new to DSC in general, you may want to first hop over to one of the posts my colleage Dan Cuomo wrote about for a quick intro and a plethora of online training resources here, then pop back to this post and continue reading.

What challenges does this address?

Different operating system platforms requires different tools, standards and procedures, and in many cases, multiple teams of IT Pros. This requires more resources and can create silos within the IT department. DevOps aims to enhance business value by improving operations for people, proceses and technology by encouraging cross-platform collaboration and integration to simplify IT operations.

What are the benefits?

For teams with Windows administrators in a predominantly Windows environment, who manage a few Linux systems, or Linux administrators in a largely Linux shops that must also administer some Windows machines; Both may now realize the benefit of leveraging a single set of tools and standards such as PowerShell and DSC.

1.    Efficiency: With this script, you can now quickly create a basic test environment infrastructure in as little as about 30 minutes, to begin explore the features of PowerShell and DSC on Linux.

2.    Cost: There is no capital investment required to set up storage, networking, compute, a home lab, or a physical facility since this is all done in Azure. An Azure subscription is required though, which you can try it free for 30 days here.

3.    Administration: The administrative requirements to create this environment is much lower than managing physical infrastructure directly, and the complexity of the setup is handled automatically in the code.

4.    Training & Skills Development: PowerShell and DSC on Linux is still a fairly new concept, but now you can review this post and use the script to reference how it works in detail, sort of like the "Infrastructure as Code" idea to develop these cross-platform skills. You may even decide later to contribute back to the PowerShell Core community to make things better and easier for all of us in the spirit of collaboration and continuous improvement.

As an IT Pro, knowledge of a widely accepted technology implemented across multiple platforms means you can also offer and demonstrate more valuable skills for your current or future employers, plus it's just more fun anyway!

What is the script overview?

We'll cover creating a small lab to support running PowerShell and DSC on Linux, and since this will be created in Microsoft Azure, there are no hardware requirements except the machine you will be running the script from. When you're finished, you can easily remove all the resources to reduce cost and rebuild again whenever you need to.

The script will deploy all the infrastructure components required, including network, storage, and the VMs themsleves. One of the cool features of this script is that you don't have to worry about downloading the additional files from GitHub, such as the DSC configuration script or the shell script for the Linux systems to install PowerShell core on each distro. The main script includes functions that will auto-magically download, stage and copy these files for you, in addition to any DSC resources from www.powershellgallery.com ! You have the option of creating between 1-3 Windows VMs, and exactly 3 Linux VMs. By default, 1 Windows 2016 Datacenter VM will be created, but you can use this command to specify a parameter value for more Windows VMs when you run the script.

.New-PowerShellOnLinuxLab.ps1 -WindowsInstanceCount <#>

Where <#> is a number from 1-3

Example: .New-PowerShellOnLinuxLab.ps1 -WindowsInstanceCount 2

The Windows VMs are really placeholders at this point, since the script will be enhanced to eventually integrate the Windows servers into PowerShell and DSC operations with the Linux VMs. For now, the focus will be on just configuring the Linux distros for Azure Automation DSC and to run PowerShell, though you can always be creative and continue experimenting with Windows/Linux PS and DSC integration youreself in the meantime, then give us your feedback so we can all make the experience even better!

The 3 Linux VMs deployed will have these distros:

1) UbuntuServer LTS 16.04

2) CentOS 7.3, and

3) openSUSE-Leap 42.2.

On each of these distros, PowerShell Core will be installed based on a single shell script activated by the Linux custom script extension. For the DSC pre-requisites and installation, the DSC for Linux VM extension will be configured for each machine as it is being provisioned by the main PowerShell script New-PowerShellOnLinuxLab.ps1. An automation account will also be instantiated by the main script and a DSC configuration file will be imported and compiled to this Azure Automation account. Since the configuration will use the pull method in Azure, each Linux system will also require their local configuration mananger properties to be modified in order to pull the compiled configuration from Azure Automation. Ok, so now the stage is set and the configuration is staged (ha!). Each Linux VM will apply the configuration compiled in the Azure Automation account to reach their specified desired state. Great, so what is the desired state in this case?

The desired state is to simply create a new text file in the path of tmpdirfile with the content of file being ... hello word. No prizes for geussing that one, right? While this may seem simplistic, remember that you can continue to experiement with more sophisticated configurations and resources, so this is just to get started and introduce you to the basic concepts for now. Who knows, we may even update the script for more complex scenarios in the future. We can test this simple configuration after the deployment using the following commands:

  1. (Ubuntu) $linuxuser@AZREAUS2LNX01~$ sudo cat /tmp/dir/file
  2. (CentOS) $linuxuser@AZREAUS2LNX02~$ sudo cat /tmp/dir/file
  3. (openSUSE) $linuxuser@AZREAUS2LNX03~$ sudo cat /tmp/dir/file

We can also test running PowerShell in each of these builds. For convenience, I've included a few sample commands within comments at the end of the main script labled as:

#region POST-DEPLOYMENT TESTING

What are the requirements?

Before diving in any further, let's cover what we'll need first.

  1. A Microsoft Azure subscription.
  2. Subscription owner or contributor permissions.
  3. Resource capacity to deploy between 4-6 VMs with the size of Standard_D1_v2 for each.
  4. Windows PowerShell Version 5.0 on the on-premisses machine from which you run the PowerShell script.
  5. An SSH Key-Pair for secure Linux authentication.

During the script execution, you will be prompted for the following information:

  1. Your Microsoft Azure subcription credentials.
  2. The name of your subscription.
  3. A resource group name, using the convention rg##, where ## is a two digit number.
  4. The Azure region for the deployment.
  5. A Windows user password. The username will be ent.g001.s001 (ent stands for enterprise administrator – eventually when we promote the Windows VM to a domain controller, and g in g001 is for given name, while s in s001 is for the surname property. How did you guess? 😉)
  6. The path for the SSH public key file that will be used to securely authenticate you to an SSH session for each Linux VM, so remember to create your key-pairs before running the script.
  7. A review of the deployment summary will be presented for the next prompt, at which time you may elect to proceed with the deployment if you are satisfied with the values; Enter yes to continue or no to quit.
  8. Finally, at the end of the deployment, you will be prompted whether you would like to open the logs now for review. Select yes to open logs now, or no to quit.

What does the environment and process look like?

To make it easier to visualize, here is the diagram of the solution. Just follow the index numbers and match them up with the sequence outlined on the right to get a general idea of the process.


Figure 1: New-AzureRmLinuxLab.ps1 Script Summary Sequence of Activities

What are the details for each step?

In the following list, more details of each step outlined in the diagram is covered.

Step 1: The script downloads, installs and imports the required modules from www.powershellgallery.com and saves them to the default PowerShell module path. These modules include a custom logging module, the required DSC module for Linux and the Azure modules. The nx.zip Linux module is also copied to a local staging folder and will be uploaded to a storage account resource later in the script.
Step 2: A custom logging file is created to record logging of script activity using the logging module that was just downloaded in step 1.
Step 3: For more extensive logging, a transcript to track all PowerShell transactions is also started using the Start-Transcript cmdlet. This information will be saved to a log file as the script continues to execute.
Step 4: The user is now prompted to authenticate to an Azure subscription with their registered credentials.
Step 5: The script will then prompt the user for the name of the subscription that will be used for this deployment.
Step 6: The script then asks for a new resource group name. The format must use rg, followed by a two-digit number, such as rg01.
Step 7: In this step, the script will request the Azure region where this deployment will be built. As a convenience, the region name will also be re-utilized as the name of the virtual network later in the script without additional user intervention. After the region name is supplied, the script creates the resource group, since the region is a required parameter for the resource group.
Step 8: An Azure automation account will then be created by the script, using the prefix AzureAccount, followed by a randomly generated 4-digit number, such as AzureAccount3425.
Step 9: Since there will be between 1-3 Windows servers, the script will now pro-actively create an availability set named AvSetWNDS for these machines to accommodate fault tolerance for faults and updates. Managed storage will be used for the operating system and data drives for each Windows machine, so this parameter is also specified by the script when creating the availability set.
Step 10: For the 3 distros of the Linux machines, an availability set is also created for planned and unplanned downtime and to support managed disks. The name of this availability set is AvSetLNUX.
Step 11: The windows administrator username is pre-defined in the script as ent.g001.s001, but a password is also required. In this step, the user is prompted for a Windows password that will, together with the username, make up the credentials for building the Windows machines.
Step 12: Next, the script creates the username
linuxuser
for the initial user account for each distro.
Step 13: For the Linux machine credentials, an SSH key-pair will be used. This means an existing SSH public key must already exist as a pre-requisite before the script is executed. The user is now prompted to specify the path for the SSH public key file that the script will use to configure the credential parameter for each Linux distro.
Step 14: The script will now configure the subnet for the Windows servers with the name WS and an address space of 10.10.10.0/28.
Step 15: The next subnet created by the script is LS for the Linux servers, with an address space of 10.10.10.16/28 to align next to the WS subnet.
Step 16: Now that both required subnets are defined, the Virtual Network (VNET) is created, using the WS and LS subnets as parameters to complete the configuration. The name of the VNET will be inherited from the region name supplied earlier by the user, i.e. EASTUS2.
Step 17: For security, it is a best practice to apply network level firewall rules in Azure using Network Security Groups (NSGs). Here, an NSG is created named NSG-WS, rules defined to allow RDP to each Windows VM, and then associated to the WS subnet.
Step 18: Another firewall is configured in the same manner for the LS subnet, which is named NSG-LS. The rules are slightly different however, to allow SSH and WSMAN TCP ports 22 and 5986 inbound for all the Linux servers in this subnet.
Step 19: At this point, the script will generate a summary of properties that have been set for the deployment. Some properties, such as the resource group and the region were supplied by the user, but others, like the VNET and VM names were constructed by the script. The user reviews the summary and types yes or no to continue or stop the deployment.
Step 20: The next resource the script creates is the storage account. It will use a random string generator to create the storage account name. This is because the name must be globally unique in DNS, consist of 3-24 characters and must also be lowercase and numeric only. The script then queries DNS to ensure that the randomly generated name is globally unique. If it isn't then a loop is used to generate a new random string until the name is unresolvable in DNS, meaning that it is available to use for creating the storage account resource.
Step 21: The script will now check for the existence of a custom directory within the user profile at <$env:Home>/New-AzureRmLinuxLab/Scripts and if it isn't available, create it. The <$env:Home> environment variable resolves to the currently logged on user's home profile, as in c:users<userid>.This folder named Scripts will be the download target for scripts that are hosted in the New-AzureRmLinuxLab GitHub repository.
Step 22: The script then uses a custom function to download the files AddLinuxFileConfig.ps1 and Install-OmiCimServerOnLinuxAndConfigure.sh from the public New-AzureRmLinuxLab GitHub repository, to the <$env:Home>/New-AzureRmLinuxLab/Scripts directory created in step 21.
Step 23: The nx.zip Linux module is retrieved by the script from the public online repository at www.powershellgallery.com , then installed and imported as a module on the deployment machine. It is also copied to a staging area in the local file system at: <$env:Home>/New-AzureRmLinuxLab/Modules. If the Modules subfolder didn't exist before, it will be created now. From here, this module will be uploaded to another intermediate area before imported into Azure Automation modules.
Step 24: Next, the script will generate the onboarding metaconfigurations from the Azure Automation account for each of the Linux VMs. The resulting *.mof files will first be placed in a new DscMetaConfigs directory at <$env:Home>/New-AzureRmLinuxLab for subsequent uploading to the powershell-dsc staging container in the new storage account. These metaconfig files, AZREAUS2LNUX01.meta.mof, AZREAUS2LNUX02.meta.mof and AZREAUS2LNUX.meta.mof as shown in the diagram, will specify the URL, registration key, and the refresh frequency used to pull and apply the Azure automation DSC node configuration later in the deployment process.
Step 25: To host the custom Linux extension script that will install and configure PowerShell, the script now creates a staging container named staging in the storage account.
Step 26: For the nx.zip Linux DSC module, the script creates a container, also in the same storage account, named powershell-dsc.
Step 27: The Install-OmiCimServerOnLinuxAndConfigure.sh script is now uploaded to the staging container that was created in step 25. From here, this script will later be consumed and executed by each Linux VMs as they are being built.
Step 28: The nx.zip Linux DSC resource that was previously staged locally in step 23, is now uploaded to the powershell-dsc container that was created in step 26.
Step 29: The metamof files created in step 24 are now uploaded to the powershell-dsc container as well.
Step 30: The nx.zip Linux DSC resource is then imported into Azure Automation so that when the Linux VMs pull the DSC node configuration, each local configuration manager will refer to the resources contained in this nx module to apply the configuration.
Step 31: The AddLinuxFileConfig.ps1 DSC configuration script is now imported into Azure Automation DSC configuration.
Step 32: After the *.ps1 script is imported, it must then be compiled into a *.mof format to be consumable by target nodes, in this case the Linux servers.
Step 33: The Windows VMs are now built based on the value of the $WindowsInstanceCount variable, so if this value is 3, the loop will create 3 new Windows 2016 Datacenter VMs of size Standard_D1_v2. Each will have a public and private IP addresses and two drives, a system and a data drive, which both uses managed disks.
Step 34: The Linux VMs are built by iterating 3 times through a loop in the script. Like the Windows VMs, these also use the Standard_D1_v2 size, have public and private IP addresses and host two managed disks - one for the operating system and the other for data. As each VM is built, a custom script extension is applied to execute the Install-OmiCimServerOnLinuxAndConfigure.sh script. Since the installation of PowerShell and configuration of iptables and newer style firewalls in each machine uses varying syntax, this single *.sh (shell) script first checks the distro of the machine, and based on that distro, uses an if-fi condition with the appropriate syntax to perform the installation and firewall configurations. Also during creation, a Linux DSC extension is added to each Linux VM. This is where the *.metamof files for each machine is applied so that after the system is built, it will be coded with the necessary properties for the local configuration manager to pull the DSC node configuration from Azure Automation during first startup.
Step 35: The script will now prompt the user whether they want to open the log files. If yes is specified, then two files will open, but they will appear as only one. This is because the transcript file will be superimposed on the custom log file. To see both files, just drag the transcript file away from the log file and the script completes. If the user responds by typing no, the script finishes also, but no logs are displayed. To see the logs later, just navigate to <$env:Home>/New-AzureRmLinuxLab. The log and transcript files will be shown as displayed below. Also note that each file is created with a time-stamp.



How do I test the deployment? (Step 36)

To test the results, follow the steps outlined here for each Linux VM. For brevity, only UbuntuServer LTS 16.04 distro will be shown in this example, but you should test all 3 distros to ensure that the results are consistent after-all.

  1. SSH to each Linux VM using it's username and public IP address: (linuxuser@<public IP>) and the SSH private key file, plus a pass-phrase if configured.
  • At the shell run the command $linuxuser@AZREAUS2LNX01~$ sudo cat /tmp/dir/file


  • Type powershell to start the PowerShell core engine.

  • Start typing PowerShell cmdlets and observe the results.

 

Where's the Script?

You can review or download the script from GitHub here. I've included comments where I think it was necessary to make it readable. Remember that the only file you need to download and run is this one:

Figure 2: Script in GitHub

What did we just cover?

So we've outlined some key benefits of cross-platform tools like PowerShell and DSC for heterogeneous environments, provided a quick overview of the script, it's requirements, included a diagram, some details and the link for the script itself in GitHub. Feel free to sumbit any issues in GitHub for the script or contribute by forking the repository and making pull request.

That's it friends. Thanks for reading and hanging in there with me! Happy automating!

Where can I get more information?

Index Title Type Link
1 DSC for the PFE: A Training Montage TechNet Blog: Ask PFE Platforms Link
2 PowerShell DSC for Linux is now Available MSDN Blog Link
3 Install .NET Core and PowerShell on Linux Using DSC TechNet: Hey Scripting Guy! Blog Link
4 Get Started with Desired State Configuration for Linux Microsoft Docs Link
5 Using DSC on Microsoft Azure Azure Documentation Link
6 Passing credentials to the Azure DSC extension handler Azure Documentation Link
7 PowerShell-DSC-for-Linux Microsoft GitHub Repo Link
8 Azure Automation DSC Overview Azure Documentation Link
9 PowerShell DSC for Linux Step by Step TechNet Building Clouds Team Link
10 Monad Manifesto Jeffrey P. Snover Link
11 PowerShell DSC for Linux Installation PowerShell Magazine Link
12 Posh-SSH: Open Source SSH PowerShell Module PowerShell Magazine Link
13 Running DSC Cmdlets through CIM Session on Linux Stack Overflow Link

SEO Key words: Linux, PowerShell, DSC, Azure Automation

Viewing all 34890 articles
Browse latest View live


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