Microsoft Ignite 2019レポート 〜 【セッション】PowerShell 7 〜

こんにちは、サイオステクノロジー技術部 武井です。私は、マイクロソフトが実施しているテクニカルカンファレンス「Ignite」に参加するためにフロリダのオーランドということろに来ております。Igniteが実施している期間中に、「ほぼ」リアルタイムレポートをお届けしたいと思います。今回は「PowerShell 7」について記載します。

IMG_2045

PowerShell 7はPowerShellの新しいバージョンです。いくつか新しい発表がありましたが、その中から2つ気になったものをピックアップいたします。

1つ目はSecrets Managementです。

IMG_2056

この機能を使うと、Office365に接続するのに毎回以下のようにめんどくさいことしたのが、

$secure = ConvertTo-SecureString "password" -AsPlainText -Force
$LiveCred = New-Object System.Management.Automation.PSCredential "admin@example.onmicrosoft.com",$password
Connect-MsolService -Credential $LiveCred

Get-SecretとするだけでOKのようです。具体的に細かい手法については述べられていなかったのですが、PowerShellによるパスワード管理が簡単になることが間違いないようです。

 

2つ目は、Foreach-Objectの並列処理です。

IMG_2060

これはForeach-Objectでループで処理をするときに、そのループを並列で実行するというものです。実際のコードは以下のとおりです(ちょっと見にくいのですが、、、)。

IMG_2061

上記のコードを詳細に解説したいと思います。

Measure-Command {1..10 | Foreach-Object {Start-Sleep2} -Throttlelimit 10}

これは、2秒待機する(Start-Sleetp 2)の処理を同時並列実行数最大10で実施したものの処理時間を測る(Measure-Command)というものです。実行時間はデモでは約2秒程度でした。結果から並列実行出来ていることは明らかです。

これ、すごい役に立つと思います。例えばOffice365のユーザーをCSVで大量に追加するというPowerShellの場合、今まではForeachでシリアルに実施するのが一般的でしたが、この新機能を使えば並列実行できるので、Office365への大量ユーザー追加がすぐ終わりそうです。

ただ、Office365やExchangeもそうですが、同時に実行できるPowerShellには上限があります。その上限を超えないようにThrottlelimitを適切に調整することが大事です。

現場からは以上でした。

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

1人がこの投稿は役に立ったと言っています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です