【问题标题】:WMI IIS 6.0 Custom HttpError (Powershell)WMI IIS 6.0 自定义 HttpError (Powershell)
【发布时间】:2013-01-02 03:08:40
【问题描述】:

请有人看看这个并告诉我我做错了什么? 我正在尝试使用 powershell 和 wmi 修改 IIS 网站中的自定义错误消息属性...这就是我想出的。

    $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 时,我得到以下信息。

类型名称:Selected.System.Management.ManagementBaseObject

名称 MemberType 定义
---- ---------- ----------
Equals 方法 bool Equals(System.Object obj)
GetHashCode 方法 int GetHashCode()
GetType 方法类型 GetType()
ToString 方法字符串 ToS​​tring()
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 属性不是我可以调用的方法,我该如何修改它?

【问题讨论】:

    标签: iis powershell wmi


    【解决方案1】:

    试试:

    $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()
    

    【讨论】:

    • Graimer,谢谢你这个作品,我知道我哪里出错了,谢谢你的帮助。
    • np :) 用于未来的问题。当您提供get-member 时,请勿在之前的对象上使用select .....。当您使用select 时,您会创建一个新对象,其中仅包含您指定的属性,而不是 ex 中可用的所有属性。这个 wmi 对象。 :-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-21
    • 2020-01-17
    • 2013-08-11
    • 1970-01-01
    • 1970-01-01
    • 2010-09-20
    • 1970-01-01
    相关资源
    最近更新 更多