PROJET AUTOBLOG


IT-Connect

Site original : IT-Connect

⇐ retour index

PowerShell et les boucles For

lundi 27 avril 2020 à 09:30

I. Présentation

La boucle "For" est un grand classique des différents langages de scripting et de programmation. Dans cet article, je vous propose de vous familiariser avec les boucles "For" en PowerShell. Dans le même esprit qu'un précédent article au sujet des boucles Do-Until et Do-While en PowerShell. Différents exemples seront intégrés à l'article pour vous aider.

L'objectif d'une boucle "For" est d'exécuter X fois un bloc d'instructions, où le nombre d'exécution de l'état de la condition testée.

II. Comment fonctionne une boucle For ?

En PowerShell, la boucle "For" s'appuie sur la syntaxe suivante :

For(<état initial>;<condition de répétition>;<incrémentation>)
{
  <Si la condition est vraie, on exécute ce bloc d'instructions>
}

<Si la condition est fausse, la boucle for se termine et le script continue...>

Lorsque l'on utilise une boucle for, on suit la logique suivante : on indique une valeur de départ (état initial), une valeur cible dans la condition de répétition (par exemple la valeur 10) et on incrémente la valeur à chaque tour de boucle (à chaque itération) : on peut incrémenter de 1, de 2, de 10, etc... au choix.

III. Exemples "For" en PowerShell

Pour bien comprendre, c'est toujours mieux d'avoir des exemples, commençons par un premier exemple très simple. Nous verrons ensuite un autre exemple avec une boucle "dynamique" et un troisième exemple avec deux conditions.

On peut se dire que l'on part de la valeur "1", et que, tant que la valeur est inférieure à 10, on exécute le bloc d'instruction de la boucle "For", en augmentant de +1 à chaque itération.

Note : Affecter la valeur "0..10" à une variable sert à créer un tableau de valeurs, de 1 à 10.

Ce qui donne :

$valeur = 0..10
For($i=0;$i -lt 10;$i++) 
{ 
   Write-Output "La valeur est $($valeur[$i])" 
}

Ce qui va donner le résultat suivant :

Cela signifie qu'après la ligne "La valeur est 9", l'exécution du script avec ce poursuivre.

Imaginons que l'on ait un tableau de chaînes de caractères (string) et que l'on souhaite exécuter une action sur chaque valeur du tableau, sans connaître à l'avance le nombre d'éléments du tableau, on peut s'appuyer sur la propriété Length.

On va définir la variable $langages et lui attribuer des valeurs (cela pourrait être dynamique). Grâce à $langages.Length, nous allons pouvoir faire une boucle qui traite l'ensemble des éléments du tableau. C'est ce que l'on fait habituellement (et plus simplement) avec une boucle ForEach mais on peut le faire aussi avec une simple boucle For, d'où cet exemple.

Ce qui donne :

$langages = @("PowerShell","Python","PHP","JavaScript","C-Sharp")

For($i=0;$i -lt $langages.Length;$i++) 
{ 
   Write-Output "Le meilleur langage de programmation est $($langages[$i])"
}

Ce qui va donner :

Au sein d'une boucle "For", on utilise généralement la variable $i pour gérer l'initialisation et l'incrémentation. Si besoin, on peut utiliser deux conditions afin de créer une boucle For à conditions multiple. Pour cet exemple, nous prendrons $i et $j. Je mets en jaune les évolutions au niveau de la syntaxe par rapport à une boucle sur une seule condition.

$valeur = 0..10
For(($i = 0), ($j = 0); $i -lt 10 -and $j -lt 10; $i++,$j++)
{
   Write-Output "Les valeurs sont : i = $($valeur[$i]) - j = $($valeur[$j])"
}

Si l'on reprend les deux précédents exemples, avec la valeur de 1 à 10 et le tableau de langages, cela donne :

$valeur = 0..10
$langages = @("PowerShell","Python","PHP","JavaScript","C-Sharp")

For(($i = 0), ($j = 0); $i -lt 10 -and $j -lt $langages.Length; $i++,$j++)
{
  Write-Output "$($valeur[$i]) - $($langages[$i])"
}

Dès que l'on arrive à la fin du tableau $langages, on sort de la boucle "For" car il faut que $i soit inférieur à 10 ce qui est toujours le cas ET que $j soit inférieur à la longueur du tableau, ce qui n'est plus le cas car nous sommes au bout du tableau.

Si l'on veut que ça continue jusqu'à la fin de $i et $j, il faut remplacer le "-and" par "-or" pour que ça continue tant que l'une ou l'autre des conditions soient vraies. Le résultat sera alors différent :

Les boucles "For" sont simples à utiliser et peuvent s'avérer pratique dans vos scripts, mais n'oubliez pas aussi d'utiliser le bon type de boucle en fonction des circonstances : une boucle Do-While, Do-Until ou encore un ForEach. N'hésitez pas à poster un commentaire si vous avez une question.

