2017-08-29 7 views
0

PowerShellを使用してサーバーの統計を作成しようとしています。また、PowerShellを学習します。 SQL Serverのpingのステータス *:31 *:20PowerShellの新しいオブジェクトとHTML出力の問題

エラーメッセージ EW

この

は私が HTMLに入る出力がある

Function Get-PingHost 
{ 
    [cmdletbinding()] 
    Param([string]$Hostname = "ServerName") 

    "The HostName is " + $Hostname 
    $status=get-wmiobject win32_pingstatus -Filter "Address='$Hostname'" | Select-Object statuscode 
    "The Status Code is " + $status.statuscode 
    if($status.statuscode -eq 0) 
    { 
     $HostNameStatusInfo = $Hostname + " is REACHABLE" 
    } 
    else 
    { 
     $HostNameStatusInfo = $Hostname + " is NOT REACHABLE" 
    } 
    New-Object -TypeName PSObject -Property $HostNameStatusInfo 
**<COMMENT>** If I remove the above New-Object code is still get an incorrect output as mentioned below in the **HTML OutPut** 
    } 

$fragments = @() 
$fragments+=$top 

$fragments+="<a href='javascript:toggleAll();' title='Click to toggle all sections'>Expand All/Collapse All</a>" 

$Text = "SQL Server Ping Status" 
$div = $Text.Replace(" ","_") 
$fragments+= "<a href='javascript:toggleDiv(""$div"");' title='click to collapse or expand this section'><h2>$Text</h2></a><div id=""$div"">" 
$fragments+= Get-PingHost -Hostname $Hostname | ConvertTo-Html -Fragment -As List 
$fragments+="</div>" 
$fragments+= $html.InnerXml 
$fragments+="</div>" 
$fragments+= "<p class='footer'>$(get-date)</p>" 

を持っているコードです-Object:パラメータ 'Property'をバインドできません。タイプ "System.String"の "ServerName is REACHABLE"値を "System.Collections.IDictionary"に変換することはできません。ラインで :38文字:45 +新オブジェクト-TypeName PSObject -Property $ HostNameStatusInfo + ~~~~~~~~~~~~~~~~~~~ + CategoryInfo:InvalidArgument:(:) [新オブジェクト]、ParameterBindingException + FullyQualifiedErrorId:CannotConvertArgumentNoMessage、Microsoft.PowerShell.Commands.NewObjectCommand問題が解決されました...

+0

だから、基本的にそのオブジェクトは必要ありません。 –

答えて

0

謝罪... コードは以下の通りです: -

#GET OPERATING SYSTEM INFORMATION 
Function Get-PingHost 
{ 
    [cmdletbinding()] 
    Param([string]$Hostname = "ServerName") 

    $status=get-wmiobject win32_pingstatus -Filter "Address='$Hostname'" | Select-Object statuscode 
    #"The Status Code is " + $status.statuscode 
    if($status.statuscode -eq 0) 
    { 
     $Hostname + " is <b>REACHABLE</b>" 

    } 
    else 
    { 
     $Hostname + " is <b>NOT REACHABLE</b>" 
     #Basically You Don't Need to assign this to the String Variable and 
     #then display the string variable... 
    } 
} 

#endregion 

$fragments = @() 
$top = "" 

$fragments+=$top 

$fragments+="<a href='javascript:toggleAll();' title='Click to toggle all sections'>Expand All/Collapse All</a>" 
$Text = "SQL Server Ping Status" 
$div = $Text.Replace(" ","_") 
$fragments+= "<a href='javascript:toggleDiv(""$div"");' title='click to collapse or expand this section'><h2>$Text</h2></a><div id=""$div"">" 
$fragments+= Get-PingHost -Hostname $Hostname 
$fragments+="</div>" 
$fragments+= $html.InnerXml 
$fragments+="</div>" 


$fragments+= "<p class='footer'>$(get-date)</p>"