none
Lokales Powershell Skript braucht RPC-Server? RRS feed

  • Frage

  • Hallo zusammen,

    in einem kleinen Powershell Konfigurationsskript möchte ich die lokalen Ethernetschnittstellen konfigurieren, also DHCP aus und IP, Subnetzmaske und Gateway fest eintragen.

    Dabei bekomme ich jedoch immer die Fehlermeldung "The RPC server is unavailable" und "System Error 1722". Wozu braucht Powershell den RPC-Server, es findet doch keine Kommunikation mit einem anderen Rechner statt?

    Das Skript rufe ich in einer Prowershell mit Admin-Rechten auf, damit sollte es kein Rechteproblem sein.

    Da ich schon mehrfach gelesen habe, dass die Firewall auch gerne mal solche Fehler verursacht, habe ich die auch testhalber mal komplett deaktiviert, ohne Effekt.

    Der RPC-Service läuft, ebenso DCOM und "Windows Management Instrumentation".

    Das System ist ein Windows 10, 64-Bit.

    Ich weiß nicht wo ich noch suchen soll, hat jemand eine Idee?

    Mittwoch, 17. Februar 2021 10:37

Antworten

  • Hallo,

    auch wenn es schon eine Weile her ist, ich habe jetzt eine Lösung gefunden. Dieser Registry Eintrag brachte die Lösung:

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Rpc] "MaxRpcSize"=dword:00800000

    Vielleicht hilft es ja jemandem

    Viele Grüße, und danke für eure Mühen!

    Dienstag, 9. März 2021 10:27

