robcomboy
Goto Top

WMIC - ReturnValue in Batch abfragen

Hallo,
ich habe ein kleines Problem.
Vielleicht kann mit jemand helfen


Dieser Einzeiler benennt meinen Benutzernamen in "NewName" um.

wmic UserAccount where Name="%USERNAME%" call Rename Name="NewName"  

Um nachzuprüfen, ob dieses erfolgreich geschehen ist, benötige ich den automatisch ausgegebenen ReturnValue Wert in einer Variablen.

Mit %errorlevel% funktioniert es nicht, und ich kenne nicht den Befehl oder die entsprechende Variable, die diesen Wert enthält.

Ist der Befehl erfolgreich ausgeführt worden, dann wird der Wert 0 ausgegeben.

Hoffe jemand kennt eine Lösung.

Grüße, robcomboy

Content-Key: 103801

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

Printed on: April 23, 2024 at 13:04 o'clock

Member: Vierus
Vierus Jun 10, 2011 at 00:25:07 (UTC)
Goto Top
Hallo
ja Thema aus 2008 aber bei 1700 klicks, hier mal ein tip
http://mcse.körbel.at/links/290/wmi/wmic.htm

also wäre die antwort:

wmic useraccount get /value

Direkte Wmic-Auswertung auf Batch-Ebene oder Kommandozeile:

for /F "delims== tokens=1" %n in ('wmic os get serialnumber') do set sn=%n

Guß
Vierus
Member: Friemler
Solution Friemler Jun 10, 2011 at 01:39:16 (UTC)
Goto Top
Hallo robcomboy,

die SID wird durch eine Umbenennung nicht verändert. Du könntest also zuerst über den alten Usernamen die SID ermitteln und nach der Umbenennung über die SID den jetzigen Usernamen ermitteln. Wenn gewünschter und tatsächlich gesetzter Username gleich sind, war die Aktion erfolgreich.

WMIC benötigt Adminrechte . Ungetestet:
@echo off

setlocal

set "OldName=%UserName%"  
set "NewName=NeuerName"  

set "SID="  
set "Name="  

for /f "tokens=2 delims==" %%s in ('wmic UserAccount Where Name^="%OldName%" get SID /value') do (  
  if not defined SID set "SID=%%s"  
)

wmic UserAccount Where Name="%OldName%" call Rename Name="%NewName%"  

for /f "tokens=2 delims==" %%n in ('wmic UserAccount Where SID^="%SID%" get Name /value') do (  
  if not defined Name set "Name=%%n"  
)

if "%Name%" equ "%NewName%" echo Erfolgreich  

Oder Du könntest das ganze mit VBS lösen, so wie hier beschrieben, und dadurch den Rückgabewert direkt verarbeiten.

Gruß
Friemler