PowerShellのSet-ADUserコマンドレットでActive Directoryのユーザーの有効期限を変更する

以前はPowerShellのGet-ADUserコマンドレットでActive Directoryのユーザー情報を取得したり、New-ADUserでユーザーを登録したりしました。
今回はSet-ADUserコマンドレットで、ユーザーアカウントの有効期限を変更してみます。
環境はWindows Server 2012 R2のドメインコントローラーです。

なお、Get-ADUser、New-ADUser、Set-ADUserの各コマンドレットで、ユーザーアカウントの有効期限のオプションは「AccountExpirationDate」です。

(写真1)有効期限変更前のユーザーのプロパティ
有効期限変更前のユーザーのプロパティ
test01.localドメインのユーザー「TEST001」は、Active DirectoryユーザーとコンピューターのGUIで見ると、アカウントの有効期限が2015/2/28までとなっています。

(写真2)有効期限によってユーザーを抽出
管理者:Windows PowerShell
PS C:\> Get-ADUser -Filter {AccountExpirationDate -le "2015/12/31"} |Format-Table -Property Name,Enabled,AccountExpirationDate

Name                                  Enabled AccountExpirationDate
----                                  ------- ---------------------
TEST001                                  True


PS C:\> Get-ADUser -Filter {AccountExpirationDate -le "2015/03/01"} |Format-Table -Property Name,Enabled,AccountExpirationDate

Name                                  Enabled AccountExpirationDate
----                                  ------- ---------------------
TEST001                                  True


PS C:\> Get-ADUser -Filter {AccountExpirationDate -le "2015/02/28"} |Format-Table -Property Name,Enabled,AccountExpirationDate
PS C:\>
「Get-ADUser -Filter {AccountExpirationDate -le "2015/12/31"} |Format-Table -Property Name,Enabled,AccountExpirationDate」で、アカウントの有効期限が2015/12/31と同じか、それよりも短いユーザーを抽出します。
AccountExpirationDateが2015/12/31、2015/3/1ではTEST001はヒットします。
しかし2015/2/28だとヒットしません。ちょっと不思議です。
Active Directoryユーザーとコンピューターでは有効期限が2015/2/28なのに。

ここではパイプで「Format-Table」に送って、プロパティの中から「Name,Enabled,AccountExpirationDate」を選択して表示しています。
しかし肝心のAccountExpirationDateが何も表示されない理由はよくわかりません。

(写真3)有効期限変更前のユーザーの詳細情報
管理者:Windows PowerShell
PS C:\> Get-ADUser -Filter {AccountExpirationDate -le "2015/03/01"} -Properties *


AccountExpirationDate                : 2015/03/01 0:00:00
accountExpires                       : 130696092000000000
AccountLockoutTime                   :
AccountNotDelegated                  : False
AllowReversiblePasswordEncryption    : False
AuthenticationPolicy                 : {}
AuthenticationPolicySilo             : {}
BadLogonCount                        : 0
badPasswordTime                      : 0
badPwdCount                          : 0
CannotChangePassword                 : False
CanonicalName                        : test01.local/Users/TEST001
Certificates                         : {}
City                                 :
CN                                   : TEST001
codePage                             : 0
~以下略~
「Get-ADUser -Filter {AccountExpirationDate -le "2015/03/01"} -Properties *」を実行すると、有効期限が2015/3/1と同じかそれよりも短いユーザーの詳細な情報がリスト形式で表示されます。
AccountExpirationDateを見ると、「2015/03/01 0:00:00」になっています。
ああ、そう言う事ね。だから2015/2/28ではヒットしないのね。

(写真4)ユーザーアカウントの有効期限を変更

管理者:Windows PowerShell
PS C:\> Set-ADUser "CN=TEST001,CN=Users,DC=test01,DC=local" -AccountExpirationDate "2015/12/31"
PS C:\>
「Set-ADUser "CN=TEST001,CN=Users,DC=test01,DC=local" -AccountExpirationDate "2015/12/31"」を実行すると、TEST0001のアカウントの有効期限が2015/12/31に変更されます。
PowerShellのコマンド画面には何も反応がないのが淋しいです。

