Share via


MIIS_PasswordChangeHistorySource Class

Represents a history entry of each password change request from the originating connected data source. To use this class, you must be logged on as a member of either the MIISBrowse security group or the MIISAdmins security group.

The following syntax is simplified from Managed Object Format (MOF) code and includes all inherited properties.

class MIIS_PasswordChangeHistorySource{ String CsGuid;
String DN;
String GUID;
String MaGuid;
String MIISReceiveTime;
String ReferenceGuid;
String ReturnCode;
String SourceServer;
String SourceChangeTime;
}

Name : MIIS_PasswordChangeHistorySource

Methods

Method Description

EventDetails Method

Returns the details, in XML format, of a history entry for each password change request that is sent from the originating connected data source to the Forefront Identity Manager Synchronization Service (FIM Synchronization Service) server in XML format.

Properties

Property Data Type Description

CsGuid Property

String

Gets the connector space GUID of the object.

DN Property

String

Gets the distinguished name of the object.

GUID Property

String

Qualifiers : Key

Gets the tracking GUID that is used to identify the password change request. This value is assigned by the FIM Synchronization Service server to track the password change request.

MaGuid Property

String

Gets the GUID of the management agent that receives the password change request.

MIISReceiveTime Property

String

Gets the date and time in Coordinated Universal Time (UTC, also known as Greenwich Mean Time) that the password change was received by the FIM Synchronization Service server.

ReferenceGuid Property

String

Gets the reference GUID that is assigned by the FIM Password Change Notification Service in the domain controller of the password change request.

ReturnCode Property

String

Gets the results of the password change request.

SourceChangeTime Property

String

Gets the date and time in UTC that the password was changed on the source server.

SourceServer Property

String

Gets the name of the source server that changed the password.

Remarks

The class supports the following restricted set of queries:

  • Search for a history entry that has a specified connector space object GUID by using the CsGuid Property in the query field. You can obtain this GUID from the Guid Property, for example: Set changeHistories = Service.ExecQuery("Select * from MIIS_PasswordChangeHistorySource WHERE CsGuid = '" & MIIS_CSObject.Guid & "')".

  • Search for a history entry that occurred before or after a specified time by using the MIISReceiveTime Property in the query field, for example: Set changeHistories = Service.ExecQuery("Select * from MIIS_PasswordChangeHistorySource WHERE MIISReceiveTime > '2004-10-14 03:25:07.221'").

    Note

    You cannot search for a history entry that occurred at a specified time.

  • Search for a history entry from a specified management agent by using the MaGuid Property in the query field. You can obtain the GUID of the management agent from the Guid Property, for example: Set changeHistories = Service.ExecQuery("Select * from MIIS_PasswordChangeHistorySource WHERE MaGuid = '" & MIIS_ManagementAgent.Guid & "')".

  • Search for a history entry from a specified reference GUID by using the ReferenceGuid Property in the query field. You can obtain the reference GUID from the ReferenceGuid Property or the ReferenceGuid Property, for example: Set changeHistories = Service.ExecQuery("Select * from MIIS_PasswordChangeHistorySource WHERE ReferenceGuid = '" & MIIS_PasswordChangeHistoryTarget.ReferenceGuid & "')".

  • Search for a history entry from a specified GUID that is assigned to this object by using the GUID Property in the query field. You can obtain the GUID from the EventDetails Method, for example: Set changeHistories = Service.ExecQuery("Select * from MIIS_PasswordChangeHistorySource WHERE Guid = '" &GUID From the EventDetails method& "')".

Each query field can only appear one time, except when you are searching for a history entry that occurred before or after a specified time. You can combine query fields using the AND operator, for example: Set changeHistories = Service.ExecQuery("Select * from MIIS_PasswordChangeHistorySource WHERE MaGuid = '" & MIIS_ManagementAgent.Guid & "' AND CsGuid = '" & MIIS_CSObject.Guid & "')".

In the previous example, the WHERE statement can use the following items:

  • ReferenceGuid = guid

  • MIISReceiveTime < time, MIISReceiveTime > time, (MIISReceiveTime > time AND MIISReceiveTime < time)

  • CsGuid = guid

  • GUID = guid

  • MaGuid = guid

Each Query Field can appear only one time. All of them can be joined using the AND operator.

Example

The following Microsoft Visual Basic Scripting Edition (VBScript) example shows how to use this class to get the password change history by user.

Option Explicit

On Error Resume Next

Const PktPrivacy = 6    ' Authentication level
Dim Service             ' Service object
Dim queryString         ' SQL Query string
Dim userName            ' sAMAccountName of the user
Dim domainName          ' User domain
Dim errorString         ' Error string
Dim statusString        ' Status string
Dim CSUsers             ' Connector space user collection
Dim User                ' Connector space user
Dim changeHistories     ' Change history collection
Dim changeHistory       ' Change history member

userName = "jeffsmith"
domainName ="fabrikam"
Set Service = GetObject("winmgmts:{authenticationLevel=PktPrivacy}!root\MicrosoftIdentityIntegrationServer")
If err.number<>0 then 
    errorString = "Could not retrieve service object: "
    errorString = errorString & Err.Description
    ErrorHandler(errorString)
End If

queryString = "Select * From MIIS_CSObject WHERE Domain = "
queryString = queryString & "'" & domainName & "' "
queryString = queryString & "and account = '" & userName & "'"
Set CSUsers = Service.ExecQuery(queryString)
If err.number <> 0 then
    errorString = "Could not find the user: "
    errorString = errorString & err.Description
    ErrorHandler(errorString)
End If

If CSUsers.Count = 0 then 
    statusString = "No users with that sAMAccountName."
    ErrorHandler(statusString)
End If 

For each User in CSUsers
    queryString = "Select * from MIIS_PasswordChangeHistorySource WHERE "
    queryString = queryString & "CsGuid = '"
    queryString = queryString & User.Guid & "'"
    Set changeHistories = Service.ExecQuery(queryString)
    If err.number <> 0 then
        errorString = "Could not retrieve password change history: " 
        errorString = errorString & Err.Description
        ErrorHandler(errorString)
    End If

    If changeHistories.Count = 0 then
        statusString = "There are no password change histories for the " 
        statusString = statusString & "user " & User.Account & "."
        WScript.Echo statusString
    Else
        For Each changeHistory in changeHistories
            statusString = "Change History for this user "
            statusString = statusString & userName &":"
            WScript.Echo statusString
            WScript.Echo changeHistory.eventDetails
        Next
    End If
Next

Sub ErrorHandler (ErrorMessage)
    WScript.Echo ErrorMessage
    WScript.Quit(1)
End Sub

Requirements

Product

Forefront Identity Manager Synchronization Service 2010

MOF

Mmswmi.mof

Namespace

MicrosoftIdentityIntegrationServer

See Also

Concepts

How to: Search for Password Change Requests from a Connected Data Source
WMI Provider Reference
Classes