簡體   English   中英

在Powershell的首次運行中無法識別cmdlet

[英]cmdlets not recognized on the first run in powershell

我在第一次運行Powershell代碼時遇到了問題。

  1. cmdlet和用戶定義的函數在第一次運行中無法識別,但是如果我再次運行代碼,則可以正常工作
  2. 用戶定義的函數從上次運行獲取值。即,基本上,我們需要運行兩次代碼才能獲得正確的結果

碼:

$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和內存使用率
錯誤:

get-CPUAndMemUtilization:術語“ get-CPUAndMemUtilization”未被識別為cmdlet,函數,腳本文件或可運行程序的名稱。 檢查名稱的拼寫,或者是否包含路徑,請驗證路徑是否正確,然后重試。

在將函數導入(因此它不存在)到powershell會話中之前,請先調用該函數,只需交換以下兩點即可:

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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM