broesel73
Goto Top

Fehler: MMC als anderer Benutzer (Administrator) starten

Hi,

unter Windows 10 hatte ich mir ein kleines Script gebaut mit dem ich die MMC mit Argument und als anderer Benutzer (Administartor) starten konnte.

Start-Process powershell -ArgumentList '-command',"start mmc -verb runas -Argumentlist 'C:\Applikationen\AdmKonsole\AdmKonsole.msc'" -Credential $creds  

Seid der Umstellung auf Windows 11, bekomme ich jetzt immer einen Fehler das der Verzeichnisname ungültig ist (This command cannot be run due to the error: Der Verzeichnisname ist ungültig.)

Wenn ich die Powershell als anderer Benutzer ausführe und dann start-process ausführe funktioniert es. Der Pfad und das File sind gleichgeblieben und lassen sich auch so aufrufen.

Es scheint das er ein Problem hat die Shell als Admin zu starten.

Kennt jemand eine Lösung für das Problem ??

LG

Content-ID: 6587557804

Url: https://administrator.de/contentid/6587557804

Ausgedruckt am: 23.11.2024 um 04:11 Uhr

madnem
madnem 31.03.2023 um 12:55:45 Uhr
Goto Top
Zurück zu Windows 10 face-smile
Ne mal im Erst. Meiner Meinung nach hat Win11 keine Vorteile und ich persönlich warte Win12 ab. Damit wär dein Problem für erste gelösst. Oder was ist dein Grund warum es 11 sein muss?
broesel73
broesel73 31.03.2023 um 13:01:00 Uhr
Goto Top
Nun ja ... als Firma kann man sich das leider nicht wirklich aussuchen :/ Windows 10 hat Ende des Jahres Support Ende, und da sollten Wir schon mal mit Windows11 testen anfangen ... face-smile Ansonsten gib ich Dir recht :D
madnem
madnem 31.03.2023 aktualisiert um 13:06:29 Uhr
Goto Top
Wieso Support Ende? Dachte das läuft bis 2025? Und laut Leaks wird Win12 vorraussichtlich irgendwann 2024 kommen, also alles gut. Auch für Firmen.

https://learn.microsoft.com/de-de/lifecycle/products/windows-10-home-and ...
-> 14. Okt 2025
broesel73
broesel73 31.03.2023 um 13:57:13 Uhr
Goto Top
Du hast Recht ... Shame over me ... hab mich mit dem Release vertan ...
Aber trotzdem müssen Wir ja testen face-smile ... und ob Win12 wirklich besser wird, wage ich zu bezweifeln ;)

Außerdem löst das trotzdem nicht mein Problem :D
TomTomBon
TomTomBon 31.03.2023 aktualisiert um 15:11:13 Uhr
Goto Top
Hmmm

Moin erstmal,

