Ayuda para formatear salida de un comando

Iniciado por Last_squat, 16 Mayo 2018, 11:47 AM

0 Miembros y 1 Visitante están viendo este tema.

Last_squat

Buenas,

Estoy realizando un script para sacar los derechos de administrador local de 165 máquinas ( no tengo dominio) y mi manera de distribuir el script es con un agente del antivirus kasperksy el cual tengo centralizado.

Bien el problema es que cuando distribuyo el script como lo ejecuta con un usuario especial que no es de la sesión iniciada no funciona correctamente.

FOR /F "usebackq" %%i in (`wmic computersystem get username`) do Set usuario=%%i
net user Administrador /active:yes
net user Administrador password
net localgroup usuarios "%usuario%" /add
net localgroup administradores "%usuario%" /delete

Con el comando "wmic computersystem get username" puedo sacar el usuario logueado pero a la variable le envia varias lineas :

Set usuario=Username
Set usuario=nombredelamaquina\usario
Set usuario=

Y no funciona... Me interesa que solo envie a la variable la segunda linea.

¿Alguna idea?

Mil gracias!!!

Eleкtro

#1
Cita de: Last_squat en 16 Mayo 2018, 11:47 AM
Me interesa que solo envie a la variable la segunda linea.

No hay necesidad de usar WMIC...
Código (dos) [Seleccionar]
Set "domain=%ComputerName%\%Username%"

De todas formas si prefieres usar WMIC...
Código (dos) [Seleccionar]
FOR /F "Tokens=2* Delims==" %%# in (
   ' WMIC.exe ComputerSystem GET Username /Format:List '
) DO (
   Set "domain=%%#"
)


En realidad para entornos de trabajo como el tuyo, administración/automatización de varios equipos, deberías usar Powershell y olvidarte completamente de Batch...

Saludos.








Last_squat

Me funcionó perfectamente con FOR /F "Tokens=2* Delims==" %%# in ( ' WMIC.exe ComputerSystem GET Username /Format:List ') DO ( Set "domain=%%#")


Muchas gracias!!  Sí.. tengo que ponerme con el powershell


Enviado desde mi iPhone utilizando Tapatalk