(写真5)有効期限によってユーザーを抽出

管理者:Windows PowerShell
PS C:\> Get-ADUser -Filter {AccountExpirationDate -le "2015/12/31"} |Format-Table -Property Name,Enabled,AccountExpirationDate

Name                                  Enabled AccountExpirationDate
----                                  ------- ---------------------
TEST001                                  True


PS C:\> Get-ADUser -Filter {AccountExpirationDate -le "2015/03/01"} |Format-Table -Property Name,Enabled,AccountExpirationDate
PS C:\> Get-ADUser -Filter {AccountExpirationDate -le "2015/02/28"} |Format-Table -Property Name,Enabled,AccountExpirationDate
PS C:\>
再度Get-ADUserでユーザーを抽出してみます。
「Get-ADUser -Filter {AccountExpirationDate -le "2015/12/31"}」だとTEST001がヒットしますが、2015/3/1や2015/2/28ではヒットしません。
想定通りです。

(写真6)有効期限変更後のユーザーの詳細情報

管理者:Windows PowerShell
PS C:\> Get-ADUser -Filter {AccountExpirationDate -le "2015/12/31"} -Properties *


AccountExpirationDate                : 2015/12/31 0:00:00
accountExpires                       : 130959612000000000
AccountLockoutTime                   :
AccountNotDelegated                  : False
AllowReversiblePasswordEncryption    : False
AuthenticationPolicy                 : {}
AuthenticationPolicySilo             : {}
BadLogonCount                        : 0
badPasswordTime                      : 0
badPwdCount                          : 0
CannotChangePassword                 : False
CanonicalName                        : test01.local/Users/TEST001
Certificates                         : {}
City                                 :
CN                                   : TEST001
codePage                             : 0

~以下略~
Get-ADUser -Filter {AccountExpirationDate -le "2015/12/31"} -Properties *」を実行すると、TEST001の詳細情報が表示されます。
AccountExpirationDateの値は何故か2015/12/31 0:00:00になっています。

(写真7)有効期限変更後のユーザーのプロパティ
有効期限変更後のユーザーのプロパティ
Active Directoryユーザーとコンピューターで有効期限を設定し、Get-ADUserでAccountExpirationDateを見ると翌日の0:00:00がセットされます。
しかしSet-ADUserでAccountExpirationDateを設定すると、当日の0:00:00がセットされます。
うーん、この辺の仕様はちょっと謎ですが。
こんな感じでSet-ADUserコマンドレットを使ってアカウントの有効期限を設定する事が出来ました。



以下参考

有効期限の変更前に、いつものおまじないのようなコマンドで、Active Directoryのユーザー情報をCSV形式にエクスポートしてみました。

(写真8)Active Directoryユーザーの情報をCSV形式にエクスポート
管理者:Windows PowerShell
PS C:\> Get-ADUser -Properties * -Filter * |export-csv -encoding default -path C:\Users\Administrator\Documents\ADUSER.csv
PS C:\>

(写真9)ADUSER.csvをExcelで開いてみた
ADUSER.csvをExcelで開いてみた

(写真10)ADUSER.csvをテキストエディタで開いてみた
ADUSER.csvをテキストエディタで開いてみた

Active Directoryユーザーとコンピューターでアカウントの有効期限が「2015/2/28」となっている時に、Active Directoryのユーザー情報をGet-ADUserでCSV形式にエクスポートし、念のためAccountExpirationDateの値をTeraPadやExcelで見てみました。
しかし間違いなく「2015/03/01 0:00:00」が入っていました。
GUIから有効期限を設定すると、内部的には翌日の0:00:00とセットされるんですね。
しかしSet-ADUserで有効期限を設定すると、その日の0:00:00がセットされるのは謎仕様ですが、まあその辺は良しとします。

テーマ : Windows
ジャンル : コンピュータ

テスト中

全ての記事を表示する

ブロとも申請フォーム

ブログ検索
プロフィール

norimaki2000