📌 Comment créer son premier script PowerShell ?

Yammer : L’app « Communautés » est disponible dans Teams

vendredi 24 avril 2020 à 16:00

Microsoft lance une nouvelle application pour Teams : baptisée "Communities" ou "Communautés" dans la version française, elle correspond à une intégration de Yammer au sein de Teams.

L'objectif de cette application en comparaison d'une équipe Teams classique, c'est de créer des communautés afin de diffuser des informations et de partager des connaissances avec un nombre plus important de personnes. Ce nom lui va plutôt bien.

L'application "Communautés" permettra de diffuser des informations à l'échelle de l'entreprise, de créer des sondages ou des questions. Il sera possible de voir la portée et l'impact des différentes publications. En complément, il sera possible de créer des réunions de type "town hall" à l'Américaine : questions interactives, questions-réponses et vidéos seront au programme.

Dès à présent disponible, elle peut être ajoutée à votre client Teams et elle viendra s'épingler dans le menu de gauche, à la suite des autres icônes. Vous pouvez gérer cette application au niveau de votre entreprise à partir du panneau d'administration Teams.

Avec cette nouvelle application, cela montre que Microsoft compte toujours sur Yammer au sein de son écosystème, aux côtés de Teams, SharePoint et Outlook.

Source

Attribution des fréquences 5G : l’Arcep évoque des enchères à distance

vendredi 24 avril 2020 à 13:00

La procédure d'attribution des fréquences 5G était en cours avant l'arrivée de la crise sanitaire du Covid-19, et l'Arcep cherche actuellement à avancer sur le dossier. Des enchères à distance sont prévues pour que les opérateurs puissent s'offrir des licences 5G.

L'Arcep avait indiqué que les quatre candidats étaient recevables notamment car ils ont respecté le cahier des charges. Sans surprise, ces quatre opérateurs candidats sont : Free, Bouygues Télécom, Orange et SFR. Ils pourront chacun obtenir un bloc de 50 MHz sur la plage de fréquences de la 5G, le tout pour un montant de 350 millions d'euros.

En complément, il reste encore des blocs disponibles et ce sont ces blocs qui vont être proposés aux enchères. Pour être plus précis, il reste 11 blocs de 10 MHz au sein de la bande 3,4 ‑ 3,8 GHz.

Prévues initialement en avril, ces enchères à distance sont pour le moment en standby car ce n'est pas si simple en matière de logistique, d'après les autorités. Lorsque la visibilité sur la situation sanitaire sera plus claire, l'Arcep dévoilera un calendrier pour procéder, enfin, à ces fameuses enchères.

Pendant ce temps, un test de débit réalisé par Samsung atteint un nouveau record.

Et oui : Samsung continue d'atteindre des débits très élevés en 5G avec un nouveau record à 8,5 Gb/s sur la bande mmWave. Bien qu'il soit réalisé en conditions expérimentales, ce nouveau record montre le potentiel de ces fréquences. Grâce à l'utilisation de la technologie MU-MIMO et quelques ajustements de sa solution, Samsung est parvenu à atteindre une vitesse approximative de 4,3 Gb/s sur deux appareils différents.

Forcément le constructeur s'emballe un peu et évoque de nouveaux usages : le streaming vidéo 8K, l'apprentissage à distance en réalité augmentée ou encore la visioconférence enrichie par la réalité virtuelle.

💡 Le saviez-vous ? Orange réalise des tests 5G en partenariat avec Dell

Comment restaurer une équipe Teams supprimée ?

vendredi 24 avril 2020 à 09:21

I. Présentation

Etre propriétaire d'une équipe donne les autorisations pour gérer les membres et la configuration de cette même équipe. Cela donne aussi les droits pour supprimer l'équipe, ainsi que tout le contenu associé, notamment les canaux et les fichiers. Si une équipe est supprimée par erreur, ce sera probablement un problème pour vous... Mais fort heureusement, Microsoft offre la possibilité de restaurer une équipe Teams supprimée. Voyons comment procéder.

Récemment, nous avons vu comment restaurer un canal Teams, si cela vous intéresse :

📌 Restaurer un canal Teams

II. Restaurer une équipe Teams

Pour restaurer une équipe, il vous faut des droits d'administration sur le tenant Office 365 de votre entreprise. Commencez par vous connecter au centre d'administration Office 365. Cliquez sur Exchange dans la liste des centres d'administration, au sein du menu à gauche (tout en bas).

Le principe est le suivant : pour restaurer une équipe Teams, il faut restaurer son groupe Office 365 correspondant. Microsoft s'occupe du reste.

Lorsque vous êtes dans le Centre d'administration Exchange : cliquez sur "Destinataires" à gauche, puis sur "Groupes". Dans la zone de recherche, saisissez le nom de votre équipe. Elle devrait apparaître avec le statut "Supprimé" comme sur l'image ci-dessous.

