2012-04-02 4 views
1

複数のドメインユーザーが最後にコンピュータにログオンしたときにクエリを実行するスクリプトを作成しています。私は\ docsとsettings \ usernameの最後にアクセスされた日付でそれを行うことができると思ったが、私たちのバックアップツールはその計画を奪取した。複数のユーザーの最後にログオンしたクエリ

次に、WMI_UserProfileを使用して調べましたが、ローカルプロファイルのみを照会します。だから私をWNI_NetworkLoginProfileに導いたのですが、ログオンしたユーザーのログオンの日付しか取得できないようです。 WNI_NetworkLoginProfileを使用して複数のユーザーの最終ログオン日を照会することは可能ですか、それとも他に何か質問できますか?コマンドラインツールを使用してwmic

On Error Resume Next 

Set WshNetwork = CreateObject("Wscript.Network") 
strComputer = WshNetwork.ComputerName 

strDayOfMonth = Right("0" & Day(Date()),2) 
strMonth = Right("0" & Month(Date()),2) 
strYear = Right (Year(Date()),4) 
strDate = strDayOfMonth & "/" & strMonth & "/" & strYear 

oLast = DateAdd("d", -60, strDate) 

Set objRegEx = CreateObject("VBScript.RegExp") 
objRegEx.Global = True 
objRegEx.IgnoreCase = True 
objRegEx.Pattern = "NT AUTHORITY\SYSTEM|NT AUTHORITY\SYSTEM|NT AUTHORITY\LOCAL SERVICE|NT AUTHORITY\NETWORK SERVICE" 

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") 
Set colItems = objWMIService.ExecQuery("Select * from Win32_NetworkLoginProfile") 

For Each objItem in colItems 
dtmAccessTime = objItem.LastLogon 
strReturn = WMIDateStringToDate(dtmAccessTime) 
strUsers = objItem.Name 
Set colMatches = objRegEx.Execute(strUsers) 
If colMatches.Count < 1 Then 
    strfolder = objFolder.Name 
    Wscript.Echo objItem.Name & " " & strReturn 
End If 
Next 

' Format Time and Date 
Function WMIDateStringToDate(dtmStart) 
WMIDateStringToDate = CDate(Mid(dtmStart, 5, 2) & "/" & _ 
    Mid(dtmStart, 7, 2) & "/" & Left(dtmStart, 4) _ 
     & " " & Mid (dtmStart, 9, 2) & ":" & _ 
      Mid(dtmStart, 11, 2) & ":" & Mid(dtmStart, _ 
       13, 2)) 
End Function 

答えて

1

テスト:

C:\> WMIC PATH Win32_NetworkLoginProfile GET Name,LastLogon 

は私に私のマシン上のすべてのユーザーのデータを示しています。これは、あなたが管理者権限を持っているかどうかにかかわらず、これがロックされているかどうか疑問に思います。 Windows Vista/7/2008ボックスでは、ユーザーアクセス制御によってすべてのデータが表示されなくなっている可能性もあります。

スクリプトを管理者として実行するようにしてください。

+0

ありがとうございます。実行すると、すべてのユーザープロファイルと日付が返されます。なんらかの理由で私のスクリプトは – chemist

+0

ではありません。あなたのスクリプトを投稿して他の人がそれを見ることができるようにしてください。 –

関連する問題