Benutzer mit den meisten Antworten
Lokales Powershell Skript braucht RPC-Server?

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?
- Typ geändert Denniver ReiningMVP, Moderator Sonntag, 28. Februar 2021 12:10 ...
- Typ geändert Denniver ReiningMVP, Moderator Montag, 22. März 2021 01:45 .....
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!
- Als Antwort markiert Denniver ReiningMVP, Moderator Montag, 22. März 2021 01:45
Alle Antworten
-
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!
-
Möglicherweise dieses Problem:
https://stackoverflow.com/questions/35141076/system-error-1722-the-rpc-server-is-unavailable-when-calling-net-user -
Moin,
jetzt mal ganz blöd gefragt: Führst Du den Befehl mit erhöhten Rechten aus?
Evgenij Smirnov
-
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.- Bearbeitet Der Suchende Freitag, 19. Februar 2021 11:36
-
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
-
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
- Bearbeitet Evgenij Smirnov Freitag, 19. Februar 2021 12:06
-
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!
- Als Antwort markiert Denniver ReiningMVP, Moderator Montag, 22. März 2021 01:45