我正在 Windows 故障轉移群集環境中進行測驗。下面是我的代碼。
PS C:\Users\administrator.DEV> Get-ClusterResource *disk*
Name State OwnerGroup ResourceType
---- ----- ---------- ------------
Cluster Disk 1 Online Available Storage Physical Disk
Cluster Disk 2 Online Cluster Group Physical Disk
Cluster Disk 3 Online Available Storage Physical Disk
PS C:\Users\administrator.DEV> (Get-ClusterResource *disk*).GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Object[] System.Array
PS C:\Users\administrator.DEV> (Get-ClusterResource *disk*)[0].GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True False ClusterResource Microsoft.FailoverClusters.PowerShell.ClusterObject
PS C:\Users\administrator.DEV>
如您所見,我有三個磁盤資源。但是當我想用 cmdlet 獲得第一個時select,我得到了空輸出。
PS C:\Users\administrator.DEV> Get-ClusterResource *disk* | select -First 1
PS C:\Users\administrator.DEV>
為什么會有這種行為?在這種情況下如何獲得第一個磁盤資源?
uj5u.com熱心網友回復:
顯然,通過將結果陣列作為一個整體(作為單個物件)而不是列舉Get-ClusterResource它來展示非標準行為,即一個一個地發出它的元素(后者是通常期望 cmdlet 執行的操作)。
因此,要么使用(Get-ClusterResource *disk*) | select -First 1(注意(...)強制列舉陣列),要么 - 正如您已經展示的那樣 - 直接索引到陣列中:(Get-ClusterResource *disk*)[0]
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/532929.html
標籤:电源外壳故障转移集群
上一篇:如何從純文本輸出中過濾
下一篇:System.Windows.Forms.TabPage-add_LostFocus和add_GotFocus不起作用?