norimaki2000のブログにようこそ
・2013/01/05テンプレートをsantaからhouseに変更
・2012/10/29テンプレートをsweet_donutsからsantaに変更
Follow norimaki2000 on Twitter気軽に話しかけてね

ニューヨーク・マンハッタン(タイムズスクェア)180×135

千葉県在住で東京都内に勤務。SE歴20年超えました。

昔々はオフコンで販売管理などのアプリケーション開発していた。
ファミリーレストランの無線オーダリングやPOS、キッチンプリンタの全国展開なんかもやっていました。
最近はWindowsサーバーとVMware vSphereを中心としたサーバーインフラの提案・構築・保守を中心にやってます。
主な取り扱い製品は、
・Windows 2000 Server以降 (もちろんNT3.5やNT4.0も知っていますが)
・Active Directory (今で言うAD DS)
・Symantec Backup Exec
・Symantec System Recovery
・CA ARCserve Backup for Windows
・CA ARCserve Replication
・CA ARCserve D2D
・EMC RepliStor
・VMware vSphere
・某メーカーのクラスタソフトウェア

どれもこれも中途半端な知識と技術力ですが、なんとかやっています。
私自身は技術や製品を担当する立場ではなく、特定業種のお客さん(ユーザ企業)の対応窓口となるSEの役割りですから、必要であれば詳しい知識や経験豊富な別のSEを探してきてプロジェクトメンバに加えます。

もちろん小さな物件では自分で提案、インストール、お客さんへの導入、アフターサポートまでやります。
大きな物件では提案はやりますが、構築部分は専門部隊に依頼します。
その場合でもアフターサポート窓口は私がやりますので、お客さんに対しては一貫して窓口SEとなります。

サーバの世界の大きなトレンドは統合・仮想化。
2007年はVirtual Server 2005 R2によるサーバ仮想化も、2つのお客さんで本稼動させた。
2008年はVMware ESX 3.5を2セット構築。単純なローカル起動と、SANブート/VMotion/DRS/HA/VCBのフル装備もやった。
2009年はぜひHyper-Vの仮想環境を構築したいな。と思っていたが、なかなか機会に恵まれなかった。
2010年はVMware ESX 4.0でHA/VMotion/VCBバックアップを進行中。

そのほかにも、ドメインコントローラやファイルサーバの全国展開とデータ移行、特定のアプリケーションの実行基盤となるサーバ群のOS・バックアップ・DBクラスタなどインフラ部分の構築などをやっています。


2011年のポイントも引き続き、【ご利用は計画的に】。
今まで長年に渡って仕事も私生活も行き当たりばったりなので、少しでも物事を計画的に進められるようにしたい。
いつも計画性の無さが災いして多くの人に迷惑をかけています。
自分自身も計画的な仕事ができないため、いつもいろいろ苦労しています。
今年はさらに計画的に仕事をするようにしなきゃ。

それと若手を上手に使うようにならなきゃならん。
若手の育成はもちろんだけど、僕自身も仕事を上手に他の人に振ることができるようになりたい。
仕事の種類のせいなのか性格なのか、どうしても一人で抱え込んでしまうから。

【Twitter】2010年の元旦から始めました。平均して1日あたり10ツィート程度です。
仕事関連の呟きが少し、くだらない呟きがほとんどかな。
Follow norimaki2000 on Twitter
・norimaki2000 on Twitter

Follow norimaki2000 on Twitter
・norimaki2000 on Twilog


オンライン上ではあるけれど、今まで知らなかった人たちと交流する機会を得ることになり、非常に刺激を受けます。
仕事でも私生活でも、いろんな人のつぶやきは息抜きにもなり、また助けられたり、あるいは「もっとがんばんなきゃ」と励みになったりします。
Twitterを考え出した人の発想、システムとして作り上げた努力と情熱はすごい!!


【好きな音楽】ベテランの皆さんなら浜田省吾、尾崎豊、エコーズ、若手なら鬼束ちひろ、平原綾香、現在注目の若手はいきものがかり

【好きなアイドル】千葉県柏市を中心に活動する地元アイドルの「コズミック☆倶楽部」を激推し中です。

