【问题标题】:Is there a way to query who are activesync/bb users through Exchange PowerShell?有没有办法通过 Exchange PowerShell 查询谁是 activesync/bb 用户?
【发布时间】:2018-12-02 01:08:33
【问题描述】:

有没有办法查询 Exchange 2007 以区分谁是使用 powershell 交换插件的活动同步用户或黑莓用户?

【问题讨论】:

  • 首先,我需要能够启用或禁用 activesync,我正在摸索如何做。现在我正在解析 IIS 日志,查看谁在访问它,但我想逐个用户禁用/启用 activesync。

标签: powershell blackberry active-directory exchange-server-2007 activesync


【解决方案1】:

BBES 通常使用有权访问所有邮箱的服务帐户来执行此操作。您将需要查看 BBES 服务器本身以找出哪些用户处于活动状态,而不是 AD 或 Exchange。由于 BBES 由数据库支持,因此只需深入了解 dbo.UserStats 表即可查看其中的内容。

【讨论】:

    【解决方案2】:

    试试这个。

    Get-CASMailbox -resultsize unlimited | Where-Object {$_.ActiveSyncEnabled -eq "True" } | Select-Object SamAccountName,ActiveSyncEnabled

    【讨论】:

      【解决方案3】:

      您可以查询哪些邮箱启用了必要的权限 - 就像您可以查看哪些邮箱启用了 OWA 一样。这实际上并不能告诉您谁在使用该功能,而只是告诉您谁可以。

      【讨论】:

        【解决方案4】:

        我发现 powershell 中有一个 cmdlet,它确实描述了 activesync 是否在线。

        如果你运行 > get-casmailbox |获取成员

        我注意到列表中有一个 ActiveSyncEnabled 属性

        【讨论】:

        • enabledactually using 并不完全相同 - 这就是我得到的答案。您似乎要求检查实际使用 - 很抱歉造成误解。
        【解决方案5】:

        我确实从这个网站上找到了这个 vbscript。http://blogs.technet.com/mjimenez/archive/2007/07/30/how-do-i-programmatically-disable-enable-microsoft-exchange-active-sync-for-all-of-my-mobile-users.aspx

        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        ''
        '' DISABLEEAS.VBS
        ''
        '' Disables Exchange Server 2003 Active Sync for the specified OU in the default domain
        ''
        '' usage: cscript disableeas
        ''
        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        
        ' Below are the values for the msExchOmaAdminWirelessEnable Exchange attribute that can be modified.
        ' 5 = disable EAS and keep OMA enabled.(default)
        ' 7 = disable all mobile features.
        ' 0 = enable all mobile features. (not recommended)
        
        
        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        '' Create log file instance
        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        
        On Error Resume Next
        Set objFSO = CreateObject("Scripting.FileSystemObject")
        Set objLogFile = objFSO.OpenTextFile("c:\disableeas.log", 2, True, 0)
        If Err.Number <> 0 Then
          ' Attempt to create a log file failed. 
          On Error GoTo 0
          objLogFile.WriteLine "ERROR: Failed to create a log file.Program execution halted."
          WScript.Echo "ERROR: Failed to create a log file. Program execution halted."
          WScript.Quit
          objLogFile.Close
          Set objFSO = Nothing
        Else
          ' Successfully Created Disableeas.log file. Restore normal error handling.
          On Error GoTo 0
          objLogFile.WriteLine "disableeas.log created successfully"
        End If
        
        
        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        '' Determine DNS domain name
        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        
        Set objRootDSE = GetObject("LDAP://rootDSE")
        strDNSDomain = objRootDSE.Get("defaultNamingContext")
        strBaseOU = "" 'SPECIFY AND ORGANIZATIONAL UNIT NAME HERE. FOR EXAMPLE 'OU=Production
        If Err.Number <> 0 Then
          ' Attempt to bind to Active Directory Failed.
          On Error GoTo 0
          objLogFile.WriteLine "ERROR: Binding to Active Directory Failed. Program execution halted."
          WScript.Echo "ERROR: Binding to Active Directory Failed. Program execution halted."
          WScript.Quit
          objLogFile.Close
          Set objFSO = Nothing
        Else
          ' Active Directory bind successful
          On Error GoTo 0
          objLogFile.WriteLine "Binding to Active Directory successful"
        End If 
        
        
        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        '' Setup ADO for Active Directory
        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        
        Set objCommand = CreateObject("ADODB.Command")
        Set objConnection = CreateObject("ADODB.Connection")
        objConnection.Provider = "ADsDSOObject"
        objConnection.Open "Active Directory Provider"
        objCommand.ActiveConnection = objConnection
        If Err.Number <> 0 Then
          ' Attempt to search Active Directory Failed.
          On Error GoTo 0
          objLogFile.WriteLine "ERROR: ADO Setup for Active Directory Failed. Program execution halted."
          WScript.Echo "ERROR: ADO Setup for Active Directory Failed. Program execution halted."
          WScript.Quit
          objLogFile.Close
          Set objFSO = Nothing
        Else
          ' ADO Active Directory setup successful
          On Error GoTo 0
          objLogFile.WriteLine "Active Directory setup successful"
        End If 
        
        ' Test whether an OU is specified.
        If strBaseOU <> "" Then
         strBase="<LDAP://" & strBaseOU & "," & strDNSDomain & ">"
        Else strBase="<LDAP://" & strDNSDomain & ">"
        End If
        'strBase="<LDAP://" & strDNSDomain & ">"
        wscript.echo strBase
        
        
        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        '' Search for users with defined filters
        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        
        strFilter = "(&(objectCategory=person)(objectClass=user)(!msExchOmaAdminWirelessEnable=5)(mail=*)(userAccountControl=66048))"
        strAttributes = "distinguishedName"
        strQuery = strBase & ";" & strFilter & ";" & strAttributes & ";subtree"
        objCommand.CommandText = strQuery
        objCommand.Properties("Page Size") = 100
        objCommand.Properties("Timeout") = 30
        objCommand.Properties("Cache Results") = False
        Set objRecordSet = objCommand.Execute
        If Err.Number <> 0 Then
          ' Attempt to search within defined parameters failed.
          On Error GoTo 0
          objLogFile.WriteLine "Attempt to search within defined parameters failed. Program execution halted."
          WScript.Echo "ERROR: Attempt to search within defined parameters failed. Program execution halted."
          WScript.Quit
          objLogFile.Close
          Set objFSO = Nothing
        Else
          ' Active Directory bind successful
          On Error GoTo 0
          objLogFile.WriteLine "Search within defined parameters was successful"
        End If 
        
        
        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        '' Enuerate all users
        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        
        Do Until objRecordSet.EOF
          strDN = objRecordSet.Fields("distinguishedName")
          Set objUser = GetObject("LDAP://" & strDN)
           On Error Resume Next
           objUser.Get("msExchOmaAdminWirelessEnable")
           On Error GoTo 0
            objUser.Put "msExchOmaAdminWirelessEnable", "5"
            objUser.SetInfo
               If Err.Number <> 0 Then
                On Error GoTo 0
         objLogFile.Writeline "ERROR: Unfortunately, the required mobile attribute generated an error can could not be set. Program execution halted."
                WScript.Echo "ERROR: Unfortunately, the required mobile attribute generated an error can could not be set. Program execution halted."
                Wscript.Quit
                objLogFile.Close
                Set objFSO = Nothing
               Else
                On Error GoTo 0
                objLogFile.Writeline "User mobile properties successfully modified: " & objUser.Name
             Wscript.Echo "User mobile properties successfully modified: " & objUser.Name
               End If
         '  End If
          objRecordSet.MoveNext
        Loop
        
        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        '' Clean up
        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        
        objLogFile.WriteLine "End Program"
        Wscript.Echo "End Program"
        
        objLogFile.Close
        

        我希望有一种方法可以由用户而不是你来做到这一点..

        【讨论】:

          猜你喜欢
          • 2010-10-07
          • 2010-10-07
          • 2015-03-19
          • 1970-01-01
          • 2015-02-06
          • 2020-05-29
          • 1970-01-01
          • 2019-07-06
          • 2017-05-12
          相关资源
          最近更新 更多