0

誰かがこれを見て、私が間違っていることを教えてください。PowerShell と wmi を使用して、IIS Web サイトのカスタム エラー メッセージ プロパティを変更しようとしています...これが私が思いついたものです。

    $Server = "localhost" 
    $Wmi = Get-WmiObject -Class IIsWebServerSetting -Namespace "root\microsoftiisv2" -ComputerName $server -filter "ServerComment = 'SharePoint - SP80'" -Authentication 6
    $CustomHttpError = $wmi | Foreach-Object { $_.HttpErrors | ? {$_.HttpErrorCode -contains "400"} | Select HttpErrorCode, HttpErrorSubcode, HandlerType,HandlerLocation;}
    $CustomHttpError.HandlerLocation('C:\WINDOWS\help\iisHelp\common\Custom.htm')

「[Selected.System.Management.ManagementBaseObject] に 'HandlerLocation' という名前のメソッドが含まれていないため、メソッドの呼び出しに失敗しました」というエラー メッセージが表示されます。

Get-Member を使用して $CustomHttpError を調べると、次のようになります。

TypeName: Selected.System.Management.ManagementBaseObject

名前 MemberType 定義
---- ---------- ----------
Equals メソッド bool Equals(System.Object obj)
GetHashCode メソッド int GetHashCode()
GetType メソッド タイプ GetType()
ToStringメソッド文字列 ToString()
HandlerLocation NoteProperty System.String HandlerLocation=C:\WINDOWS\help\iisHelp\common\400.htm HandlerType NoteProperty System.String HandlerType=FILE
HttpErrorCode NoteProperty System.String HttpErrorCode=400
HttpErrorSubcode NoteProperty System.String HttpErrorSubcode=*

呼び出すことができるメソッドでない場合、HandlerLocation プロパティを変更するにはどうすればよいですか?

4

1 に答える 1

0

試す:

$Server = "localhost" 
$Wmi = Get-WmiObject -Class IIsWebServerSetting -Namespace "root\microsoftiisv2" -ComputerName $server -filter "ServerComment = 'SharePoint - SP80'" -Authentication 6

#Get httperrors array
$HttpErrors = $wmi.HttpErrors
#Changing 400 error pages
$HttpErrors | % { if ($_.HttpErrorCode -eq "400") { $_.HandlerLocation = "C:\WINDOWS\help\iisHelp\common\Custom.htm" } }

#Set updated httpserros property
$wmi.HttpErrors = $HttpErrors
#Save object
$wmi.Put()
于 2013-01-18T12:48:09.887 に答える