投稿者「charo」のアーカイブ

charo について

自転車乗ってます。のぼりで失速してます。。。 車乗ってます。良く回ってます。。。 テニスやってます。サーブ入りません。。。

SharePoint OnlineをPowerShellで操作してみる

SharePoint OnlineをPowerShellで操作する方法はいくつかあるけれど、Invoke-Webrequestを使わずやってみる。

1. Entra IDからアプリの登録

バッチ処理が前提のため、まずEntra IDからSharePoint Online操作用のアプリを登録する。

■ 必要な設定項目のみ抜粋

[構成されたアクセス許可]

・Microsoft Graphから「アプリケーションの許可」

・Files.ReadWrite.All

・Sites.Read.All

[証明書とシークレット]

自己証明書の作成とThumbprintの取得

$certname = "spo-test"
$crt = New-SelfSignedCertificate -Subject "CN=$certname" -CertStoreLocation "Cert:\CurrentUser\My" -KeyExportPolicy Exportable -KeySpec Signature -KeyLength 2048 -KeyAlgorithm RSA -HashAlgorithm SHA256 -NotAfter(Get-Date).AddYears(20)
$crt | select Thumbprint

先の手順で作成した証明書をアップロード

2. SharePoint Onlineにファイルをアップロード

実際にPowerShellを使ってSharePoint Onlineにファイルをアップロードしてみる。

例)サイト名:テストサイトのドキュメントにあるテストフォルダにローカルのhoge.txtファイルをアップロード

$uploadFile = "C:\folder\hoge.txt"
$fileName = "hoge.txt"

try {
    Connect-MgGraph -ClientId "先の手順で作成したアプリ登録のClient ID" -CertificateThumbprint "先の手順で取得したThumbprint" -NoWelcome
    Write-Host "[Info] SPOに接続しました"
} catch {
    Write-Host "[Error] SPOに接続できませんでした"
    exit
}
$SiteID = Get-MgSite -Search "テストサイト" | Select-Object -ExpandProperty Id
$driveID = (Get-MgSiteDrive -SiteId $siteID | Where-Object {$_.Name -eq "ドキュメント"}).Id

$documentDriveItemID = (Get-MgDriveItemChild -DriveId $driveID -DriveItemId "root" | Where-Object {$_.Name -eq "ドキュメント"}).Id
$uploadFolderID = (Get-MgDriveItemChild -DriveId $driveID -DriveItemId $documentDriveItemID | Where-Object {$_.Name -eq "テストフォルダ"}).Id
$driveItemID = $uploadFolderID+":/"+$fileName+":"
try {
    Set-MgDriveItemContent -DriveId $driveID -DriveItemId $driveItemID -InFile $uploadFile
} catch {
    Write-Host "[Error] SPOにアップロードできませんでした"
}
Disconnect-MgGraph

3. はまりどころ

Set-MgDriveItemContentのリファレンスマニュアルの説明が少なすぎて使い方がわからなかった…

https://learn.microsoft.com/ja-jp/powershell/module/microsoft.graph.files/set-mgdriveitemcontent?view=graph-powershell-1.0

DriveItemIdの引数、素直に考えるとそのままDriveItem IDを入力すればよいと思いきや、それだとダメ

実際のところは…

DriveItem ID+ “:/”+アップロードする際の任意のファイル名+”:”

こんなのわからないって…

Microserver Gen10 Plus v2購入

10年近く使い続けてきたMicroserver Gen8。動いていたOSもWindows Server 2012R2とEOSLなのでこの機会にハードウェアごと一新しようと思い、Microserver Gen10 Plus v2を購入。

構成

定番のHPEの箱。構成は最小モデル。どのみち中身を換装するので…

換装パーツはXeon E2336とメモリ64GB(32Gx2)。

ちょうどGen11が販売され始めた時期だけど、Gen10のチップセットはC252なのでこのパーツ構成。なお、Xeon E-2336なのはCPUの冷却がヒートシンクだけので、TDP65Wで収まるもので最上位という理由。

