Office 365の同期環境下でパスワード変更ができない

Office 365ネタ。

DirSyncでアカウント同期してるテナントが対象です。今月入ってからぐらいでどうも同期ユーザーのパスワードをOffice 365側で変更しようとするとエラーになるっぽいです。

一応、発生した環境はこんな感じ

  • オンプレにActive Directoryドメインがある
  • DirSync使ってアカウント同期をしてる
  • パスワードはO365側で変更する(初回ログイン時とかで)
  • Active Directoryドメイン側とパスワード同期されてなくても良い運用(※特殊)

初回ログイン時に初期パスワードいれてパスワード変更画面にて新しいパスワードを指定すると以下のような画面になります。

error

※普通にパスワード変更しようとしてもエラーになります。

image

謎い。いろいろ切り分けると同期してないユーザー(O365側で作成したユーザー)は問題ない。。で、聞くところによるとAD同期してる場合はAD側でパスワード変更してくれという話。そんな馬鹿な。。。前までいけてたのに。

あと同期をもう一度やってくださいとか怖いことをおっしゃるので、やむなしということでDirSyncからパスワードのライトバックができるAADSyncのほうにバージョンアップしようと思います。(さすがにプレビューのAADConnectは入れない)

さくっとDirSyncをアンインストールします。

FIMとか関連するコンポーネントもアンインストールしてくれるようです。(SQLサーバーはそのまま残ってた)

アンインストール後、AAD Syncをインストールします。インストール後、O365テナントのアカウントID/Passを入力します。

image

オンプレActive Directoryの資格情報を入力して「Add Forest」して追加してからNextします。

image

オプション機能で「Password write-back」にチェックをいれます(パスワード同期は環境に応じてお好きに)

image

image

だいたいこんな感じです。セットアップ後は一度サインアウトしましょう(管理グループに入れられるけどそのままだと権限足らないので)

手動同期は C:\Program Files\Microsoft Azure AD Sync\Bin\DirectorySyncClientCmd.exe delta という感じで実行すると良しなにしてくれます。

とか思ってやってみたらやっぱりエラー。結局パスワードのWrite-backはというかセルフリセットはAzure AD Premiumの機能ですとかそんなオチ。でもともとの話だったO365側のパスワード変更できない云々は未解決\(^o^)/

ただのDirSyncからAADSyncへの移行ネタになってしまった。

|SR| λ…………トボトボ

Get-AzureVMでout of range

なんかAzure PowerShellのGet-AzureVMとかGet-AzureDeploymentとかで得られる応答の一部要素(PersistentVMDowntimeのEndTime)でDateTime.MaxValueなISO8601形式の値(9999-12-31T23:59:59Z)が入ってるようで、こいつを日本みたいなUTCにプラスするタイムゾーン圏内でDateTime.Parseしようとして例外吐いてるみたいです。

> get-azurevm
get-azurevm : The DateTime represented by the string is out of range.
At line:1 char:1
+ get-azurevm
+ ~~~~~~~~~~~
    + CategoryInfo          : CloseError: (:) [Get-AzureVM], FormatException
    + FullyQualifiedErrorId : Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS.GetAzureVMCommand

仮想マシンをシャットダウンしたり再起動したりすると、EndTimeの値がまともな値になるのかちゃんと動作するようです。いやいや。。。

Management API側の挙動が変わったのかなー?(こんな値入ってたっけ?)という気がしますが、仮想マシンの再起動とかフザケンナという人はAzure PowerShellを実行するPCのタイムゾーンをUTCとかPSTにして凌ぎましょう。(なんとなくMSには報告済み)

DateTimeOffset使えば問題なさげだけど。

D:\> [System.DateTime]"9999-12-31T23:59:59Z"
Cannot convert value "9999-12-31T23:59:59Z" to type "System.DateTime". Error: "The DateTime repres ented by the string is out of range."
At line:1 char:1
+ [System.DateTime]"9999-12-31T23:59:59Z"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [], RuntimeException
    + FullyQualifiedErrorId : InvalidCastParseTargetInvocationWithFormatProvider

D:\> [System.DateTimeOffset]"9999-12-31T23:59:59Z"


