Win32_UserAccountとWhere-Objectを使えば簡単にユーザーアカウントの情報を取得することができます。
尚、ドメイン参加状態で確認しました。
以下に使用例を記します。
PS C:\> (Get-WmiObject Win32_OperatingSystem).Name Microsoft Windows 7 Professional |C:\Windows|\Device\Harddisk0\Partition1
PS C:\> $Host.Version Major Minor Build Revision ----- ----- ----- -------- 5 0 10586 117
Get-WmiObjectを使用して実行するとユーザーアカウント一覧が表示されます。
ユーザーが多い場合など時間がかかります。
PS C:\> Get-WmiObject Win32_UserAccount AccountType : 512 Caption : SAKURA\sakura Domain : SAKURA SID : S-1-1-11-1111111111-1111111111-1111111111-1111 FullName : 桜 咲 Name : sakura : : <省略>
今回は、sakuraユーザのユーザーアカウント情報を取得してみます。
以下のように Where-Object を使用してsakuarユーザのみ情報を変数に格納しています。
PS C:\> $uinfo=(Get-WmiObject Win32_UserAccount | Where-Object { $_.name -eq "sakura" })
変数$uinfoに格納された値を見てみます。
PS C:\> $uinfo AccountType : 512 Caption : SAKURA\sakura Domain : SAKURA SID : S-1-1-11-1111111111-1111111111-1111111111-1111 FullName : 桜 咲 Name : sakura
取得したユーザーアカウント情報のメンバーを確認すると使えるようなメソッドがありました。
PS C:\> $uinfo | get-member
TypeName: System.Management.ManagementObject#root\cimv2\Win32_UserAccount
Name MemberType Definition
---- ---------- ----------
PSComputerName AliasProperty PSComputerName = __SERVER
Rename Method System.Management.ManagementBaseObject Rename(System.String Name)
AccountType Property uint32 AccountType {get;set;}
Caption Property string Caption {get;set;}
Description Property string Description {get;set;}
Disabled Property bool Disabled {get;set;}
Domain Property string Domain {get;set;}
FullName Property string FullName {get;set;}
InstallDate Property string InstallDate {get;set;}
LocalAccount Property bool LocalAccount {get;set;}
Lockout Property bool Lockout {get;set;}
Name Property string Name {get;set;}
PasswordChangeable Property bool PasswordChangeable {get;set;}
PasswordExpires Property bool PasswordExpires {get;set;}
PasswordRequired Property bool PasswordRequired {get;set;}
SID Property string SID {get;set;}
SIDType Property byte SIDType {get;set;}
Status Property string Status {get;set;}
__CLASS Property string __CLASS {get;set;}
__DERIVATION Property string[] __DERIVATION {get;set;}
__DYNASTY Property string __DYNASTY {get;set;}
__GENUS Property int __GENUS {get;set;}
__NAMESPACE Property string __NAMESPACE {get;set;}
__PATH Property string __PATH {get;set;}
__PROPERTY_COUNT Property int __PROPERTY_COUNT {get;set;}
__RELPATH Property string __RELPATH {get;set;}
__SERVER Property string __SERVER {get;set;}
__SUPERCLASS Property string __SUPERCLASS {get;set;}
PSStatus PropertySet PSStatus {Status, Caption, PasswordExpires}
ConvertFromDateTime ScriptMethod System.Object ConvertFromDateTime();
ConvertToDateTime ScriptMethod System.Object ConvertToDateTime();
パスワード有効期限などを調べる場合はメンバーに無いので他の方法になると思われます。
ユーザーアカウントのパスワード有効期限切れ等の情報取得に関しては、コマンドプロンプトで紹介しています。