Sélectionnez le groupe en cliquant dessus, et au sein du panneau à droite, cliquez sur le lien "Cliquez ici pour restaurer".

Il est à noter qu'il n'y a pas de versioning proposé par Microsoft, il s'agit d'une restauration de l'équipe dans son état lors de la suppression. Il n'est pas possible de sélectionner une date de restauration, ce n'est pas une sauvegarde en soit.

Lorsque vous demandez la restauration, une fenêtre de validation s'affiche, cliquez sur "Oui".

Dans le Centre d'administration Exchange, le groupe apparaît désormais avec le statut "Actif". Vous pouvez fermer cette page.

Votre équipe est restaurée ! Maintenant, il ne reste plus qu'à attendre ou pas : en fonction de la quantité de données à restaurer notamment, ce processus peut prendre plusieurs heures (24 heures) mais peut-être aussi que votre équipe est déjà opérationnelle. Pour le savoir, reste à regarder dans Teams directement 😉

Note : puisqu'il s'agit d'un groupe Office 365, vous disposez d'un délai de 30 jours pour le restaurer après sa suppression.

Le COVID-19 perturbe l’IA et le machine learning : l’exemple du pétrole

jeudi 23 avril 2020 à 14:00

La pandémie de COVID-19 a des répercussions conséquentes sur les importations et exportations de matières premières. Que ce soit au niveau des entreprises ou des marchés financiers, les intelligences artificielles et les modèles de machine learning utilisés doivent être adaptés afin de tenir compte de ce cas de force majeure.

Répercussions à la chaîne causées par la pandémie de COVID-19

Le secteur des matières premières est fortement impacté par le COVID-19. Le pétrole est probablement la commodity la plus touchée. En effet, la mobilité s’est fortement réduite au niveau mondial et la demande a donc diminué. Les importations et exportations de pétrole à l’échelle planétaire vont probablement drastiquement chuter en 2020.

La plupart des entreprises actives dans le secteur des transports utilisent des modèles prédictifs basés sur des intelligences artificielles (IA). Grâce à ces modèles, elles déterminent leurs besoins en pétrole à moyen et long terme et couvrent ainsi leur risque financier. De la même façon, les IA qui tradent des commodities à travers le monde utilisent également de tels modèles pour réaliser des arbitrages sur les marchés boursiers. Ces IA, bien qu’entraînées, n’ont pas les capacités de réagir de manière adaptée à un événement de l’ampleur du virus. Il importe dès lors que les spécialistes IT travaillent de concert avec les data scientists pour procéder aux ajustements nécessaires.

Deux approches : adapter ou communiquer

En fonction des entreprises, du budget et des secteurs impactés, le département IT peut adopter deux approches différentes. D’une part, il est possible de communiquer par rapport à l’impact de la pandémie sur les modèles à disposition. L’idée est d’informer le personnel ou les différents acteurs afin qu’ils puissent prendre le recul nécessaire vis-à-vis des modèles utilisés. Cette approche est plutôt défensive et ne doit être préconisée qu’en cas d’urgence. En effet, un retour « à la normale » est peu probable et les systèmes devront donc être adaptés tôt ou tard.

L’autre approche à privilégier est celle de la modification des modèles utilisés. Dans le cadre de modèles prédictifs, cela implique un réentraînement et des mises à jour de l’intelligence artificielle en prenant en compte des paramètres ajustés. Si l'on reprend l’exemple de la compagnie aérienne, on peut citer les éléments suivants : l’évolution du trafic aérien, les perspectives concernant le nombre de voyageurs, les modifications en matière de prix et d’offre de pétrole, l’évolution de la pandémie, les développements au niveau médical, etc. Un travail de recherche approfondi doit être effectué avec différents acteurs avant de réaliser les modifications. Il faut en effet s’assurer que les modèles soient ajustés au plus proche de la réalité.

Comment suivre l’évolution du COVID-19 ?

Pour évaluer les ajustements à réaliser sur les modèles prédictifs ou tout simplement sur certains éléments liés à l’entreprise, il est important de suivre l’évolution de la pandémie de coronavirus. À l’heure des fake news, de nombreuses informations circulent et il est parfois difficile de démêler le vrai du faux. Heureusement, il existe des cartes interactives qui permettent de suivre quotidiennement l’évolution du virus.

L’entreprise Google a rapidement mis en place une telle carte. D'autres outils existent qui peuvent être utilisés à tout moment. À titre d’exemple, le Financial Times met à disposition une carte interactive permettant de visualiser les évolutions à la hausse ou à la baisse des principaux indices financiers et des devises. C’est un excellent outil pour estimer le sentiment du marché général et l’état de l’économie mondiale. Les sources ne manquent donc pas et les spécialistes IT devront se montrer créatifs et travailler main dans la main avec les data scientists afin d’adapter les modèles utilisés dans l’entreprise. Une démarche proactive est indispensable.