DateTime      : 9999/12/31 23:59:59
UtcDateTime   : 9999/12/31 23:59:59
LocalDateTime : 9999/12/31 23:59:59
Date          : 9999/12/31 0:00:00
Day           : 31
DayOfWeek     : Friday
DayOfYear     : 365
Hour          : 23
Millisecond   : 0
Minute        : 59
Month         : 12
Offset        : 00:00:00
Second        : 59
Ticks         : 3155378975990000000
UtcTicks      : 3155378975990000000
TimeOfDay     : 23:59:59
Year          : 9999

やれやれです。

2015.02.17 9:56 追記

Management REST API側で吐き出す値を修正したらしいです。とりあえず動作するようになりました。

同期環境下のOffice 365でExchange属性を弄りたい

あるよね。そういうこと。

オンプレに

  • Active Directoryドメインはある
  • Exchange Serverはない。過去も含めてない。
  • Active Directory SyncとかでOffice 365とアカウントを同期させてる

という環境があるとします。

※ちなみにオンプレ環境は全部Windows Server 2012 R2とします

で、ちょっとアドレス帳から非表示にしたいなーとか思うと

image

はい。ソウデスネ。

もちろんオンプレのADにはそんな(Exchange関連の)属性ありません。

image

どうしましょうか?素直なのは他の属性の値を使ってAADSyncとかのマッピングをいじることです。(ただこれも直感的に何をしてるのかわかりにくいのとSyncするツールに依存しちゃうのでどうなんだろう)
ということで今回は少し斜め上の対応をしてみましょう。

そう、Exchangeスキーマの拡張だけしてしまいましょう。

身もふたもない。

まず評価版のExchange Server 2013をダウンロードしましょう。

ダウンロードしたEXEを実行してファイルを展開します。その後以下のコマンドでSetup.exeを起動してスキーマ拡張だけ行います。(※もちろんバックアップとかその辺ちゃんと考えてください)

Setup.exe /PrepareSchema /IAcceptExchangeServerLicenseTerms

image

※細かい話はこの辺参照

完了後、スキーマが拡張されたので後はお好きにどうぞ。

image

image

やりました。

MicrosoftのCloud platform roadmap

こんなサイトができてました。

image

今後のMicrosoftのクラウドまわりの方向性だとか、今現在ざっくりどんな感じなのかを把握することができそうです。日本語欲しいですね。

なんでこういうのを出したの?という話はMSHQの沼本さんがアナウンスしているものを、さとうなおきさんが日本語訳にしているので是非そちらを参照ください。

Azure Update (2015.02.05)

こまかい点いくつか。

Automation が東日本で使えるようになりました

これで国内で安心して使えますね(?)※西も東もAutomationの用途からしたらどっちでもいい感

Azure Batch client library for .NET updated

Azure Batchの.NET向けクライアントライブラリがアップデートされました。細かなバグ修正のほかにAPI同期呼び出し時でデッドロックせずに使えるようになったとかなんとか。あとインテリセンスのバージョンアップですね。

サンプルもあるのでどうぞ。

※相変わらず英語の方に行かないとでないけど。

Azure Batchについてはこの辺どうぞ。

関連してBatchを管理するためのGUIアプリケーション(Azure Batch Explorer)もUpdateされたようなので、そちらもご覧ください。

HttpPlatformHandler Module のリリース

公式にもアナウンスきてました。HttpPlatformHandlerはIISでHTTPリスナーのプロセスを管理するためのモジュールです。ひらたくいうとTomcatだとかNodeとかのプロセスをIISであれこれしたりリクエストをプロキシしたりするためのモジュールですね。WebsitesでJavaを動かすために使われてたりします。

今回のリリースでお手軽に使えるようになったのと(今まではWebsites内だけだった)、IIS8以上で利用可能になりました。

詳しくはしばやん雑記でもいろいろ書かれてるので、そちらを参照ください。

Azure Update (2015.01.30) v12とかいろいろ

ざっくりと。

続きを読む

Windows 10 (Build 9926) のIE11で新しいレンダリングエンジンを使う

エンジンとしては例のSpartanが載ってたようです。

IEのアドレスバーに about:flags と入力して「Enable Experimental Web Platform Features」をEnabledにすればOKのようです。

ついでに Peacekeeper でスコアもとってみました。(Surface Pro 3上のWindows 10で)

・Spartan

・通常

ふむ?

・Chrome

ふむー?

まぁWin8.1上のIE11とChromeでやっても同じようにChromeのほうが倍ちかいスコアでるのでそういうもんでしょうか。

詳しい人レビューよろろ(