ストレージは写真を撮り忘れたので格納後。

SSDx2、HDDx2。SSDはMicroserver Gen10用専用マウントケージを使用。なくても適当な汎用ケージで問題ないことは確認済。HDDはそのまま取付。ただし、専用品ではないので差し込む際、コネクタの位置合わせにちょっと手こずる。また、取り外す際、青色のレバーを使えない。

起動ドライブはSSD USBメモリ。

これらのパーツを取付。

Gen8と同様に背面からボードを引き抜いて作業できるので作業性はよい。

なお、SSD USBメモリには汎用のヒートシンクを取付。

ベンチマーク

せっかくなのでCPUのベンチマーク。OSはWindows Server 2022。

まずは初期で乗っていたPentium Gold G6405のシングルコアをCINEBENCHで計測。

Pentium Gold G6405のマルチコア。

つづいてXeon E-2336のシングルコア。

Xeon E-2336のマルチコア。

さすがに比べ物にならない…

C262チップセットだと起動ドライブにNVMeを使えたりとより各パフォーマンスはさらに向上するけど、まぁ、通常利用だと特に不満はなし。

最後にMicroserver Gen8との対比。

Microserver Gen8の半分のサイズ!

ACアダプタ駆動だし”一般”のご家庭に設置できるレベルです。

Windows Server2022のWSL2はミラーモードもブリッジモードもサポートしていない

タイトルがすべてだけど、2024年2月現在、Windows Server 2022の下記バージョンのWSL2はミラーモードもブリッジモードもDNSトンネリングもサポートしてません…

現状、細かいことをしたいなら素直にWindows 11ないし素のLinuxを使えという話ですね。

$ uname -r
5.15.133.1-microsoft-standard-WSL2

ミラーモード

[wsl2]
networkingMode=mirrored
dnsTunneling=true

wsl: ミラー化されたネットワーク モードはサポートされていません。NAT ネットワークにフォールバックします
wsl: DNS トンネリングはサポートされていません

ブリッジモード

[wsl2]
networkingMode=bridged
vmSwitch=External
dhcp=true

wsl
ネットワークを構成できませんでした (networkingMode Bridged)。ネットワークを無効にするには、C:\Users\username\.wslconfigで 'wsl2.networkingMode=None' を設定します
Error code: Wsl/Service/CreateInstance/CreateVm/ConfigureNetworking/HCS/0x8037010d

RP9のパーツ選定

RP9に組み合わせるパーツ選定は個人的に結構難しい。というより、フレームがやはりくて選択肢が限られる。オールラウンダーといいつつ、重量はエアロフレームのそれだし。

6.8kgを目指すならホイールを軽量のものにしないと厳しいかな…

■初期装備

RP9の初期装備、サクッと交換できるところは大体軽い。

タイヤR1X190g
チューブSUPER LIGHT50g
サドルVENTO ARGO R1189g

まず、R1Xは軽量でこれ以上というのが厳しい反面、細かな振動を拾いまくりで乗り心地が悪く即交換。なので、むしろ重量増。

チューブも軽さだけはピカイチ。SOYOラテックスに変えて重量はトントン。落としどころはこの辺かなと思うけど、攻めるなら両輪にREVOLOOPで50g削減は可能か。

サドルのVENTO ARGO R1は軽い部類だけど、自分には硬すぎて交換。こちらも重量増。

■ 追加装備

まずはペダル。DURAペダルだと228gの増加。そこにサイコンマウント、ボトルケージ、ゼッケンプレート。この辺を合わせると150g増にはなる。

なお、ペダルはチタンシャフトに変えれば190g増くらいで押さえられるか。

■ 交換装備

重いと話題のステム。200gもあるのでこれを交換する必要あり。加えてハンドルももう少し軽く出来そう。まだやってないけど、ここで100gほど削ることが出来そうではある。

