venerdì 20 marzo 2020

FFMPEG - Estrazione traccia audio da MKV

Per estrarre la traccia audio presente in un file MKV, specificando bitrate e frequenza, il comando è questo:

 ffmpeg -i "input.mkv" -ac 2 -ab 192000 -ar 44100 "output.mp3"

martedì 17 marzo 2020

MS SQL - Analisi delle query in esecuzione e bloccate

Questo è uno script per l'analisi delle query in esecuzione e bloccate in un database di Microsoft SQL Server:

 SELECT DTL.resource_type ,  
     CASE WHEN DTL.resource_type IN ( 'DATABASE', 'FILE', 'METADATA' )  
        THEN DTL.resource_type  
        WHEN DTL.resource_type = 'OBJECT'  
        THEN OBJECT_NAME(DTL.resource_associated_entity_id, SP.[dbid])  
        WHEN DTL.resource_type IN ( 'KEY', 'PAGE', 'RID' )  
        THEN ( SELECT OBJECT_NAME([object_id])  
           FROM  sys.partitions  
           WHERE  sys.partitions.hobt_id = DTL.resource_associated_entity_id  
          )  
        ELSE 'Unidentified'  
     END AS requested_object_name ,  
     DTL.request_mode ,  
     DTL.request_status ,  
     DEST.TEXT ,  
     SP.spid ,  
     SP.blocked ,  
     SP.STATUS ,  
     SP.loginame  
 FROM  sys.dm_tran_locks DTL  
     INNER JOIN sys.sysprocesses SP ON DTL.request_session_id = SP.spid    
     --INNER JOIN sys.[dm_exec_requests] AS SDER ON SP.[spid] = [SDER].[session_id]   
     CROSS APPLY sys.dm_exec_sql_text(SP.sql_handle) AS DEST  
 WHERE  SP.dbid = DB_ID()  
     AND DTL.[resource_type] <> 'DATABASE'  
 ORDER BY SP.blocked DESC ,  
     DTL.[request_session_id] ;  

MS SQL - Analisi dei trigger presenti in un database

Questo è un piccolo script per individuare tutti i trigger in un database di Microsoft SQL Server:

 SELECT sysobjects.name AS trigger_name ,  
     USER_NAME(sysobjects.uid) AS trigger_owner ,  
     s.name AS table_schema ,  
     OBJECT_NAME(parent_obj) AS TABLE_NAME ,  
     OBJECTPROPERTY(id, 'ExecIsUpdateTrigger') AS isupdate ,  
     OBJECTPROPERTY(id, 'ExecIsDeleteTrigger') AS isdelete ,  
     OBJECTPROPERTY(id, 'ExecIsInsertTrigger') AS isinsert ,  
     OBJECTPROPERTY(id, 'ExecIsAfterTrigger') AS isafter ,  
     OBJECTPROPERTY(id, 'ExecIsInsteadOfTrigger') AS isinsteadof ,  
     OBJECTPROPERTY(id, 'ExecIsTriggerDisabled') AS [disabled]  
 FROM  sysobjects  
     INNER JOIN sysusers ON sysobjects.uid = sysusers.uid  
     INNER JOIN sys.TABLES t ON sysobjects.parent_obj = t.object_id  
     INNER JOIN sys.schemas s ON t.schema_id = s.schema_id  
 WHERE  sysobjects.TYPE = 'TR'  

PowerShell - Usare Send-MailMessage per inviare PEC tramite l'SMTP di Aruba

Cercando in rete, sembra che l'utilizzo di Send-MailMessage non funzioni con l'Explicit SSL di Aruba.

Io invece ci sono riuscito.

Il trucco è quello di indicare l'utilizzo del protocollo TLS1.2 prima di tentare l'invio.

Un esempio di codice:
 # variabili  
 $PECSMTP_username = "username@pec.dominio.it"  
 $PECSMTP_password = "password"  
 $PECSMTP_fromAddress = "indirizzo@pec.dominio.it"  
 $PECSMTP_server = "smtps.pec.aruba.it"  
 $PECSMTP_port = 587  
 $mail_to = "destinatario@pec.dominio.it"  
 $mail_subject = "oggetto"  
 $mail_body = "corpo della mail"  
 $attachment = "[url dell'allegato]"  
   
 # imposto l'utilizzo della connessione TLS 1.2  
 [System.Net.ServicePointManager]::SecurityProtocol = 'Tls,TLS11,TLS12'  
   
 # generazione della password  
 $mail_password = $PECSMTP_password | ConvertTo-SecureString -asPlainText -Force  
   
 # generazione delle credenziali  
 $credential = New-Object System.Management.Automation.PSCredential($PECSMTP_username, $mail_password)  
   
 # invio della mail  
 $returnSendTry = Send-MailMessage -from $PECSMTP_fromAddress `  
     -to $mail_to `  
     -subject "$mail_subject" `  
     -body $mail_body `  
     -smtpServer $PECSMTP_server `  
     -Port $PECSMTP_port `  
     -UseSsl `  
     -Attachments $attachment `  
     -Credential $credential `  
     -ErrorVariable returnVar  
Da notare l'utilizzo della porta 587, che accetta le connessioni in ingresso (la 465 no).