2010-03-11 8 views
11

¿Existe alguna forma de automatizar la firma de código de un proyecto de VBA en un documento de Word 2003 y/o Word 2007?Firmar un proyecto/archivo de Word VBA a través de línea de comandos u otra forma de automatización

Por automatizar quiero decir a través de una utilidad de línea de comandos o mediante la automatización de Word VBA?

Motivación: Me gustaría codificar varias plantillas de Word como parte de un ciclo automatizado de compilación y distribución diaria. Ahora mismo tenemos que hacer esto manualmente abriendo cada documento en Word y renunciando.

Gracias, Malcolm

+1

de inicio con una plantilla base firmado, hacer las modificaciones necesarias, y guardar como. Esto preserva la firma digital. – AMissico

+0

Me imagino que podrías hacerlo a través de SendKeys; solo necesitarías enviar Alt, luego T, luego D, luego Enter. Una manera bastante horrible de hacer las cosas, por supuesto, pero siempre es una opción. –

Respuesta

-1

No creo que exista una forma automatizada de hacer esto porque vencería la seguridad de firma de código VBA Project signing.

Los dos resúmenes de mensajes se comparan, y si cualquier parte del archivo ha sido modificados o dañados, los digiere no coincidirán y el contenido del archivo no se puede confiar. El proceso de verificación fallará independientemente de cómo se modificó el archivo - ya sea a través de corrupción, un virus de macro o cambios programáticos realizados por un complemento o una solución de Office. El proceso de verificación también fallará si el archivo no fue firmado con un certificado válido ; es decir, si el certificado ha caducado o ha sido forjado, alterado o dañado. Si otro usuario modifica el proyecto de VBA, , la aplicación Office 2000 elimina la firma actual y solicita al usuario que vuelva a firmar el proyecto de VBA; si el usuario no firma el proyecto de VBA o lo firma con otro certificado, el archivo puede fallar el proceso de verificación .

insertado desde http://msdn.microsoft.com/en-us/library/aa190113(office.10).aspx

La firma de código tiene el nivel de seguridad adicional en el hecho de que un desarrollador debe compilar el código fuente. Una macro no se compila y se puede distribuir como texto. Por lo tanto, la automatización de la macro firma abriría un gran agujero de seguridad. La firma manual de una macro es similar a Outlook, lo que solicita al usuario que permita el acceso programático a la libreta de direcciones.

+1

No estoy seguro de comprar esa conclusión porque puedo crear scripts que firman con código mis ejecutables y dlls. Además, cuando estoy firmando un proyecto de VBA, todo lo que hago es seleccionar un certificado; ni siquiera me piden una contraseña. – Malcolm

+0

Es cierto, pero tenga en cuenta que no existe una manera automática de configurar la contraseña para un proyecto de VBA. Además, no se le solicita una contraseña porque la clave privada ya está en el almacén de certificados. La firma de código es automática porque los desarrolladores tienen que compilar el código antes de la implementación, que es un nivel de seguridad. – AMissico

+0

Además, si un desarrollador realmente quería automatizar este proceso, estoy seguro de que puede encontrar una forma, ya que tienen el control completo de su máquina. – AMissico

2

nunca he visto una manera de hacer esto. Tuve una versión automatizada de una plantilla hace años y al final apareció un cuadro de mensaje que decía "debes ir a firmar la plantilla ahora" y luego abrí VBA para ellos. Solo digo que siento tu dolor, supongo.

+1

Gracias por los pensamientos Tom (la miseria ama a la compañía ). Estoy sorprendido de que no parece haber una manera de hacer esto. Continúo buscando por mi cuenta, independientemente de esta publicación. – Malcolm

Cuestiones relacionadas