none
無法取得CPU資訊 RRS feed

  • 問題

  • 請教各位大大

    小弟在Server 2008 R2 系統 Powershell內設定以下參數

    $Server = "10.10.0.10"
    $cpu = gwmi –computername $Server win32_Processor 

    $Havecpu="{0:0.0} %" -f $cpu.LoadPercentage 
    $CpuType=$cpu.name
    $CpuSpeed=$cpu.maxclockspeed /1000

    但輸入

    $HaveCpu

    $CpuType

    $Cpuspeed

    卻無法獲得該內容,有的空白有的直接顯示0

    是否參數上有下錯,煩請各位高手指導,感謝。

    2012年9月14日 上午 03:27

解答

  • 您好

    如果這樣,還會出現相同狀況?

    $SERVER = "127.0.0.1"
    [ARRAY]$Objekts = Get-WmiObject -ComputerName $SERVER Win32_Processor
    Foreach ($CPU in $Objekts)
    {
        $HaveCpu="{0:0.0} %" -f $CPU.LoadPercentage 
        $CpuType=$CPU.Name
        $CpuSpeed=$CPU.MaxClockSpeed / 1000 
        $HaveCpu
        $CpuType
        $CpuSpeed
    }



    歡迎參觀我的Blog【菜鳥自救會】 粉絲專頁


    • 已編輯 小歐ouMVP 2012年9月14日 上午 06:22
    • 已標示為解答 Bolin Huang 2012年9月14日 上午 06:38
    2012年9月14日 上午 06:17

所有回覆

  • 您好

    1. 你無法獲取的內容是哪一些,使用 WMI 取得 CPU 相關資料,有些資訊需要仰賴硬體提供,沒有的話顯示空白或 0 是正常的

    2. 參考 Use PowerShell and WMI to Get Processor Information,看一下您無法取得資訊的項目是否差不多


    歡迎參觀我的Blog【菜鳥自救會】 粉絲專頁

    2012年9月14日 上午 03:43
  • To:小歐ou

    非常感謝您迅速的回答

    1. 你無法獲取的內容是哪一些,使用 WMI 取得 CPU 相關資料,有些資訊需要仰賴硬體提供,沒有的話顯示空白或 0 是正常的

    我第一行參數下了

    $cpu = gwmi –computername $Server win32_Processor

    所以我輸入$cpu 會跑出一大串資訊,顯示內容也包含了

    LoadPercentage、name、maxclockspeed三個資訊

    但我在下面幾行參數中需要抓出這些參數並顯示確無作用

    -------------------------------------------------------

    $Havecpu="{0:0.0} %" -f $cpu.LoadPercentage 
    $CpuType=$cpu.name
    $CpuSpeed=$cpu.maxclockspeed /1000

    -----------------以上參數無法取得-----------------

    個人猜測是否權限問題?

    2. 參考 Use PowerShell and WMI to Get Processor Information,看一下您無法取得資訊的項目是否差不多

    目前不是CPU資訊能否顯示,而是顯示後我需抓取他裡面幾個參數作邏輯式的顯示有問題。

    2012年9月14日 上午 04:03
  • 您好

    從您的描述無法得知問題,我目前跑起來很正常,看起來內容很正常


    歡迎參觀我的Blog【菜鳥自救會】 粉絲專頁

    2012年9月14日 上午 04:41
  • To:小歐ou

    我測試該指令下在PC上可正常獲取資訊

    但相同的命令下在Server上會出現空白如以下圖示,煩請您指教,感謝!


    2012年9月14日 上午 05:15
  • 您好

    跑下面這一段後,把結果貼上來

    $SERVER = "127.0.0.1"
    [ARRAY]$Objekts = Get-WmiObject -ComputerName $SERVER Win32_Processor
    Foreach ($CPU in $Objekts)
    {
        $cpu.LoadPercentage
        $cpu.name
        $cpu.maxclockspeed
    }

    2012年9月14日 上午 05:33
  • To:小歐ou

    執行結果如下顯示:

    2012年9月14日 上午 06:01
  • 您好

    如果這樣,還會出現相同狀況?

    $SERVER = "127.0.0.1"
    [ARRAY]$Objekts = Get-WmiObject -ComputerName $SERVER Win32_Processor
    Foreach ($CPU in $Objekts)
    {
        $HaveCpu="{0:0.0} %" -f $CPU.LoadPercentage 
        $CpuType=$CPU.Name
        $CpuSpeed=$CPU.MaxClockSpeed / 1000 
        $HaveCpu
        $CpuType
        $CpuSpeed
    }



    歡迎參觀我的Blog【菜鳥自救會】 粉絲專頁


    • 已編輯 小歐ouMVP 2012年9月14日 上午 06:22
    • 已標示為解答 Bolin Huang 2012年9月14日 上午 06:38
    2012年9月14日 上午 06:17
  • To:小歐ou

    執行結果如下,看起來有達到顯示內容,感謝您的指導,受用無窮。

    2012年9月14日 上午 06:38