|
Mostrar Mensajes
|
Páginas: [1] 2 3
|
2
|
Programación / Scripting / Re: No consigo copiar carpetas mas antiguas. VBS. Help....
|
en: 24 Septiembre 2023, 17:20 pm
|
Corrigo, funciona perfectamente hasta esta linea: fso.MoveFolder sfolder.path,sCustomerPicturesPath
Aqui me da error de acceso denegado.
sCustomerPicturesPath es una caprpeta de mi propio ordenador, no deberia denegar el acceso.
Function MoveDeleteOldFolders(Root,MaxAgeInDays)
Dim fso, sfolder, ofolder, oSubFolders Set fso = CreateObject ("Scripting.FileSystemObject")
If fso.FolderExists(Root) Then
Set ofolder = fso.GetFolder(Root) Set oSubFolders = ofolder.SubFolders Set sfolder = Nothing
On Error Resume Next Err.clear
For Each sfolder in oSubFolders If Err.Number <> 0 Then ESAHMI.ESAMSGBOX Err.Number Exit For 'If no permission or no subfolder in folder End If On Error goto 0 createdDate = FormatDateTime(sfolder.DateCreated, "2") 'Getting folder date 2 = vbShortDate - Returns date: mm/dd/yyyy
If (DateDiff("d", createdDate, Date) > MaxAgeInDays) Then fso.MoveFolder sfolder.path,sCustomerPicturesPath fso.DeleteFolder sfolder.path, True End If Next Else AppendLog("WARNING" &chr(9) &"DataMaintenance: " &chr(9) &"Data _ maintenance not done, folder doesn't exist. " &Root) End If
Set fso = Nothing Set ofolder = Nothing Set oSubFolders= Nothing Set sfolder = Nothing End Function
|
|
|
3
|
Programación / Scripting / No consigo copiar carpetas mas antiguas. VBS. Help....
|
en: 24 Septiembre 2023, 15:02 pm
|
Hola a todos
Necesito copiar carpetas mas antiguas de x dias dentro de una carpeta, hacia otra carpeta por tareas de mantenimiento.
Hago este scrpit pero no me encuentra nada en oSubFolders, y tiene la ruta correcta en ofolder.
Da error en esta linea (Ruta de acceso no encontrada): fso.GetFolder(sfolder).Copy sCustomerPicturesPath
Root=C:\Users\Mycomputer\Documents\SD2 MaxAgeInDays=2
Function MoveDeleteOldFolders(Root,MaxAgeInDays)
Dim fso, sfolder, ofolder, oSubFolders Set fso = CreateObject ("Scripting.FileSystemObject")
If fso.FolderExists(Root) Then
Set ofolder = fso.GetFolder(Root) Set oSubFolders = ofolder.SubFolders Set sfolder = Nothing On Error Resume Next Err.clear
For Each sfolder in oSubFolders If Err.Number <> 0 Then Exit For 'If no permission or no subfolder in folder On Error goto 0 createdDate = FormatDateTime(sfolder.DateCreated, "2") If (DateDiff("d", createdDate, Date) > MaxAgeInDays) Then fso.GetFolder(sfolder).Copy sCustomerPicturesPath fso.DeleteFolder sfolder, True End If Next End If End Function
No se donde tengo el fallo.
Gracias por adelantado.
|
|
|
4
|
Programación / Scripting / No co sigo copiar una subcarpeta a otro destino. Help.
|
en: 24 Septiembre 2023, 12:59 pm
|
Dim fso, sfolder, ofolder, oSubFolders Set fso = CreateObject ("Scripting.FileSystemObject")
If fso.FolderExists(Root) Then
Set ofolder = fso.GetFolder(Root) Set oSubFolders = ofolder.SubFolders Set sfolder = Nothing 'ESAHMI.ESAMSGBOX Root 'ESAHMI.ESAMSGBOX CStr(ofolder) ESAHMI.ESAMSGBOX ofolder 'ESAHMI.ESAMSGBOX oSubFolders On Error Resume Next Err.clear
' For Each folder in fso.GetFolder(Root).SubFolders For Each sfolder in oSubFolders If Err.Number <> 0 Then ESAHMI.ESAMSGBOX Err.Number Exit For 'If no permission or no subfolder in folder End If On Error goto 0 ESAHMI.ESAMSGBOX sfolder ESAHMI.ESAMSGBOX oSubFolders createdDate = FormatDateTime(sfolder.DateCreated, "2") 'Getting folder date 2 = vbShortDate - Returns date: mm/dd/yyyy If (DateDiff("d", createdDate, Date) > MaxAgeInDays) Then fso.GetFolder(sfolder).Copy sCustomerPicturesPath fso.DeleteFolder sfolder, True End If Next
|
|
|
7
|
Programación / Scripting / Re: Leer registro remoto con PSExec y guardarlo en una variable.
|
en: 2 Abril 2023, 21:01 pm
|
Finalmente he conseguido transformarlo a UTF-8 con BOM y lo lee correctamente la HMI. Me queda un fleco que es lo siguiente, cuando leo las claves y las guardo en un fichero lo realizo con PSexec con el sigiente codigo pero no se ejecuta en oculto veo el pantallazo negro.
Alguien sabe por que?
set objShell = CreateObject("WScript.Shell") cmd= "D:\NUBOTBAT\psexec.exe \\"& IPExt1 &" -u " &AdminUserInkjet1 &" -p " &AdminPWDInkjet1 &" -d -c -h -i -realtime -f D:\NUBOTBAT\RegExport.bat " &sPath &" "&sFileName &" "&AdminUserInkjet1 &" "&AdminPWDInkjet1
objShell.Run cmd, 0, true set objShell = Nothing
|
|
|
8
|
Programación / Scripting / Re: Leer registro remoto con PSExec y guardarlo en una variable.
|
en: 2 Abril 2023, 16:07 pm
|
Gracias EdePC por tu fantastica explicacion. La cuenta de administrador en la maquina remota esta activada de fabrica y dispongo de la contraseña no hay problema por eso. Ya lo tenia echo como me has descrito, pero fuy a probarlo en la maquina de mi cliente y no me leia las claves, alli no podia hacer muchas pruebas, tampoco quiero hacer cambios en su maquina para evitar responsabilidades, esa era la razon de utilizar PSexec, ataves de un Bat. Mas tarde mire mi bat y creo que el usuario y pwd que enviaba no eran correctos, pero en casa de un cliente, ya sabes, no se puede hacer demasiadas pruebas y menos cuando le tienes la maquina parada y sin producir. He utilizado Reg export para extraer las claves del registro que necesito y las guardo en un fichero Profile.reg en mi PC. Hasta aqui todo bien, pero mi pantalla HMI solo lee ficheros en UF-8 sin BOM y Windows guarda el fchero en UTF-16LE, o sea que me quedo bloqueado otra vez. Estaba intentando transformar el fichero UTF-16 en UTF-8 sin BOM pero no se por donde empezar, alguna idea?. Algo facil seria abrirlo con notepad y guardarlo en UFT8 sin BOM, no se si se puede hacer en oculto para que no se vea notepad. O, se os ocurre alguna otra idea mas sencilla.
Gracias por aelantado.
|
|
|
9
|
Programación / Scripting / Re: Leer registro remoto con PSExec y guardarlo en una variable.
|
en: 1 Abril 2023, 12:38 pm
|
He probado e hacerlo localmente guarando los registros en local funciona, pero con Psexec no consigo que guarde el fichero en el PC cliente.
Este es el BAT.
%1 & ::RegKKey path. %2 & ::path and filename .reg. %3 & ::User %4 & ::Pass. CmdKey /Add:administrador /User:%3 /Pass:%4 Reg Export %1 %2 /Y
Este es el script VBS, previamente todas las variable definidas,
set objShell = CreateObject("WScript.Shell") cmd= "D:\NUBOTBAT\psexec.exe \\"& IPExt1 &" -u " &AdminUserInkjet1 &" -p " &AdminPWDInkjet1 &" -d -c -h -i -realtime -f D:\NUBOTBAT\RegExport.bat " &sPath &" "&sFileName &" "&AdminUserInkjet1 &" "&AdminPWDInkjet1 objShell.Exec (cmd) set objShell = Nothing
Ejecutando el BAT localmente en el PC remoto me guarda bien el fichero en el PC cliente.
CmdKey /Add:administrador /User:administrador /Pass:pasworrd Reg Export "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\...\_ProfAssoc" "\\xxx.xxx.xxx.xx\D\pcCliente\ProfileAssoc.reg" /Y
|
|
|
10
|
Programación / Scripting / Leer registro remoto con PSExec y guardarlo en una variable.
|
en: 1 Abril 2023, 11:28 am
|
Buenos dias
Necesitaria ayuda para leer un registro remoto y guardarlo en una variable que me retorne el BAT, no se si seria possible o abria que dejarlo en un fichero y luego leerlo, preferiria la primera opcion.
Tengo lo siguiente:
Fichero BAT.
%1 & ::RegKKey path. %2 & ::RegKKey name. %3 & ::RegKKey type. %4 & ::RegKKey value. %5 & ::User %6 & ::Pass. CmdKey /Add:administrador /User:%5 /Pass:%6 Reg Query %1 /V %2 /T %3 /D %4 /F
VBScript.
set objShell = CreateObject("WScript.Shell") cmd= "D:\NUBOTBAT\psexec.exe \\"& sIP &" -u " &AdminUserInkjet1 &" -p " &AdminPWDInkjet1 &" -d -c -h -i -realtime -f D:\NUBOTBAT\ReadReg.bat " &sPath &" "&sValueName &" " &sValueType &" " &Chr(34) &sValueData &Chr(34) objShell.Exec (cmd) set objShell = Nothing
Esto creo que leeria el registro pero como lo obtengo en una variable?
Gracias por adelantado
|
|
|
|
|
|
|