VibeのSuperlightハンドルトステムを使えばもうちょっと攻められそう。

現実的には7.1kg台に仕上げられたら御の字かな…

RP9って速いの?

ようやく納車されたRP9。いろいろといじっている最中だけど、結局のところ、レースに出てる人からすると速いのかそうじゃないのかという点に尽きると思う。

体感的にはTarmac SL6より速い気がするけど、フレームの差異かどうかは正直わからない。

ただ、総合パッケージとしてはTarmac SL6より速い。その理由はRP9のフレームにあるというよりDT SWISSのARC 1100 DICUTにある気がするけど。

このホイール、とにかく高速域でめちゃくちゃ伸びる。公道でダウンヒルするにはちょっと速度が伸びすぎるときが…

ともあれ、ホイールをうまく生かせて走れるのであれば、それはよいフレームと言えなくもないけどホビーレーサーからすると少し固め。が、DOGMA F10のように、「あ、これは無理」と言った感じでもなく、レースに出る人ならそれなりのトルクとペダリングスキルはあるはずなのでクリアできるはず。

さて、体感的には以上だけど、データ的にはどうなのという話で同一コースの過去ログと比較してみた。

走行時間走行距離 [km]標高 [m]平均パワー [W]平均スピード [km/h]バイク
4:50:00130.61761.4154.326.6SL6
4:50:13130.821705.1137.226.7RP9
4:56:13131.621736.1147.826.7SL6
4:57:19131.891688.414526.6SL6
5:05:30130.991719.7138.425.7SL6
5:13:34131.911678.3134.525.2SL6
5:14:51131.771691.2133.925.1SL6

RP9の走行ログは上から2番目。

ベストこそ出ていないけど、そもそもそんなに踏んではなく、平均パワーは137.2Wと低め。にもかかわらず5時間近く走ってベストと13秒差。

なにより17W近くパワーが低いにもかかわらず13秒差はエアロ効果がやはり大きいと思う。

実際、138Wで走ったSL6だと5:05と15分も差が…

無論、風や気温、信号の影響もあるのでこれだけのデータを持って一概にRP9の方が速いとは言い切れないけど、やはりそれなりに速いフレームだとは思う。

だとすると、残る問題はTarmac SL7やPROPELと比べてどうなの?という話だけど、これはフレーム持ってないから試しようがないね…

CANYON H36 Aerocockpitを購入

CANYONのH36 エアロコックピットをポチった。初の一体型だけど、公式サイトを見てもちょっと情報が少なかったので買うのにドキドキ。特に気になったのは重さとステム長。重量誤差とほんとにステム長が指定の長さなのかは買ってみないとわからなかったので突撃。

まず、買ったのはこちら。

ハンドル幅390mm、ステムは100mm。リーチは公式サイトには記載はないはずだけど、74mm、ドロップは130mm。

そして気になる重量は…

いろいろ小物も全部入れて計測で407g。ビニールが2gはあるだろうから実質405gかな。カタログスペックの400gより5g重い…

ちなみに見ての通り、ケーブル配線は簡単そう。バーの中を通すのではなく、ハンドル内に沿わせてからカバーをネジ止めするタイプなので。

続いて100mmと記載のあるステム長。実際の所は…

110mmでした! (写真だとハンドルの上部からに見えなくもないけど、実際はハンドルのほぼ真ん中ら測ってます)

100mmってどこの地点の100mmなんだろうか? ともあれ、従来のハンドル、ステム分離基準でいくと110mmということで。

とりあえず、素直な感想としてはちょっと重いなぁ…

Windows Server 2022が起動しなくなった

ディスクのパフォーマンステストをして、いろいろとディスク交換していたら突如、Windowsが起動しなくなってしまった。

SATAコントローラのPort3,4のディスク交換だと問題なかったのに、Port1,2を変えた途端