【好きな飲み物】シャンパンはご存知モエ・エ・シャンドン ブリュット アンペリアル、ビールはキリン ブラウマイスター、水ならビッテル、お茶ならキリン生茶

【好きなTVドラマ】Xファイル、24、ミレニアム、ER、CSI:科学捜査班シリーズ、NCIS:ネイビー犯罪捜査班、ザ・プラクティス、ボストン・リーガル



パソコン困り事相談もよろしく


最近の記事
最近のコメント
カレンダー
01 | 2015/02 | 03
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
カテゴリー
FC2カウンター
キーワード

Windows_Server VMware_ESX VMware vCenter_Server PowerShell PowerCLI VMware_Player vSphere_Client VirtualCenter Active_Directory vStorage_API Converter 文音 コズミック☆倶楽部 Windows Hyper-V Microsoft_Security_Essentials あいひょん なるみん Windows_8 VMware_Converter vSphere Backup_Exec カラオケ sora VCB SQL_Server Red_Hat_Enterprise_Linux Windows_Server_2012 System_Center Tech_Fielders VMware_vSphere 麗美 ARCserve_Backup ESX Internet_Explorer System_Recovery メモリダンプ RHEL remi Directory Server vSphere_CLI Firefox マークス Oracle ジン子 Symantec DMC-FZ1000 Backup VMware_HA vMotion Exec Active 路上ライブ Twitter schtasks  Office エミリースタイラー Vista System SE XenServer Sysinternals 氷結 Oracle_Database wevtutil Windows_Update コズミック倶楽部 NTFS キリン Visual_Studio vCenter_Converter 若手 DRS Recovery Emily_Styler sonoka 東京国際フォーラム 圧縮 スリムス カーナビ 修復 コマンドライン ついにステップワゴンを契約してしまった 一番搾り食物繊維 ラガー ATAPI 糖質 サクセス 0x0000007B スパークリングウォーター セキュリティ スパリゾートハワイアンズ スタローン ベビースター おとなのおつまみ 経済産業省 えびしお ロッキー バルボア オレッツァ corega 2008 白石美帆 カルディ エイドリアン おやつカンパニー 破損 草津 ジョシュ・ハートネット シャンプー台のむこうに デュポン ワイヤーアクション ブラックホーク・ダウン コロン ウォーター 北野 神戸 ハワイ ムエタイ マッハ けんけつちゃん 献血 お茶のチューハイ ポケモン・スタンプラリー はばたき福祉事業団 日本赤十字社 映画 東京タワー 写真 グレープフルーツ 伊藤園 掃除 雨どい カーポート 高原 グランダム セルシオ のどごし生 フィット 洗車 洗濯 バーベキュー 鬼押し出し園 羽田  サーバ 人口甘味料 関西空港 夏休み Brio キャンプ 万座温泉 サッポロ SweetGrass Tween OpenOffice Apache グループポリシー バッチ iStorage AWS robocopy Windows_Azure SkyDrive vStorag_API ARCserve_Replication -ayane- つりあやめ ARCserve_D2D こずくら Virtual_Infrastructure バックアップ イチトキ NVR500 IP38X/N500 Panasonic Intel wbadmin Windows_Serverバックアップ LUMIX FZ1000 コズミック☆LOVE Windows_Server_2016 vSphere_Web_Client Paper.li れみ 浜田省吾 Linux VMware_ESXi 加藤成実 OneDrive GR5 HUAWEI エミリー・スタイラー REAN シンガーソングライター OREZZA NetBackup NR-7900A Kit PC-Success PCI SAP Resource Replication IZZE IDE CG CDRW-AB24JL CD CR-V CoolMax Hyperion Gathers DVD STOPエラー SUPPLEX ジャンプフェスタ ITIL canaguitar DSP OpenOffice.org VMFS Wataru_Sato 佐藤航 cana OEM ULPC USB Tools Thunderbird USB2.0 Uptime.exe XP Word チャンカナ CAB 

月別アーカイブ
リンク
RSSフィード