PowerShell :
Get-NetConnectionProfile
Pour récupérer l’Index des cartes puis :
Set-NetConnectionProfile -InterfaceIndex <index number> -NetworkCategory < Private ou Public >
PowerShell :
Get-NetConnectionProfile
Pour récupérer l’Index des cartes puis :
Set-NetConnectionProfile -InterfaceIndex <index number> -NetworkCategory < Private ou Public >
Une seule commande :
1 |
sysdm.cpl |
Souci rencontré sous Windows 2012 : plus aucune modification possible, disque plein alors qu’il reste de l’espace, …
Il manque une information capitale, lorsque vous démarrez d’un media virtuel ou d’un support usb, car windows change la lettre des lecteurs; donc commandes à faire avant de lancer chkdsk :
1 2 3 |
diskpart list volume |
Récupérez la lettre où le système doit se trouver et ensuite lancez chdsk :
1 |
chkdsk [lettre trouvée]: /R |
Par exemple pour moi il avait déplacé le disque système sur D, et le disque de données sur C (lettres inversées). Cela a donné :
1 |
chkdsk D:/R |
A partir de là j’ai pu lancer la commande ICACLS qui change les droits sur les répertoires mais via la nouvelle lettre :
1 |
ICACLS D:\\windows\winxs |
Puis j’ai pu relancer la commande CHDSK sans plus aucune d’erreur de protection, machine sauvée !
Lors d’une migration de serveur ou cas très rare, il se peut que le cache du Webmail ne se mette pas à jour.
Il y a quelques temps de cela, la simple suppression du fichier cache.db suffisait, ou pour ceux qui utilisent SQLlite la procédure est toujours de vigueur.
Bon nous on a tout fait bien comme dans la doc, avec un mySQL 64 bits de dernière génération et là il faut envoyer de la requête …
Premièrement il nous faut trouver la base en question : GroupWare > Client Web > onglet Général > Base de données.
Quand on connaît la base de données, direction : Système > Outils > Gestionnaire SQL et sélectionner la base détectée dans la première étape, vous pouvez également passer par php myadmin par exemple.
Les commandes :
1 2 3 4 |
// commande 1 DELETE i FROM item AS i INNER JOIN folder on i.folder_id = folder.folder_id WHERE folder.account_id = 'email' // commande 2 DELETE FROM folder WHERE folder.account_id = 'email' |
Un petit Count permet de voir que tout est bien à 0 :
1 2 3 4 |
// vérif commande 1 SELECT count(*) FROM item AS i INNER JOIN folder on i.folder_id = folder.folder_id WHERE folder.account_id = 'email' // vérif commande 2 SELECT count(*) FROM folder WHERE folder.account_id = 'email' |
! Avant toute intervention au niveau du cache il faut fermer les sessions au Webmail via Session > Groupware.
Impossible d’accéder à un iDrac ou Server Administrator utilisant un ssl tls 1.1 ou 1.2, astuce :
PS : ne pas reproduire cette manipulation pour de la consultation Internet !!!
La formule de Lhun permet de vérifier un numéro de carte bleue, un siret, un siren, … tellement utile pour les contrôles de formulaire que je me suis penché sur la question ne trouvant rien de probant sur Internet.
La partie front :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="luhn.aspx.cs" Inherits="luhn" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> </head> <body> <span id="spanResult" runat="server"></span> <form> Numéro à vérifier : <input type="text" name="numberToVerify" value="<%=numberToVerify %>" /> <input type="submit" name="mem" value="vérifier" /> </form> </body> </html> |
Juste un formulaire pour envoyer le chiffre, rien de bien palpitant 🙂
La partie programmée :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Text; using System.Text.RegularExpressions; public partial class luhn : System.Web.UI.Page { public string numberToVerify = ""; public int ttlAddition = 0, cpt = 1; public StringBuilder sb = new StringBuilder(); protected void Page_Load(object sender, EventArgs e) { numberToVerify = Request["numberToVerify"] ?? ""; if (numberToVerify != "") { string formatInput = Regex.Replace(numberToVerify, "[^a-zA-Z0-9_]+", "", RegexOptions.Compiled); string reverseCard = new string(formatInput.ToCharArray().Reverse().ToArray()); int[] arrDigits = Array.ConvertAll<string, int>( System.Text.RegularExpressions.Regex.Split(reverseCard.ToString(), @"(?!^)(?!$)"), str => int.Parse(str) ); int[] arrMult = new int[arrDigits.Length]; // première étape de Luhn : On démarre avec le dernier chiffre (à droite) et on se déplace vers la gauche, en doublant la valeur de tous les chiffres de rang pair for (int i = 0; i < arrDigits.Length; i++) { if (cpt == 1) arrMult[i] = arrDigits[i]; // la clé est traitée en 1er, le chiffre n'est pas doublé else { if (cpt % 2 == 0) arrMult[i] = 2 * arrDigits[i]; else arrMult[i] = arrDigits[i]; } cpt++; } // On additionne ensemble tous les chiffres de chaque nombre ainsi obtenu, si chiffre > 10 alors chiffre à additionner donne par ex : 18 = 1 + 8 for (int i = 0; i < arrMult.Length; i++) { if ((int)arrMult[i] >= 10) // si chiffre > 9 il faut re décomposer le chiffre, ex 18 donne : 1+8 { int[] intList = Array.ConvertAll<string, int>( System.Text.RegularExpressions.Regex.Split(arrMult[i].ToString(), @"(?!^)(?!$)"), str => int.Parse(str) ); for (int j = 0; j < intList.Count(); j++) { ttlAddition += (int)intList[j]; } } else ttlAddition += (int)arrMult[i]; } // si modulo par 10 de l'addition est nul alors notre chiffre est valide if (ttlAddition % 10 == 0) spanResult.InnerHtml = "Vérification OK"; else spanResult.InnerHtml = "Vérification Fausse"; } } } |
Quelques remarques :
Quelques liens utiles :
https://fr.wikipedia.org/wiki/Formule_de_Luhn
https://portal.hardis-group.com/pages/viewpage.action?pageId=120357227
Une petite méthode simple et rapide pour compter le nombre d’occurrences identiques dans un array multi dimensionnel :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
var locs = [ { "id": 1, "text": "Dire Straits", "famille": "rock fm" }, { "id": 2, "text": "Simple Minds", "famille": "new wave" }, { "id": 3, "text": "The Cure", "famille": "new wave" }, ]; var numOccurences = 0; var search = "new wave"; // ce que l'on cherche $(document).ready(function () { numOccurences = $.grep(locs, function (pdt) { return pdt.famille === search; }).length; console.log("Nombre d'occurences de " + search + " = " + numOccurences); }); |
Retourne :
Nombre d’occurrences de new wave = 2
CQFD 🙂
Bonjour,
Ce petit tutoriel a pour vocation de configurer les crons WordPress manuellement afin d’éviter leur empilement qui peut être du à plusieurs problèmes dont des modifications au niveau des timezones ou tout simplement le code de WordPress qui n’est pas « thread-safe ».
La première étape consiste à supprimer l’automatisation de ce cron dans le fichier wp-config.php
1 |
define('DISABLE_WP_CRON', true); |
L’étape suivante consiste à créer un cron pour l’url dans notre console d’infogérance RD serveur pour lancer automatiquement le cron par URL à la fréquence souhaitée (attention à ne pas lancer le cron par fichier).
1 |
http://monsite.com/wp-cron.php?doing_wp_cron |
Pour tester la sécurisation de votre site vous pouvez utiliser ce site :
https://www.ssllabs.com/ssltest/
Afin que vos résultats soient privés, veuillez cocher la case « Do not show the results on the boards » .
Une explication du Rating ce trouve ici (anglais) :
https://github.com/ssllabs/research/wiki/SSL-Server-Rating-Guide
Ce qui dépend de votre IIS sera principalement les « protocoles » et les « ciphers ».
Un outil permet de configurer cela simplement (download > gui) :
https://www.nartac.com/Products/IISCrypto/
Concernant les protocoles,
Seul TLS 1.2 et 1.3 ne sont pas obsolètes.
Il est à noter que IIS ne supporte pas TLS 1.3.
Concernant les ciphers,
Diffie-Hellman est obsolète.
Une configuration correcte en 1.2 est la suivante :
Pour obtenir la note de A+, il faudra un certificat en RSA 4096 bits ou plus.
Les certificats « Let’s Encrypt » sont par défaut en RSA 2048 bits ou RSA 3072 bits ce qui limite la note de la clef respectivement à 80% ou 90%.
Plus la clef est grande plus le protocole HTTPS en sera ralenti. Ce qui est gagné en « sécurité » est perdu en rapidité.
Pour obtenir du TLS 1.3 tout en gardant votre site Asp sur du IIS, nous proposons des serveurs de reverse proxy sous Ubuntu + Apache.
Ce tutoriel concerne le système Ubuntu et tous les systèmes utilisant openssl.
Note importante, par défaut les commandes openssl ne traitent que le premier certificat d’une chaine.
1 2 3 4 5 6 7 8 9 10 |
# Executer cette commande avec la clef : $ openssl rsa -noout -modulus -in {example.com}.key | openssl md5 # Executer cette commande avec le csr : $ openssl req -noout -modulus -in {example.com}.csr | openssl md5 # Executer cette commande avec le certificat : $ openssl x509 -noout -modulus -in {example.com}.crt | openssl md5 # Si les 3 resultats sont identiques alors le csr a bien été créer avec cette clef. |
1 2 3 4 5 6 7 8 9 10 11 12 |
# # L'erreur la plus commune viens d'erreur de copier-coller lors d'une fabrication manuelle du pem contenant la chaine et les différents certificats d’autorité. # Exécuter cette commande avec le fichier pem : $ openssl crl2pkcs7 -nocrl -certfile {example.com}.pem | openssl pkcs7 -print_certs -noout subject=CN = blog.rdmedias.com issuer=C = US, O = Let's Encrypt, CN = R3 subject=C = US, O = Let's Encrypt, CN = R3 issuer=O = Digital Signature Trust Co., CN = DST Root CA X3 # Le premier sujet est notre site suivit de son "issuer". # Ensuite nous avons une chaine avec chaque "issuer" égal au "subject" suivant # Enfin, nous finissons avec le certificat ayant un issuer Root (ou proche) |
1 2 3 |
$ openssl x509 -noout -in {example.com}.pem -dates notBefore=Apr 12 19:51:31 2021 GMT notAfter=Jul 11 19:51:31 2021 GMT |