2017-04-04 7 views
0

以下のスクリプトの画像をテーブルの右上隅に合わせたいと思います。現在、テーブルの上の左に揃えられていますが、これは可能ですか?また、固定タイトルのテーブルの幅にまたがるテーブルの上部に追加のタイトル行を追加したいと思いますが、これはテーブルを壊すことなく可能ですか?テーブルの画像を整列してタイトルヘッダ行を追加してください

#Set variables 
$image = "C:\Scriptrepository\XXXXX.gif" 
$ImageBits = [Convert]::ToBase64String((Get-Content $image -Encoding Byte)) 
$ImageHTML = "<img src=data:image/gif;base64,$($ImageBits) alt=XXXXX;/>" 
$CurrentDate = Get-Date -Format F 
$Post = "<br><br> Members of $ADGroupName <br> Generated on $CurrentDate" 

#Function for alternating table colour rows 
function global:Set-AlternatingRows { 
    [CmdletBinding()] 
    Param(
     [Parameter(Mandatory, ValueFromPipeline)] 
     [string]$Line, 

     [Parameter(Mandatory)] 
     [string]$CSSEvenClass, 

     [Parameter(Mandatory)] 
     [string]$CSSOddClass 
    ) 

    Begin { 
     $ClassName = $CSSEvenClass 
    } 
    Process { 
     if ($Line.Contains("<tr><td>")) { 
      $Line = $Line.Replace("<tr>","<tr class=""$ClassName"">") 
      if ($ClassName -eq $CSSEvenClass) { 
       $ClassName = $CSSOddClass 
      } else { 
       $ClassName = $CSSEvenClass 
      } 
     } 
     return $Line 
    } 
} 

#Function to validate request and create variable from input 
function global:GetADGroupMembersrecursively { 
    Write-Host "Enter Distribution List/AD Group name:" -ForegroundColor Green 
    $global:ADGroupName = Read-Host 
    if ([string]::IsNullOrEmpty($ADGroupName)) { 
     cls 
     Write-Host -ForegroundColor red "Cannot be blank, please re-enter AD Group/distribution list name" | Out-Null 
     GetADGroupMembersRecursively 
    } 
    $global:DLCheck = DSQuery group -Name "$ADGroupName" 
    if ($DLCheck -eq $null) { 
     cls 
     Write-Host -ForegroundColor red "Did not find AD Group/Distribution List, please verify this is the correct name" | Out-Null 
     GetADGroupMembersRecursively 
    } 
} 

GetADGroupMembersRecursively 

$Head = @" 
<style> 
BODY {font-family: Arial; font-size: 8pt; color: #4C607B;} 
TABLE{margin: auto; font-family: Segoe UI; box-shadow: 10px 10px 5px #888; width: 100%;height :50px;} 
TH, TD {border: 1px solid #ffffff; border-collapse: collapse;padding: 3px;} 
TH {font-size: 1.2em; background-color: #003366; color: #ffffff; } 
TD {color: #000000; } 
.even { background-color: #efefef; } 
.odd { background-color: #c0c0c0; } 
TR { background: #b8d1f3; } 
H4 {font-family: Arial; font-size: 12pt; color: #4C607B;align=right;} 
H5 {font-family: Arial; font-size: 8pt; color: #4C607B;align=right;} 
</style> 
"@ 

#Table creation 
Get-ADGroupMember -Identity $ADGroupName -Recursive | 
    Get-ADUser -pr GivenName, Surname, mail, sAMAccountName | 
    Select-Object GivenName, Surname, mail, sAMAccountName | 
    sort Surname | 
    ConvertTo-Html -Head $head -Body $ImageHTML -PostContent $Post -As Table | 
    Set-AlternatingRows -CSSOddClass odd -CSSEvenClass even | 
    Out-File C:\ScriptRepository\Results\$ADGroupName.htm 
Invoke-Item C:\ScriptRepository\Results\$ADGroupName.htm 
+1

まず、_RESULT_がどうあるべきかうまく - 何HTMLやCSSあなたが望む出力を提供しますか?一度それを持っていれば、それを生成するPowerShellコードを書くことはかなり簡単です。 –

+0

これは、ADルックアップからテーブルを生成します。テーブルは、テーブルの上にある画像の位置と、テーブルの上部にある行を追加するだけで問題なく動作します。 –

+1

適切なHTMLとCSSを使用して、必要なように見えるようにダミーテーブルを使用してWebページを構築します。必要に応じて手作業で行います。たとえ「実際の」データがなくても、正しいと思われるものがほしいだけです。次に、これを目安にして、ADルックアップから作成しているテーブルを囲むために、スクリプトがどのHTMLとCSSを生成するかを検討する必要があります。 –

答えて

0

右にその要素をブロックレベル要素(例えば、<p>)に画像を入れ、そして整列:

... 
$ImageHTML = "<p class='pic'><img src=.../></p>" 
... 
$Head = @" 
<style> 
... 
p.pic {text-align: right} 
... 
</style> 
"@ 
... 
+0

Ansgar、私は\t p.pic {text-align:right}を$ headに追加しました。提案で提案され修正されました。$ ImageHTML = "

NHSImprovement;/「それは完璧に動作します。あなたの時間と助けをありがとう、ありがとう、それは非常に感謝しています。 –

関連する問題