#navi(../)
* PowerShellでユーザーアカウント情報を確認する方法 [#l41b0192]
Win32_UserAccountとWhere-Objectを使えば簡単にユーザーアカウントの情報を取得することができます。~
尚、ドメイン参加状態で確認しました。
以下に使用例を記します。
#contents
#htmlinsertpcsp(win-top.html,win-sp.html)
* 関連記事 [#we1c275a]
-[[コマンドプロンプトでパスワードの有効期限を確認する>コマンドプロンプト/パスワードの有効期限を確認する]]
* 使用したWindowsおよびPowerShellバージョン [#ye45b4fa]
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
* Win32_UserAccountを確認する [#dedaad2f]
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
:
:
<省略>
* 特定ユーザの情報を取得する [#t70f9fb5]
今回は、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();
パスワード有効期限などを調べる場合はメンバーに無いので他の方法になると思われます。~
ユーザーアカウントのパスワード有効期限切れ等の情報取得に関しては、コマンドプロンプトで紹介しています。
-[[コマンドプロンプトでパスワードの有効期限を確認する>コマンドプロンプト/パスワードの有効期限を確認する]]
#htmlinsertpcsp(win-btm.html,win-sp.html)