2016-11-27 28 views
1

空のオブジェクトを返すWebページから次のコードを呼び出します。私は同様の手順(Get-ADOrganizationalUnit -LDAPFilter '(name = *)' -S SearchBase 'OU = Staff、OU =すべてのユーザー、DC = xx、DC = xx、DC = xx')から別のpowershellコマンドレットを実行します。私には組織単位のリストが与えられているので、このページでpowershellを実行できることはわかっていますが、何らかの理由でプロキシアドレスのリストを取得する際に問題が発生しています。私はプロキシアドレスを取得する方法がわからないので完全に立ち往生しています。ASP.NETからGet-ADUserを使用してproxyaddressを取得できません

ご協力いただければ幸いです。

おかげ ダレン

Public Function GetProxyAddresses(sUsername As String, sIPAddress As String) As StringBuilder 
     Try 
      Dim psConfig As RunspaceConfiguration = RunspaceConfiguration.Create 
      Dim psRunSpace = RunspaceFactory.CreateRunspace(psConfig) 
      psRunSpace.Open() 

      Using psPipeline As Pipeline = psRunSpace.CreatePipeline 

       psPipeline.Commands.AddScript("Get-ADUser " + sUsername + " -properties proxyaddresses | select-object @{""name""=""proxyaddresses"";""expression""={$_.proxyaddresses}}") 

       Try 
        Dim builder = New StringBuilder 
        Dim results = psPipeline.Invoke() 

        For Each PSObject In results 
         builder.Append(PSObject.Properties("proxyAddresses").Value + "\n") 
        Next 

        GetProxyAddresses = builder 

       End Try 
      End Using 
      psRunSpace.Close() 

     Catch ex As System.Management.Automation.Remoting.PSRemotingTransportException 
      AddLogEntry(ex.Message, "N/A", ex.ErrorCode, Now.Date, sUsername, sIPAddress, HttpContext.Current.Request.Url.AbsolutePath, System.Reflection.MethodInfo.GetCurrentMethod.Name) 
     End Try 
    End Function 

答えて

0

これを達成する方法はたくさんあります。私はあなたの要求を満たすために次の方法を与えました。これがあなたの必要性を満たすことを願っています。

# sample Examples as CSV 

Get-ADUser MyUser01 -properties * | select-object name, samaccountname, surname, enabled, @{"name"="proxyaddresses";"expression"={$_.proxyaddresses}} | Export-Csv ProxyAddress.csv 

Get-ADUser -Filter * -SearchBase 'ou=TestOU,dc=domain,dc=com' -Properties proxyaddresses | select name, @{L='ProxyAddress_1'; E={$_.proxyaddresses[0]}}, @{L='ProxyAddress_2';E={$_.ProxyAddresses[1]}} | Export-Csv ProxyAddress.csv –NoTypeInformation 

# Will find any active directory object that has an exact match to the e-mail address you place in the filter ie. [email protected] 

Get-ADObject -Properties mail, proxyAddresses -Filter {mail -eq "[email protected]" -or proxyAddresses -eq "smtp:[email protected]"} 

# This filter (Using wildcards) will also grab not only smtp addresses but other types such as x500: eum: sip: etc. 

Get-ADObject -Properties mail, proxyAddresses -Filter {mail -like "*emailportion*" -or proxyAddresses -like "*emailportion*"} 

# Using a LDAP query to find the matching object 
Get-ADObject -LDAPFilter "(|([email protected])(proxyAddresses=smtp:[email protected]))" 

# LDAP with wildcards 

Get-ADObject -LDAPFilter "(|(mail=*emailportion*)(proxyAddresses=*emailportion*))" 

# Using SIP 

Get-ADObject -Properties proxyAddresses -Filter {proxyAddresses -eq "sip:[email protected]"} 
+0

ありがとうRanadip。私はこれらのいくつかを行って行きます。 –

+0

@DarrenM:確か。コーディングを楽しむ –

関連する問題