Ich starte elevierung aus der CMD folgendermaßen:
net session >nul 2>&1 || (powershell -EP Bypass -NoP -C echo & echo '"---- Bitte die CMD eleviert starten ----'" -verb runas & pause & Exit /b)  

Das ist nur die Abfrage, statt ECHO etc kann auch ein Programm stehen.

In dem Fall habe Ich es auf eine msc mal angepasst:
net session >nul 2>&1 || (powershell -EP Bypass -NoP -C start '"C:\Work-Folder\-_-Console1.msc'" -verb runas & pause /b)  

Bei mir wird die UAC aufgerufen.
TomTomBon
TomTomBon 31.03.2023 um 14:11:05 Uhr
Goto Top
Aus Win 10 & W11 21H2.
In 22H2 nicht immer face-sad
6247018886
6247018886 31.03.2023 aktualisiert um 15:35:14 Uhr
Goto Top
Klappt hier im Test testweise genau so auch unter Windows 11, wenn der Pfad nicht gefunden wird fehlen dem User womöglich Zugriffsrechte auf den Pfad.
broesel73
broesel73 31.03.2023 um 15:16:20 Uhr
Goto Top
Das starten an sich klappt ... aber es geht ja darum Credentials mitzugeben und als anderer Benutzer zu starten ...

So kommt die UAC und die MMC wird gestartet:
$mmcPath = "C:\Windows\System32\mmc.exe"  
$mscPath = "C:\Applikationen\AdmKonsole\AdmKonsole.msc"  
Start-Process -FilePath $mmcPath -Argumentlist $mscPath

Aber dann starte ich als lokaler Benutzer der nicht die erforderlichen Rechte auf den Snap-Ins hat.
$mmcPath = "C:\Windows\System32\mmc.exe"  
 $mscPath = "C:\Applikationen\AdmKonsole\AdmKonsole.msc"  
Start-Process -FilePath $mmcPath -Argumentlist $mscPath -Credential $cred
Hier geb ich den Benutzer mit, und schon kommt keine UAC und ein Fehler ...

2023-03-31_151358
6247018886
6247018886 31.03.2023 aktualisiert um 15:20:51 Uhr
Goto Top
Du bist wohl in einem Arbeitsverzeichnis auf das der User dessen Credentials du eingibst keine Rechte hat. Setze mal den Parameter -WorkingDirectory von Start-Process auf einen Ordner in den der User Zugriff wechseln kann.
Im Zweifel setze auch den Parameter -LoadUserProfile
broesel73
broesel73 31.03.2023 um 15:45:42 Uhr
Goto Top
Der User ist auch Admin auf der Maschine. Und wenn ich den Pfad direkt aufrufe mit dem User geht es …

Werde aber die Parameter trotzdem testen sobald ich wieder am PC bin. Hab jetzt erstmal Feierabend 😊
6247018886
6247018886 31.03.2023 aktualisiert um 15:52:49 Uhr
Goto Top
Der User ist auch Admin auf der Maschine. Und wenn ich den Pfad direkt aufrufe mit dem User geht es …
Du missverstehst, ich meinte das aktuelle Arbeitsverzeichnis.
Nun es fehlt ja auch offensichtlich die Hälfte von deinem Skript hier. Muss nicht zwingend an der o.g. Zeile liegen. Klappt wie gesagt mit dem o.g. Einzeiler hier absolut fehlerfrei.
mayho33
mayho33 01.04.2023 um 14:52:31 Uhr
Goto Top
Zitat von @broesel73:

Hi,
Hi

unter Windows 10 hatte ich mir ein kleines Script gebaut mit dem ich die MMC mit Argument und als anderer Benutzer (Administartor) starten konnte.

Start-Process powershell -ArgumentList '-command',"start mmc -verb runas -Argumentlist 'C:\Applikationen\AdmKonsole\AdmKonsole.msc'" -Credential $creds  
Versuche es doch einfach mal mit System-Variablen ala "$env:ProgramFiles", "${env:ProgramFiles(x86)}", "$env:SystemRoot" udgl face-wink

In einem Batch.cmd ließe sich das mAn sogar wesentlich kofortabler über das Kontext-Menü mit: "als Administrator ausführen" callen

Dazu als Vorbereitung
  • einfach via mmc.exe das gewünschte Snap-In adden
  • das Ganze dann irgendwo abspeichern.
          • Ich habe meines mal als "ComputerVerwaltung.msc" in C:\Windows\system32 abgelegt. Das hat den Vorteil dass in der %comspec% kein Pfad mehr hinterlegt werden muss. face-wink

compver

Das lässt sich dann auf verschiedene Arten callen. Auch auf deine Variante:
compver2

cmd start

runas
broesel73
Lösung broesel73 28.04.2023 um 09:17:47 Uhr
Goto Top
So ... habe das Problem gelöst. Es lag am Benutzer vor dem Monitor :/
Ich habe das Skript immer über eine Verknüpfung ausgeführt die einen falschen "Ausführen in:" Pfad hatte. Sehr interessanter Fehler.
Hier nochmal das ganze Skript für interessierte:

$username = Read-Host "User"
$fulluser = "xxx.local\$username"
$password = Read-Host "Passwort" -AsSecureString
$cred = New-Object System.Management.Automation.PSCredential($fulluser,$password)

if($env:Username -ne $username){
Start-Process powershell -ArgumentList '-command',"start mmc -verb runas -Argumentlist 'C:\Applikationen\AdmKonsole\AdmKonsole.msc'" -Credential $cred

}else{
Start-Process mmc -verb runas -Argumentlist 'C:\Applikationen\AdmKonsole\AdmKonsole.msc'
}