2013-10-04 25 views
0

我有幾個IIS 6網站,我需要調查。我需要檢查的項目之一是AllowAnonymous。我需要知道它是真是假。我發現這段代碼:如何確定使用PowerShell在IIS 6中是否啓用了匿名訪問?

$a = gwmi -Namespace root\MicrosoftIISv2 -Class IIsWebServerSetting -ComputerName 
$ServerName -Impersonation Impersonate -Authentication PacketPrivacy | 
Select-object AllowAnonymous.AllowAnonymous 

這給了我這樣的:

PS> $a | gm 


    TypeName: Selected.System.Management.ManagementObject 

Name       MemberType Definition 
----       ---------- ---------- 
Equals      Method  bool Equals(System.Object obj) 
GetHashCode     Method  int GetHashCode() 
GetType      Method  type GetType() 
ToString      Method  string ToString() 
AllowAnonymous.AllowAnonymous NoteProperty AllowAnonymous.AllowAnonymous=null 

如何獲得NoteProperty成我的報告變量?

回答

0

好吧,我將推斷您已經知道如何通過添加.和屬性名稱來讀取對象屬性的值,但是您遇到了這個奇怪命名屬性的困難,因爲如果將$a.AllowAnonymous.AllowAnonymous分配給變量,則該值始終爲空。

原因是屬性名稱包含一個點,它是屬性/方法運算符。因此,PowerShell不解釋$a.AllowAnonymous.AllowAnonymous爲「閱讀對象AllowAnonymous.AllowAnonymous物業美元;它解釋爲」讀包含在$的使用AllowAnonymous屬性的對象的使用AllowAnonymous財產一個。換句話說,它首先對$ a.AllowAnonymous(這是無效的,因爲美元沒有一個名爲使用AllowAnonymous屬性),然後試圖讀取空結果的使用AllowAnonymous財產,這當然也是空的。

解決方案很簡單。報價產品名稱:

$SomeVariable = $a.'AllowAnonymous.AllowAnonymous' 
相關問題