febbraio 4, 2023 · sap keepass command-line

Aprire SAP GUI da terminale o Keepass

Quando si ha a che fare con tanti clienti con SAP, si passa buona parte del proprio tempo a saltellare da un sistema a un altro (da un cliente a un altro, da sviluppo a test a produzione, ecc..).

E ogni volta che si accede a un sistema bisogna cercarlo nella lista, aprirlo, poi andare a cercare le credenziali nel proprio password manager, poi copiaincollare le credenziali, verificare di avere impostato il giusto codice client e la giusta lingua, e poi finalmente ci siamo.

Salvo che non ho sbagliato a copiare la password e devo ricominciare da capo.

Scomodo.

Immagine di repertorio :-)

Fortunatamente l'installazione standard della SAP GUI su Windows si porta appresso un misconosciuto programmino, "sapshcut", che consente di aprire una connessione direttamente con un comando da terminale:

start sapshcut -system="ABC" -desc="DESCRIZIONE" -client=123 -user="XXXX" -pw="XXXXX" -maxgui -language="EN"

E' sufficiente scrivere il nome della connessione così come è stata salvata nel SAP Logon (vedi sotto), le tre lettere del nome sistema, il client, le credenziali e la lingua desiderata per il login. L'opzione MAXGUI è facoltativa, serve ad aprire la GUI a schermo pieno.

E' già più comodo, ma non risolve la situazione. Dovrei tenermi una lista di comandi da qualche parte, e (peggio del peggio) ciascuno di questi dovrebbe contenere le credenziali in chiaro.

Non bellissimo.

Per fortuna viene in nostro aiuto Keepass 2,  un comodo password manager che lavora esclusivamente in locale (no cloud), open source e gratuito. Possiamo scriverci dentro le nostre credenziali, e proteggerle in un file criptato in locale con un'unica password globale. Le possiamo mettere in ordine in cartelle (magari per progetto) e gli possiamo dare una descrizione comoda. Possiamo perfino assegnare dei colori diversi (magari per distinguere dev da prod) e icone personalizzate.

Un'altra funzione molto comoda è la possibilità di salvare, per ciascuna credenziale, un url. E' possibile poi selezionare la voce dalla lista, premere Ctrl+U (o fare doppio click sulla colonna Url) per aprire direttamente l'indirizzo, tipicamente nel browser.

E' inoltre possibile usare un url del tipo "cmd://", per eseguire un qualunque comando. Possiamo quindi inserire nelle entry relative ai sistemi SAP un url per richiamare sapshcut, in questa maniera:

cmd://sapshcut -system={s:system} -desc="{s:desc}" -client={s:client} -user="{USERNAME}" -pw="{PASSWORD}" -maxgui -language="EN"

I campi tra parentesi graffe sono variabili interpretate da Keepass. USERNAME e PASSWORD corrispondono, ovviamente, alle credenziali inserite. Le altre, identificate come S:<nome>, sono impostate per ciascuna entry nel tab "Advanced":

Voilà. Possiamo selezionare una voce e premere Ctrl+U, e come per magia abbiamo la sessione aperta.

Alla prossima!