2010-03-11 9 views
11

Esiste un modo per automatizzare la firma del codice di un progetto VBA in un documento Word 2003 e/o Word 2007?Firma un progetto/file VBA di Word tramite riga di comando o altra forma di automazione

Con l'automazione intendo tramite un programma di utilità della riga di comando o tramite l'automazione di Word VBA?

Motivazione: Desidero firmare il codice di diversi modelli di Word come parte di un ciclo di produzione e distribuzione giornaliero automatizzato. In questo momento dobbiamo farlo manualmente aprendo ogni documento in Word e dimettendo.

Grazie, Malcolm

+1

Inizia con una maschera di base firmato, apportare le modifiche necessarie, e salvare come. Ciò conserva la firma digitale. – AMissico

+0

Immagino che tu possa farlo tramite SendKeys - devi solo inviare Alt, poi T, poi D, quindi Invio. Modo piuttosto orribile di fare le cose, ovviamente, ma è sempre un'opzione. –

risposta

-1

Non credo che ci sia un modo automatico per fare questo perché sarebbe vanificare la sicurezza della firma del codice VBA Project signing.

I due digest di messaggio sono confrontati, e se qualche parte del file è stato modificati o danneggiati, le digerisce non corrisponderanno e il contenuto del file non ci si può fidare. Il processo di verifica non riuscirà a indipendentemente dal modo in cui il file è stato modificato , tramite il danneggiamento, da a un virus macro o da modifiche programmatiche eseguite da un componente aggiuntivo o da una soluzione Office. Il processo di verifica sarà anche fallito se il file non è stato firmato con un certificato valido ; ovvero, se il certificato era scaduto o era stato contraffatto, alterato o danneggiato. Se un altro utente modifica il progetto VBA, l'applicazione Office 2000 rimuove la firma corrente e richiede all'utente di firmare nuovamente il progetto VBA; se l'utente non firma il progetto VBA o lo firma con un altro certificato, il file potrebbe non riuscire il processo di verifica .

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

firma del codice ha l'ulteriore livello di sicurezza nel fatto che uno sviluppatore deve compilare il codice sorgente. Una macro non è compilata e può essere distribuita come testo. Pertanto, l'automazione della firma macro aprirebbe un grosso buco di sicurezza. La sigifica manuale di una macro è simile a Outlook che richiede all'utente di consentire l'accesso programmatico alla rubrica.

+1

Non sono sicuro di acquistare questa conclusione perché posso creare script che codificano i miei eseguibili e DLL. Inoltre, quando firmo un progetto VBA, tutto quello che sto facendo è selezionare un certificato: non mi viene nemmeno richiesta una password. – Malcolm

+0

Vero, ma si noti che non esiste un modo automatico per impostare la password per un progetto VBA. Inoltre, non viene richiesta una password perché la chiave privata è già presente nell'archivio certificati. La firma del codice è automatizzata perché gli sviluppatori devono compilare il codice prima della distribuzione, che è un livello di sicurezza. – AMissico

+0

Inoltre, se uno sviluppatore volesse veramente automatizzare questo processo, sono sicuro che potrebbe inventarsi un modo poiché ha il controllo completo della sua macchina. – AMissico

2

Non ho mai visto un modo per farlo. Ho avuto una build automatizzata di un modello anni fa e alla fine ho spuntato una finestra di messaggio che diceva "devi andare a firmare il modello ora" e quindi aprire VBA per loro. Sto solo dicendo che sento il tuo dolore, credo.

+1

Grazie per i pensieri Tom (la miseria ama la compagnia ). Sono scioccato dal fatto che non ci sia un modo per farlo. Sto continuando a cercare da solo, indipendentemente da questo post. – Malcolm