これですよ(涙

いろいろと格闘してみるも、この時点では原因を完全につかみ切れなく、面倒になって、クリーンインストールすることに。

ところが、クリーンインストールをしようとしたところ…

Port5に挿したSSDしか認識していない。この状態で「Next」を押しても上記の通り、new partionを作成できない旨の警告が出て先に進めず。

ここからは推測だけど

  • ディスクをPoolにするとインストールドライブとして認識されず、使用できなくなる
  • Microserver Gen8でPort5を使用してWindowsをインストールした場合Port1~4のどこかにブートローダが保存される(Port1?)

以上のあたりをつけて、Windows 11でPoolとして作成したディスクをUSB接続し、いったんPoolを削除。

4本がんばって削除…

無事、インストール画面でディスクが見えた。と同時に各ディスクにMSR領域がちゃんと確保されていることを確認(なのに、なぜ起動できなかった???)

 ⇒ このMSR領域はPoolのためのものではないかと推測

すっきりさせた状態でインストール。

Windows Server 2022をインストール後にディスク管理を見てみると…

予想通り、ディスク0(Port1)の先頭にブートローダらしきものが書き込まれてる!

ということで、突然Windows 2022が起動しなくなったのは元々Port1に挿していたHDDを新しいHDDに入れ替えたことで、ブートローダが消えちゃった為ということがほぼ判明…

つまり、同時にMicroserver Gen8でPort5にSSDを挿してWindowsをインストールする場合はPort1にディスクを挿しておく必要があり(正確にはPort5だけだったらそれでもokですが、普通Port1~4を使わないという選択肢はないですよね…)、Port1のディスクを抜くとブートローダを見失うので、OSが起動しなくなるというわけか。

これって、MicoroServer Gen8の運用でよく見られるUSBメモリにブートローダを入れて、そこからシステムが入ったディスクを読みに行かせるテクニック以外にも、Port1の先頭にブートローダ領域を作ってやり、そこにブートローダを突っ込むことでLinux等も運用できるのではないかということでもあるよね…(検証はしませんが)

これで一件落着と思いきや、よく見たら

ディスク0、MBRで2TBしか認識してない(涙

MicroServer Gen8がBIOSにしか対応してないからWindows Server 2022がブートローダ領域を格納するディスク0をGPTではなくMBRで作成したのね…

ということはやはり、Windowsもディスクをフルに使うためにはUSBメモリを挿してそこにブートローダを突っ込むという選択しかなさそう…

まずは筐体内部のUSBポートにUSBメモリを挿入。

もったいないけどこちらを使用。

続いてbcdbootコマンドでブートローダをUSBメモリに書き込み。

bcdboot C:\Windows /s D: /f ALL

書き込まれたことを確認。ここから意図的にPort1のディスクを抜いてUSBメモリでWindowsが起動すれば完璧!(USB Memory KeyのBootを有効に)

無事、起動!!

長旅でした…

仮想ディスクを高速化したい その2

前提

ファイルサーバ:Windows Server 2022 Standard

ベンチマーク実行PC:Windows 11

接続:双方共に10Gbps

前回からの変更点

SSDを追加購入。前回と同じSanDiskのSDSSDH3-2T00-G25

テスト

今回から仮想ディスクを記憶域階層で作成。SSD2台のミラーとHDD2台のミラーを合わせて作成。

ミラー遅い… シンプルに比べたら当然遅いし、パリティに比べても結構遅い。パフォーマンスのSSDがあまり仕事してない?

ちょっとどうしたものかと悩んだあと、ReFSでもテストしてみることに。

ReFSが思ったよりも速い!! これなら十分。

続いて、ライトバックキャッシュを4GBに増やしてどうなるかテスト。

ライトバックキャッシュはGUIからだと1GB固定となり、任意の値を設定できないので、PowerShellから仮想ディスクを作る。

$SSD階層 = New-StorageTier -StoragePoolFriendlyName "Pool" -FriendlyName "SSD_Tier" -MediaType SSD
$HDD階層 = New-StorageTier -StoragePoolFriendlyName "Pool" -FriendlyName "HDD_Tier" -MediaType HDD

New-Volume -StoragePoolFriendlyName "Pool" -FriendlyName "Test" -AccessPath "E:" -ResiliencySettingName "Mirror" -ProvisioningType "Fixed" -StorageTiers $SSD階層,$HDD階層 -StorageTierSizes 190GB,290GB -FileSystem NTFS -WriteCacheSize 4GB
New-Volume -StoragePoolFriendlyName "Pool" -FriendlyName "Test" -AccessPath "E:" -ResiliencySettingName "Mirror" -ProvisioningType "Fixed"

ライトバックキャッシュ1GBと変わりなし…

ReFSでもライトバックキャッシュ増量による恩恵はなさそう。

新機材投入

最初のテストで気になったそもそもHDD遅すぎじゃない?という疑問に対する答えを出すためにHDDも追加で買ってみた。

Western DigitalのWD60EFAX-EC。Red Plusの6TBモデル。もうちょっと大きいサイズでもよかったけどそんなに容量いらないので。

Red Plus速い! NTFSでもなかなかの速度。

続いてReFS。こちらは、ランダム4kのQ32でちょっと良くなったくらいで目立った向上はなし。NTFSに比べると正直、HDDの性能向上による恩恵は少ない感じ。

というわけで、いろいろベンチマークを取った結果、初となるReFSで運用することに決定!

仮想ディスクを高速化したいその1

新規に構築したWindows Server 2022に現行ファイルサーバ(Windows Server 2012 R2)からrobocopyでデータ移行してみたもののどうにも遅い気が…

というわけで、一度ベンチマークを取ってみたところ…

Writeがめちゃくちゃ遅い(涙

というわけでチューニングの旅です。

物理ディスクはクローゼットの中でホコリをかぶっていたWestern DigitalのWD30EZRX 3TBディスク4本。

仮想ディスクの作成は下記のコマンドで実行。

 New-VirtualDisk -StoragePoolFriendlyName "Pool" -FriendlyName "VirtualDisk1" -ResiliencySettingName Parity -Size 20TB -ProvisioningType Thin -NumberOfColumns 4

うーん、上図のとおりWriteが遅い… Thinで作ったから???

ということで固定で作ってみる。

New-VirtualDisk -StoragePoolFriendlyName "Pool" -FriendlyName "VirtualDisk1" -ResiliencySettingName Parity -Size 6TB

全体的に速くなったけど、やっぱりWriteが…

使ってるHDDがイマイチなんだろうか。

というわけで、記憶域階層を試して見ようと思って、SSDを1台だけ購入。1台しかないのでミラーではなくシンプル構成で。なお、追加したSSDはSanDiskのSSDH3-2T00-G25

あと3.5インチ変換に裸族のインナー CRIN2535。こちら、アイネックスのHDD変換マウンタを最初に買ったら、MicroServer Gen8のHDDマウンタに取り付けた際、SATAの差し口が本体と合わなくて使えないという凡ミスをおかして買い直すはめに…

ともあれ結果の方は…

予想通り、速くなった!

チューニングというかもはや物理換装をやってるだけだけど、もう少し続く

http://kururu.dip.jp/blog/?p=4966

Windows Server 2022 日本語化

購入したWindows Server 2022が英語版なので日本語化。

[Time&Language] をクリック

インストール時に日本語キーボードを選択したせいかすでに[Japanese]が用意されていたので[Options]をクリック

Language packを[Download]

元の画面に戻って[日本語]を選択して一度サインアウトすると

無事、ユーザー画面は日本語完了。

続いて管理画面も。

[管理用の言語の設定]をクリック

[設定のコピー(O)]をクリック

[ようこそ画面とシステムアカウント]にチェックを入れて[OK]をクリック

再起動後からようこそ画面も日本語に!