Buen día Hackers,
Como sigo siendo nuevo en estos temas, acudo por su ayuda.
Lo que quiero es copiar un archivo a traves de un BAT de un equipo remoto en red que comparte la carpera donde esta ese archivo a mi equipo con sistema Windows Vista, para eso tengo el siguiente código:
@echo off
IF EXIST \WINDOWS\system32\blat.exe GOTO inicia ELSE GOTO copia
:copia
ECHO INICIA EL COPIADO
takeown /F "C:\Windows\system32"
Icacls C:\Windows\system32 /Grant TODOS:(F)
COPY \\10.0.51.42\blat310\full\blat.exe C:\Windows\system32
:inicia
ECHO FIN
pause
exit
pero el resultado es:
INICIA EL COPIADO
CORRECTO: el archivo (o carpeta): "C:\Windows\system32" ahora es propiedad
del usuario "PC\Usuario".
archivo procesado: C:\Windows\system32
Se procesaron correctamente 1 archivos; error al procesar 0 archivos
Acceso denegado.
0 archivos copiados.
FIN
Presione una tecla para continuar . . .
Si pudieran ayudarme a resolver esto y poder aprender más, mucho se los agradecería.
@DUF
Porfavor, usa el botón "Insertar código", lo puedes ver en mi firma.
La operación de asignación de permisos es correcta.
Prueba de esta manera:
@Echo OFF
Set "Directory=%WINDIR%\system32"
:COPY
IF NOT EXIST "%Directory%\blat.exe" (
Call :TAKEACCESS
COPY /Y "\\10.0.51.42\blat310\full\blat.exe" "%Directory%\blat.exe" 1>NUL
)
:INICIA
Echo [+] FIN.
Pause&Exit
:TAKEACCESS
takeown /F "%Directory%" 1>NUL
Icacls "%Directory%" /Grant "%USERNAME%":F 1>NUL
Attrib -R "%Directory%" 1>NUL
GOTO:EOF
Saludos
Gracias por la respuesta y una disculpa por no haber empleado el Botón insertar código.
Con el código que me mostraste modifique mi BAT de la siguiente forma:
@echo off
SET "Carpeta=%WINDIR%\system32"
IF EXIST "%Carpeta%\blat.exe" GOTO inicia ELSE GOTO copia
:copia
ECHO INICIA EL COPIADO
takeown /F "%Carpeta%"
Icacls "%Carpeta%" /Grant TODOS:F
Attrib -R "%Carpeta%"
COPY /Y "\\10.0.51.42\blat310\full\blat.exe" "%Carpeta%\blat.exe"
:inicia
ECHO FIN
pause
exit
Aún tengo "Acceso denegado" y no puedo copiar archivos, quite la parte de "1>NULL" para ver los mensajes y lo que note es que al llegar a "Icacls" me manda un error al procesar 0 archivos, no sé si a "Icacls" se le tenga que indicar de alguna forma que el proceso es sobre una carpeta y no sobre un archivo, esto porque me despliega:
archivo procesado: C:\Windows\system32
Se procesaron correctamente 1 archivos; error al procesar 0 archivos
y por lo que el resultado es:
INICIA EL COPIADO
CORRECTO: el archivo (o carpeta): "C:\Windows\system32" ahora es propiedad
del usuario "PC\UserName UserSurname".
archivo procesado: C:\Windows\system32
Se procesaron correctamente 1 archivos; error al procesar 0 archivos
Acceso denegado.
0 archivos copiados.
FIN
Gracias nuevamente por la ayuda.
No te está dando error, te está informando de que hay "0" errores en total :P, los mismos 0 errores que hay en el código que publicaste tú.
¿Esto te da error de acceso denegado?:
Echo a>"C:\Windows\system32\test.tmp"
...¿Has probado a ejecutar el archivo bat como administrador? (Click derecho > Ejecutar como administrador).
Hola gracias nuevamente por la ayuda
Si, sí lo ejecuto también como Administrador y me da el mismo resultado.
Con el código:
Echo a>"C:\Windows\system32\test.tmp"
No me marca ningun "Acceso denegado" y si me crea el archivo sin problemas, por lo que me he dado cuenta que solo me da "Acceso denegado" con archivos *.exe, abra forma de cambiar eso?
Cambie parte del código así:
COPY /Y "\\10.0.51.42\blat310\full\blat.exe" "%Carpeta%\blat.tmp"
ren "%Carpeta%\blat.tmp" blat.exe
Con esto me crea el archivo "blat.tmp", pero al querer Renombrar me marca "Acceso denegado" y esta idea tampoco prospero :(
Sabras alguna solución para esto?
Muchas gracias
Muchas gracias por el apoyo,
Ya logre resolver el problema.
Resulta que tengo instalado el Antivirus MCafee y desactive la parte de "Protección de acceso" y con eso ya me permitio copiar archivos .exe en la carpeta de C:\Windows\System32.