none
obscurity of ConverTo-Html

    Pertanyaan

  • Hi Scripting Folks.

    I'm stuck in troubleshooting and hope get some assistance here. Any tip, hint, etc is welcome.

    Problem:
    I do have 2 arrays (system.array) that contain ACL information for a certain directory.

    $users={domain\user1, domain\user2, ..., domain\user(n)}
    $parentgroups={domain\group1, domain\group2, ...domain\group(n)}

    $users is never empty and contains an array of active directory accounts
    $parentgroups is allow being empty but usually contains $users membership(s).

    When I pipe both $users & $parentgroups to e.g. out-file $report -append I'm happy with content.
    When I pipe both $users & $parentgroups to ConverTo-Html [parameterset] $parentgroups screws up to "system.object[]" instead to groups names. Ha? What's that about?
    Again, if someone can pin my attention in the right direction I'd be grateful.

    Regards, Rene
    [returning tomorrow]

    21 September 2010 15:53

Semua Balasan

  • Hi Rene

    this is a german speaking Forum. Please let us know if you have trouble continuing in german, so I can redirect your question to the appropriate english Forum.

    Could you please post the Script/Cmdlets used? It would ease the troubleshooting.

    How were the array members defined? As string or as user/group objects?

    Regards
    Andrei

    22 September 2010 10:56
  • Hallo Andrei.
    hallo Community.

    als Native-German habe ich natürlich keine Probleme mit der deutsche Sprache. Also, beschreibe ich mein Problem gern auch in Deutsch und etwas detaillierter (mit Skriptauszügen):

    Ich habe 2 arrays, welche ACL Informationen für ein Verzeichnis enthalten.

    $users2={domain\user1, domain\user2, ..., domain\user(n)}
    wird durch ein QAR cmdlet gefüttert:

    $users2 = get-qadgroupmember $my_acl_group -indirect -type user
    

    $parentgroups={domain\group1, domain\group2, ...domain\group(n)}
    wird mit der folgenden Schleife über die Elemente in $users2 gefüttert:

    foreach ($user in $users2) {
     $parentgroups = @()
     $memberships = $user.MemberOf
     foreach ($membership in $memberships) {
     foreach ($othergroup in $groups2) {
      If ($membership -eq $othergroup.DN) {
      $parentgroups += $othergroup
      }
     } #of $groups2
     } #of $memberships
     $user | Add-Member -membertype "Noteproperty" -Name "ParentGroups" -Value $parentgroups
    } #of foreach 
    
    $users2 | Sort-Object LogonName, ParentGroups `
        | <strong>ConvertTo-Html</strong> `
         -head $MyHtmlStyle `
         -CssUri "custom.css" `
         -title "$dir_wo_quotes - $my_acl_group - $my_acl_accesstype"   `
        | Set-Content $MyReport 
    

    $users2 ist (vermutlich) ein system.array aus Quest.PowerGUI.ScriptEditor.Shared.MonadObjectCollection Objekten
    $users  ist ein Quest.ActiveRoles.ArsPowerShellSnapIn.Data.ArsUserObject
    $users2 ist (vermutlich) ein system.array aus Quest.PowerGUI.ScriptEditor.Shared.MonadObjectCollection Objekten

    Mit den Bezeichnungen der OO kenne ich mich nicht gut aus, da ich eher in der Unix Shell Programmierung zu Hause bin.

    Gruß, René

    22 September 2010 12:55
  • Hat Niemand eine Idee, was hier falsch läuft?

    Oder kennt Jemand Restriktionen von ConverTo-Html?

    Gruß, René

    23 September 2010 12:37
  • Hallo René

    hast du schon probiert die erwünschten Eigenschaften per -Property Parameter abzugeben?

    $users2 | Sort-Object LogonName, ParentGroups `
      | <strong>ConvertTo-Html</strong> `
       -head $MyHtmlStyle `
       -CssUri "custom.css" `
       -Property LogonName
       -title "$dir_wo_quotes - $my_acl_group - $my_acl_accesstype"  `
      | Set-Content $MyReport 
    
    

    http://technet.microsoft.com/en-us/library/dd347572.aspx

    Gruß
    Andrei

    24 September 2010 8:52
  • Guten morgen zusammen.
    Hallo Andrei.

    ja, sicher. Aber 'LogonName' ist nicht das Problem, sondern 'ParentGroups'.

    Die Properties von 'LogonName' sind default, diejenigen eines AD Accounts, wie z.B.: 
    DisplayName Property System.String DisplayName {get;}
    DN Property System.String DN {get;}
    usw

    'ParentGroups' hat leider keine Properties, was wesentlich interessanter gewesen wäre.

    Den TechNet Artikel kenne ich natürlich, war aber trotzdem hilfreich nochmal dort zu schauen. Dort steht " Converts Microsoft .NET Framework objects into HTML that can be displayed in a Web browser."

    Ich befürchte 'ParentGroups' ist aber eher ein Quest.PowerGUI.ScriptEditor.Shared.MonadObjectCollection Objekt. So dass ich nur vermuten kann, dass die Funktion ConvertTo-Html nicht in der Lage ist, andere Nicht-MS-Objekte vernünftig zu konvertieren.

    Hat Jemand schon Erfahrungen mit der Konvertierung von "Nicht-Microsoft .NET Framework Objekten" gemacht?

    Das wäre doch ein guter Ansatz.

    Grüße, René

    27 September 2010 7:28
  • ... oder hat Jemand Kentnisse über eine alternative Aufbereitung zweit Daten-Objekte, so dass diese besser lesbar sind als normaler Text/CSV/etc?

    Grüße, René

    27 September 2010 8:35