Invoke-Sqlcmd nicht ausgeführt werden

Habe ich ein PowerShell-Skript, das überprüft, die CPU-level des Servers auf dem es läuft, und dann, wenn es oberhalb einer bestimmten Schwelle wird es führen Sie eine gespeicherte SQL-Prozedur und e-mail.

Das Skript läuft einwandfrei auf meinem Entwicklungs-server mit der neuesten version von PowerShell. Ich bin jedoch Probleme bei der Ausführung der Invoke-Sqlcmd Befehl auf dem live-server die ich brauche, um die CPU-Werte aus. Für den sake des Beispiels, es kann aufgerufen werden LIVESERVER.
Es ist ausführen von PowerShell 2.0 und ich denke das ist das Problem:

Den Begriff "Invoke-Sqlcmd' wird nicht als name eines cmdlet, Funktion, Skriptdatei oder bedienbare Programm. Überprüfen Sie die Schreibweise des namens, oder wenn ein Pfad enthalten ist, stellen Sie sicher, dass der Pfad korrekt ist und versuchen Sie es erneut.

Ich würde eher keine änderungen zu diesem server, wie es ist business-kritisch (es sei denn, dies ist eine einfache Aufgabe zum update PowerShell ohne Neustart, etc.).

Ist es möglich mein script aus meinem Entwicklungs-server und geben Sie den server, um die CPU-Daten aus? Ich bin mir nicht sicher, wie die syntax arbeiten würde, um dies zu erreichen.

Hier ist mein Skript:

# Email 
$recipients = @("Ricky <[email protected]>")

# Loop 20 times
for ($i= 1; $i -le 20; $i++) {
    # Find CPU average usage percentage for given time period
    $cpuutil = (Get-Counter -Counter "\Processor(_Total)\% Processor Time" -SampleInterval 1 -MaxSamples 20 |
               select -ExpandProperty countersamples |
               select -ExpandProperty cookedvalue |
               Measure-Object -Average).Average

    # Display average CP output
    $cpuutil

    # If CPU average percentage is higher than given value, run stored procedure and
    # e-mail to notify
    if ($cpuutil -ge 60) {
        Invoke-Sqlcmd -Query "SELECT * FROM [Vehicle].[dbo].[tblIndicator]" -ServerInstance "LIVESERVER"
    }

    if ($cpuutil -ge 60) {
        Send-MailMessage -From "[email protected]" -To $recipients -Body "SP Ran" -Subject "Stored Procedure" -Dno onSuccess, onFailure -SmtpServer 111.1.1.111
    } else {
        Start-Sleep -s 10
    }
}

InformationsquelleAutor Ricky | 2017-03-13

Schreibe einen Kommentar