none
Get-Service, Verbindung aufbauen dauert zu lange RRS feed

  • Frage

  • Hallo liebe PS-Community,

    ich habe derzeit ein Powershell-Script, welches in einem benutzerdefinierten Intervall checkt, ob bestimmte Services auf festgelegten Servern laufen. Ein festgelegter User bekommt eine Meldung (per Mail oder Pop-Up) und der Service wird je nach Einstellung neugestartet.

    Mir ist nun aufgefallen, das wenn ich in einer neuen Session das erste mal die Services von einem Server überprüfe, das Powershell recht lange für den Verbindungsaufbau braucht. Bei der 2ten, 3ten usw. Überprüfung in der gleichen Session, geht alles in sekundenschnelle.

    Ich habe im Internet dazu leider nichts gefunden und frage mich nun woran das liegt und ob man das ganze umgehen kann?

    Vielen Dank im Voraus. :-)

    Liebe Grüße

    -Lars



    • Bearbeitet Lars1335 Montag, 22. August 2016 06:36
    Montag, 22. August 2016 06:34

Antworten

  • Hallo,

    versuch es mal damit :

    Get-WmiObject -Class win32_service -ComputerName <String[]>

    WMI Abfragen sollten auch ohne WinRM gehen.

    Alternativ schau dir mal CIM-Sessions an, da kannst du auch alternative Ports angeben, da du den Default WinRM Port nicht nehmen kannst.

    Grüße Andy

    Montag, 22. August 2016 12:18

Alle Antworten

  • Kannst du den Code zeigen, welcher die Services überprüft? Einen Grund dafür zu finden ohne den Code zu sehen ist schwierig.

    Montag, 22. August 2016 07:46
  • Hallo,

    baust du die Verbindung über "Get-Service -ComputerName" auf oder verwendest du Invoke-Command?

    Falls du den ComputerName Parameter verwendest, würde ich mal versuchen das ganze über Invoke-Command zu machen. Könnte eventuell schneller gehen.

    https://technet.microsoft.com/de-de/library/hh849719.aspx

    Gruß

    Montag, 22. August 2016 07:49
  • Kannst du den Code zeigen, welcher die Services überprüft? Einen Grund dafür zu finden ohne den Code zu sehen ist schwierig.

    Hi Simon,

    na klar. Der Code ist sehr simpel: "Get-Service -Computername 'AnyHostnameHere' -Service 'abc' "

    Hallo,

    baust du die Verbindung über "Get-Service -ComputerName" auf oder verwendest du Invoke-Command?

    Falls du den ComputerName Parameter verwendest, würde ich mal versuchen das ganze über Invoke-Command zu machen. Könnte eventuell schneller gehen.

    https://technet.microsoft.com/de-de/library/hh849719.aspx

    Gruß

    Die Verbindung wird über "Get-Service -Computername -Service" aufgebaut.

    Invoke-Command fällt für mich weg, da ich hier aus Sicherheitsgründen nicht den WinRM-Port öffnen kann.

    Montag, 22. August 2016 08:27
  • Hallo,

    versuch es mal damit :

    Get-WmiObject -Class win32_service -ComputerName <String[]>

    WMI Abfragen sollten auch ohne WinRM gehen.

    Alternativ schau dir mal CIM-Sessions an, da kannst du auch alternative Ports angeben, da du den Default WinRM Port nicht nehmen kannst.

    Grüße Andy

    Montag, 22. August 2016 12:18
  • Hi Andy,

    vielen Dank für die Antwort. Mit folgendem Befehl geht das ganze nun viel schneller:

    Get-WmiObject -Class "win32_service" -ComputerName "<Hostname>" | Where {$_.Name -eq "<ServiceName>"}

    Mich würde es allerdings echt noch intressieren, warum die erste Abfrage mit "Get-Service" in einer Session auf ein Remotecomputer so lange dauert.

    Über weitere Antworten freue ich mich sehr.

    Grüße Lars

    Dienstag, 23. August 2016 06:48
  • >Mich würde es allerdings echt noch intressieren, warum die erste Abfrage mit "Get-Service" in einer Session auf ein Remotecomputer so lange dauert.

    Das muß ein lokales Problem sein. Generell ist Get-Service genauso schnell oder langsam wie Get-WmiObject -Class "win32_service" .


    Blog: http://bytecookie.wordpress.com

    Neu: Powershell Code Manager v5 ! Link
    (Schneller, besser + komfortabler scripten.)

    Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
    Warum das Ganze? Hier gibts die Antwort.



    Donnerstag, 25. August 2016 11:08
    Moderator