2017-05-28 55 views
0

第一次運行PowerShell代碼時遇到問題。在PowerShell中第一次運行時未識別的cmdlet

  1. cmdlet和用戶定義的函數不會在第一次運行的認可,但如果我再次運行該代碼
  2. 用戶定義的函數從以前的run.i.e.取值工作正常基本上我們需要兩次運行代碼,以獲得正確的結果

代碼:

$resultVar=get-CPUAndMemUtilization -computername $computername -CPUCriteria $CPUCriteria -MemCriteria $MemCriteria 
#Write-Host "Mme:"$resultVar; 
$CPUMem += [PSCustomObject] @{ 
     CPULoad = "$($resultVar[0])" 
     MemLoad = "$($resultVar[1])" 
} 
Write-Host $CPUMem; 


function get-CPUAndMemUtilization($computername,$CPUCriteria,$MemCriteria) 
{ 

    $Memstatus=$null; 
    $CPUstatus=$null; 
    $AVGProc = Get-WmiObject -computername $computername win32_processor | Measure-Object -property LoadPercentage -Average | Select Average 
    $OS = gwmi -Class win32_operatingsystem -computername $computername | 
    Select-Object @{Name = "MemoryUsage"; Expression = {「{0:N2}」 -f ((($_.TotalVisibleMemorySize - $_.FreePhysicalMemory)*100)/ $_.TotalVisibleMemorySize) }} 
    $result += [PSCustomObject] @{ 
     ServerName = "$computername" 
     CPULoad = "$($AVGProc.Average)%" 
     MemLoad = "$($OS.MemoryUsage)%" 
    } 

    if($AVGProc.Average -lt $CPUCriteria) 
    { 
     $Memstatus=1; 
    }else{ 
     $Memstatus=0; 
    } 


    if($OS.MemoryUsage -lt $MemCriteria) 
    { 
     $CPUstatus=1; 
    }else{ 
     $CPUstatus=0; 
    } 

    $CPUstatus 
    $Memstatus 
return; 
} 

代碼返回CPU &紀念品利用系統的系統CPU &我使用的系統
錯誤:

get-CPUAndMemUtilization : The term 'get-CPUAndMemUtilization' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

+0

@ 4c74356b41對不起,現在加入 – sanketh

回答

2

您在將它導入PowerShell會話之前調用函數(因此它不存在),只需交換t軟管2件東西:

function get-CPUAndMemUtilization($computername,$CPUCriteria,$MemCriteria) 
{ 
... 
} 
$resultVar=get-CPUAndMemUtilization -computername $computername -CPUCriteria $CPUCriteria -MemCriteria $MemCriteria 
#Write-Host "Mme:"$resultVar; 
$CPUMem += [PSCustomObject] @{ 
     CPULoad = "$($resultVar[0])" 
     MemLoad = "$($resultVar[1])" 
} 
Write-Host $CPUMem; 
+0

感謝您的快速週轉。看到工作 – sanketh

相關問題