kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

PowerShellのForeach-object parallel内でインデクサを使う

docs.microsoft.com

PowerShell 7で導入されたForeach-Object -parallelちょっと用事があってこんな感じで使おうとしました。

$outervalue = 1,2,3
$array = 10,20

$array | foreach-object -parallel {
  for($i = 0; $i -lt $using:outervalue.length;$i++){
     write-host $_ * $using:outervalue[$i]
  }
}

すると…

ParserError:
Line |
   3 |       write-host $_ * $using:outervalue[$i]
     |                                         ~~
     | Expression is not allowed in a Using expression.

こんな式は認められないと怒られました。

github.com

原因はここで書かれているのですが、parallel内の式ではオブジェクトが読み取り専用になるために、インデクサを指定するとだめなのだそうです。なので、GetValueを使って参照することになります。

$outervalue = 1,2,3
$array = 10,20

$array | foreach-object -parallel {
  for($i = 0; $i -lt $using:outervalue.length;$i++){
     write-host $_ * ($using:outervalue).GetValue($i)
  }
}

いわれてみればそうだなぁという仕様ですが、結構悩みました。

Azure DevOps 2022/2/28の更新

Azure DevOps Sprint 200到達です。おめでとうございます🎉。ということで、記念のリリースノートもそんなに長いわけでもなくいつも通り粛々と。オリジナルはこちらから読んでください。

docs.microsoft.com

Azure DevOpsのWikiは割と昔からmermaidをサポートしていたのですが、フィードバックされるものの長い間バージョンアップされず、利用者は困っていました。GitHubでサポートされたことにともないかどうかわかりませんが、Azure DevOpsでもようやく8.13.9へ更新されました。

Azure PipelinesにはPowerShellのAzモジュールとAzureRMモジュールの両方が入っていますが、AzureRMはリタイアが予告されていて、モジュール入っているPCでは警告が出るはずです。

techcommunity.microsoft.com

Azure PipelinesのFile CopyタスクでもAzureRMからAzモジュールへ移行したことでメジャーをあげたそうです。使っている人は忘れずに(多分警告出ていると思いますが)パイプラインを変更しましょう。

Artifactsも少し前からPreviewで新しいUIが来ていたと思いますが、Web Content Accessibility Guidelines (WCAG) 2.1に準拠しており、400%まで拡大しても大丈夫だそうです。こういうのはありがたいですねー。ほかのところでもやってほしい。Boardsのチケット作成のところとか拡大するとちょこちょこ見えないところがありまして…。

ではまた三週間後。

Translate to Japanese to Azure DevOps release not…

Azure DevOps 2022/2/11の更新

Azure DevOps Sprint 199リリースノートの翻訳を行いました。オリジナルはこちらから読んでください。

docs.microsoft.com

今回も簡単な内容でしたけど、とうとうSprint 199まできましたね。次が200ですけど、この分だと大きいものもなくひっそり終わりそうな気もしますが、どうなるんでしょう?

パスワード反映が早くなったことで一時的に401が出るので、再認証しないといけないとかエージェントが.NET 6へ移行するためにRHEL 6がサポートされなくなるとか細かい内容でしたが次回のSprint 200をちょっとだけ楽しみにしたいと思います。

ではまた三週間後。

Translate to Japanese to Azure DevOps release not…

PCを乗り換えた

こちらの記事の続きです。まぁまぁ移行できたので。

kkamegawa.hatenablog.jp

前のPCではオンプレミスのActive Directoryドメインに参加していました。これはこれで便利だったのですが今は色々困ることが多くなっていました。

前提 - Edge Devをデフォルトブラウザーにしていて、MSアカウント(個人)のプロファイルを使っていた - Microsoft 365はAzure ADアカウントで使っていて、Edge Stableのプロファイルにしていた - オンプレミスADはAzure ADとSSOしていない

あらゆるアカウントはEdge DevのMSアカウントプロファイルに保存していたので、たまにAzure ADプロファイルから開くときとかたまに困っていました。そこで今回はオンプレミスAD参加ではなく、Azure AD Joinにして、オンプレミスのADには繋がないことにしました。もうあまりオンプレミスに置かなくなったし、Surface Goで試してみたらまぁまぁ上手くいっていたし。

IntuneでMicrosoft 365の設定をしているので、OOBE(セットアップ画面)でAzure ADアカウントを指定すると以上終了ですね。Officeや設定した項目がインストールされます。もちろん設定は大変です(数台だとちょっと割に合わないかも😅)。

  • Edge Stableは従来通りAzure ADアカウントでデフォルトブラウザー
  • Edge DevはMSアカウントを使うけど、デフォルトではない
  • 今度はOneDrive for Businessのフォルダーリダイレクトを使ってDocuments/Desktop/Pictureをクラウド上に配置

これでまぁまぁ上手くいくように思います。オンプレミスADとSSOしていないこともあって、ネットワークプロファイルがパブリックのままになっているので、デスクトップではいいけど、開発で持ち出すノートだとサービス系のソフトが動いていると変なinboundつかんでしまうのが怖いのが少し悩みの種かもしれません。

今までOneDriveにDocumentsフォルダーを配置するのはどうも好きではなかったのですが、まぁこのご時世だしやらずにどうというのもあれかなと思って、フォルダーリダイレクト設定することにしました。正直デスクトップまでリダイレクトかけるのはどうかと思ったのですが、会社でも多いと思いますがデスクトップ上にドキュメントファイル置く人多いからしょうがないんでしょうかね。ちなみに私はデスクトップ上にドキュメントファイルを一時的であっても一切置きません。

最初はBluetoothの接続悪いなー初期不良かなーと思っていたのですが、アンテナ立てていないだけでしたorz。あれてっきりWiFi用だと思っていたのですが、マニュアルよく見るとBluetooth用って書いていました。アンテナ繋げると普通に接続できるようになったみたいです。

Intuneの設定で少し複雑なPINにしているので、毎回入力するのが面倒になってきました。Windows Hello対応のWebカム買おうかどうしようか迷っています。今のWindows 10/11は複数カメラからHello用のカメラを指定できるようになっているので、2台カメラあってもいいかな。

(追記). オンプレミスADに入らなかった理由もう一つ思い出しました。フレッツ使っていると、fletsのDNS suffixが強制的につけられて、お家ADがかなり困ったのです。民生機器ではどうにもならなくて、RTX830買ってみたりもしましたが、もう精魂尽き果てたので、関係ない世界に行きたかったのでした。

古くから使っている環境だったので、古いVSのコンポーネント(.NET 5ではないASP.NET 5のランタイムとか、VS 2005の.NET 1.1 とか入っていたのが綺麗に消えてよかったです。一応VS2019を入れてみましたが、.NET 5がもうEOL近いし、いらないかなと思って.NETのworkloadを入れなかったら「別にVS2019入れなくてもよかったのでは」となりました😅。

VS2022でも2019のCコンパイラ入れられますからね。