Alle Antworten

  • Poste mal deinen Code also auch die genaue Fehlermeldung.
    Bestimmte CMD-Lets (wie WMI) benötigen gestartete Services um zu funktionieren.
    RPC funktioniert nämlich auch lokal.
    Mittwoch, 17. Februar 2021 10:49
  • Hallo,

    ich habe mal ein Minimalbeispiel daraus gemacht, der Code sioeht so aus:

    $ethConfigIP = "172.20.20.18"
    $ethConfigPrefix = 29
    $ethName = "Ethernet 3"
    
    $ethConfig = Get-NetAdapter $ethName | Get-NetIPConfiguration
    Write-Host $ethConfig
    
    
    Enable-NetAdapter -Name $ethName
    
    $ethConfig | Get-NetIPInterface | Set-NetIPInterface -Dhcp Disabled
    
    $ethConfig | Set-NetIPAddress -IPAddress $ethConfigIP -PrefixLength $ethConfigPrefix

    Die Ausgabe mit Fehlermeldung ist dann diese:

    PS C:\batch> .\Minimal.ps1
    NetIPConfiguration
    Set-NetIPInterface : The RPC server is unavailable.
    At C:\batch\Minimal.ps1:11 char:35
    + $ethConfig | Get-NetIPInterface | Set-NetIPInterface -Dhcp Disabled
    +                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : NotSpecified: (MSFT_NetIPInter...ystemName = ""):ROOT/StandardCimv2/MSFT_NetIPInterface)
        [Set-NetIPInterface], CimException
        + FullyQualifiedErrorId : Windows System Error 1722,Set-NetIPInterface

    Set-NetIPAddress : No matching MSFT_NetIPAddress objects found by CIM query for instances of the
    ROOT/StandardCimv2/MSFT_NetIPAddress class on the  CIM server: SELECT * FROM MSFT_NetIPAddress  WHERE ((IPAddress LIKE
    '172.20.20.18')) AND ((InterfaceIndex = 17)) AND ((InterfaceAlias LIKE 'Ethernet 3')). Verify query parameters and
    retry.
    At C:\batch\Minimal.ps1:13 char:14
    + ... ethConfig | Set-NetIPAddress -IPAddress $ethConfigIP -PrefixLength $e ...
    +                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : ObjectNotFound: (MSFT_NetIPAddress:String) [Set-NetIPAddress], CimJobException
        + FullyQualifiedErrorId : CmdletizationQuery_NotFound,Set-NetIPAddress

    Schon mal vielen Dank im Vorraus!

    Mittwoch, 17. Februar 2021 11:32
  • Möglicherweise dieses Problem:
    https://stackoverflow.com/questions/35141076/system-error-1722-the-rpc-server-is-unavailable-when-calling-net-user

    "Enable NetBIOS over TCP/IP in advanced TCP/IP Settings"

    Mittwoch, 17. Februar 2021 11:39
  • Nein, die Fehlermeldung ist leider immer noch die selbe. :-(

    Mittwoch, 17. Februar 2021 11:56
  • Moin,

    jetzt mal ganz blöd gefragt: Führst Du den Befehl mit erhöhten Rechten aus?


    Evgenij Smirnov

    http://evgenij.smirnov.de

    Mittwoch, 17. Februar 2021 12:45
  • Ja, ich bin in einer Admin-Powershell Kommandozeile unterwegs.
    Mittwoch, 17. Februar 2021 13:17
  • Admin ist nicht automatisch erhöht "elevated". Du musst die Powershell dann "als Admin" starten.
    Mittwoch, 17. Februar 2021 15:34
  • Genau das mache ich ja. Andere Kommandos, die erhöhte Rechte benötigen, laufen auch problemlos.

    Freitag, 19. Februar 2021 10:53
  • Dein Hauptfehler ist ja dieser "set-NetIPAddress : No matching MSFT_NetIPAddress objects found by CIM query ".
    M.a.W. dein Get-NetIPAddress liefert nicht das richtige Ergebnis, oder du bekommst ein Object-Array zurück.
    Dann musst du beim Pipen einen ForEach anwenden.
    Sicherheitshalber weise das Ergebnis von Get-NetIPAddress mal einer Variablen zu und prüfe das Ergebnis.
    Freitag, 19. Februar 2021 11:35
  • Dein Hauptfehler ist ja dieser "set-NetIPAddress : No matching MSFT_NetIPAddress objects found by CIM query ".
    M.a.W. dein Get-NetIPAddress liefert nicht das richtige Ergebnis, oder du bekommst ein Object-Array zurück.
    Dann musst du beim Pipen einen ForEach anwenden.
    Sicherheitshalber weise das Ergebnis von Get-NetIPAddress mal einer Variablen zu und prüfe das Ergebnis.

    ...in die Hilfe schon geschaut?

    Somit ist das Thema Array schon mal vom Tisch ;-)


    Evgenij Smirnov

    http://evgenij.smirnov.de

    Freitag, 19. Februar 2021 11:53
  • Dann ist es doch klar, denn der Parameter "-InputObject" wurde ja nicht verwendet. Somit ist das Setzen des Ergebnis von Get und dann Angabe mit "-InputObject" der richtige weg.
    Freitag, 19. Februar 2021 12:03
  • Nein, 

    -InputObject ist genau der Parameter, der den/die Wert(e) aus der Pipeline empfängt.

    EDIT: Es ist alles OK mit der Syntax - irgendwas am Rechner des TO ist anders als hier, denn hier funktioniert es einwandfrei...


    Evgenij Smirnov

    http://evgenij.smirnov.de


    Freitag, 19. Februar 2021 12:05
  • Schon geschaut ob die DNS und DHCP Dienste laufen?

    Siehe hier und hier.

    • Bearbeitet Fahiko Samstag, 20. Februar 2021 19:36
    Freitag, 19. Februar 2021 22:23
  • Hallo,

    auch wenn es schon eine Weile her ist, ich habe jetzt eine Lösung gefunden. Dieser Registry Eintrag brachte die Lösung:

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Rpc] "MaxRpcSize"=dword:00800000

    Vielleicht hilft es ja jemandem

    Viele Grüße, und danke für eure Mühen!

    Dienstag, 9. März 2021 10:27