Windowsパソコンでネットワーク越しにパソコンのユーザープロファイル情報を得たい時に役立つ機能の紹介です。職場のパソコンのインベントリ情報を遠隔で収集したいときなどに活用します。
WMIを使うので以下サイトを参考にして、接続できるようにしておく必要があります。
実施方法
PowerShellで以下のコマンドを実行すると、$profiles変数に取得した情報が格納されます。
1 |
$profiles = Get-WmiObject -Class Win32_UserProfile -ComputerName ホスト名oIP |
Select-Objectで内容を確認してみると、次のような情報が取得されます。長いので抜粋です。この中でLocalPathにプロファイルフォルダのパスや、LastUseTimeに最後に使われた日時などが格納されているので参照します。これらを活用して最終ログインユーザーを確認したりします。(ただあまり信ぴょう性が無いです)
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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
PS C:\> $win32user | Select-Object * PC001 : PC001 __GENUS : 2 __CLASS : Win32_UserProfile __SUPERCLASS : __DYNASTY : Win32_UserProfile __RELPATH : Win32_UserProfile.SID="S-1-5-21-1802596371-847214064-3664019745-1003" __PROPERTY_COUNT : 29 __DERIVATION : {} __SERVER : PC001 __NAMESPACE : root\cimv2 __PATH : \\PC001\root\cimv2:Win32_UserProfile.SID="S-1-5-21-4857104977-646737872-36 64019745-1003" AppDataRoaming : System.Management.ManagementBaseObject Contacts : System.Management.ManagementBaseObject Desktop : System.Management.ManagementBaseObject Documents : System.Management.ManagementBaseObject Downloads : System.Management.ManagementBaseObject Favorites : System.Management.ManagementBaseObject HealthStatus : 3 LastAttemptedProfileDownloadTime : LastAttemptedProfileUploadTime : LastBackgroundRegistryUploadTime : LastDownloadTime : LastUploadTime : LastUseTime : Links : System.Management.ManagementBaseObject Loaded : False LocalPath : C:\Users\hitoriit Music : System.Management.ManagementBaseObject Pictures : System.Management.ManagementBaseObject RefCount : RoamingConfigured : False RoamingPath : RoamingPreference : SavedGames : System.Management.ManagementBaseObject Searches : System.Management.ManagementBaseObject SID : S-1-5-21-1802596371-646737872-3664019745-1003 Special : False StartMenu : System.Management.ManagementBaseObject Status : 0 Videos : System.Management.ManagementBaseObject Scope : System.Management.ManagementScope Path : \\PC001\root\cimv2:Win32_UserProfile.SID="S-1-5-21-4927145674-646737872-36 64019745-1003" Options : System.Management.ObjectGetOptions ClassPath : \\PC001\root\cimv2:Win32_UserProfile Properties : {AppDataRoaming, Contacts, Desktop, Documents...} SystemProperties : {__GENUS, __CLASS, __SUPERCLASS, __DYNASTY...} Qualifiers : {dynamic} Site : Container : PC001 : PC001 __GENUS : 2 __CLASS : Win32_UserProfile __SUPERCLASS : __DYNASTY : Win32_UserProfile __RELPATH : Win32_UserProfile.SID="S-1-5-21-1802596371-646737872-3664019745-1001" __PROPERTY_COUNT : 29 __DERIVATION : {} __SERVER : PC001 __NAMESPACE : root\cimv2 __PATH : \\PC001\root\cimv2:Win32_UserProfile.SID="S-1-5-21-1802596371-646737872-36 64019745-1001" AppDataRoaming : System.Management.ManagementBaseObject Contacts : System.Management.ManagementBaseObject Desktop : System.Management.ManagementBaseObject Documents : System.Management.ManagementBaseObject Downloads : System.Management.ManagementBaseObject Favorites : System.Management.ManagementBaseObject HealthStatus : 3 LastAttemptedProfileDownloadTime : LastAttemptedProfileUploadTime : LastBackgroundRegistryUploadTime : LastDownloadTime : LastUploadTime : LastUseTime : 20230720120540.170000+000 Links : System.Management.ManagementBaseObject Loaded : True LocalPath : C:\Users\hitoriit2 Music : System.Management.ManagementBaseObject Pictures : System.Management.ManagementBaseObject RefCount : RoamingConfigured : False RoamingPath : RoamingPreference : SavedGames : System.Management.ManagementBaseObject Searches : System.Management.ManagementBaseObject SID : S-1-5-21-1802596371-646737872-3664019345-1001 Special : False StartMenu : System.Management.ManagementBaseObject Status : 0 Videos : System.Management.ManagementBaseObject Scope : System.Management.ManagementScope Path : \\PC001\root\cimv2:Win32_UserProfile.SID="S-1-5-21-1802596371-246737872-36 64019745-1001" Options : System.Management.ObjectGetOptions ClassPath : \\PC001\root\cimv2:Win32_UserProfile Properties : {AppDataRoaming, Contacts, Desktop, Documents...} SystemProperties : {__GENUS, __CLASS, __SUPERCLASS, __DYNASTY...} Qualifiers : {dynamic} Site : Container : |
SIDからログインIDのような見やすい形に変換するには次のように書きます。
1 2 3 4 5 6 |
PS C:\> $sid = New-Object System.Security.Principal.SecurityIdentifier($profiles[1].SID) PS C:\> $sid.Translate([System.Security.Principal.NTAccount]) Value ----- PC001\hitoriit |