DEVELOPPEMENT & SCRIPTING

Les évolutions sur le Web et le *Responsive Web Design permettent de s'orienter vers des portails ouverts, adaptatifs, avec des possibilités enrichies pour toutes les résolutions d'écrans. Les applications et les ressources accéssibles bénéficient d'une meilleur disponibilitée tout en préservant la sécurité de vos données. Chez la plupart des Editeurs d'Environnement de Développement Intégré" ou (IDE), les services du Cloud permettent l'accès à quantités de ressources et de services; bibliothèques de codes sources, modèles de gabarit, correction de codes, transferts, stockage, etc. *Le Responsive Web Design permet d'adapter le design d'une page à plusieurs tailles ou résolutions d'écrans. Il se fonde sur plusieurs technologies : le HTML, les CSS, le JScript (bibliothèque Media Queries, bootstrap). L'utilisation de JScript et de Java interprétés par le même moteur de rendu sur la plupart des navigateurs (sauf sur Firefox), offre aux visiteurs de nouvelles expériences et cela quel que soit le support de consultation, depuis qu'Adobe à abandonné Flash Player en décembre 2020.

Le Responsive Web Design indique l'ensemble de techniques et principes permettant d'adapter un design web à différentes tailles d'écran: de l'écran géant, formats TV au smartphone, en passant par les tablettes, les netbooks, etc. Adaptable aux résolutions d'écrans, il se fonde sur un 3 techniques : HTML, CSS, Media Queries avec gabarits et contenus fluides. Ceci afin d'offrir aux visiteurs la meilleure expérience possible quel que soit le support de consultation, quite à réorganiser la disposition des éléments comme par exemple passer de 4 colonnes sur grand écran à une seule colonne sur mobile le tout géré en JavaScript .

La mise en page n’est qu'un départ. Il faudra déterminer comment préserver l’accessibilitée des interfaces les plus complexes et comment transmettre nos ressources de manière optimale. Les sites Responsive Web Design doivent être conçus pour faire face à la réalité de la variabilité inhérente aux affichages actuels. Heureusement, être responsive du point de vue de la mise en page, de l’interactivité ou de l’accessibilité, n'empêche pas d’être également responsive du point de vue des performances.

Nous implémentons des solutions Open Source de gestion de contenus (CMS), e-Learning (LMS) e-commerce et Groupware sur Apache ou IIS. Nous utilisons les IDE (environnements intégrés de développement) tels que Dreamweaver, Eclipse, Visual Studio Code et Azure.

Prise en charge du HTML, PHP, JavaScript (Spry, AJAX pour Asynchronous JScript And XML).

La conception sur le Web évolue. Il est important de rester pertinent, voir même d'avoir de l'avance sur les tendances. Un site Web élégant est peut-être le moyen le plus rentable et le plus efficace de commercialiser votre entreprise. Par conséquent, vous devez commencer par préparer très en aval votre site, soit sur papier ou à l'aide d'un logiciel spécifique. Pensez à vous former (Video2brain par exemple) même si vos compétences sont suffisantes pour créer un site avec un "design élégant" et de préférence unique. Vous attirerez beaucoup plus de visiteurs si votre design ne se retrouve pas un peu partout sur la toile.

Quelques moyens de créer un site Web unique et attrayant

Créez un design simple unique et invitant. La page d'accueil d'un site Web regroupe habituellement une grande partie de l'information. C'est sur cette page que les visiteurs s'arrêtent par se faire un idée du contenu et de ce que vous proposez. Cela dit, Il doit répondre à  des questions importantes telles que, l'activité, ainsi que les services proposés. Profitez des titres et d'un contenu de préférence concis car ils attirent le regard et l'attention. C'est à  partir de ces titres et menus que les utilisateurs peuvent avoir une idée précise de ce que vous proposez. Pour résumer anticipez l'attrait de votre site en fournissant des informations, sans que les visiteurs soient obligés de lire toute la page. De plus, utilisez beaucoup d'espace blanc. Selon les études l'espace blanc est très important pour la compréhension e la lecture ainsi que pour créer un contraste avec d'autres éléments sur la page. Les experts constatent que si vous réduisez l'espace blanc des marges de la page, la compréhension de la lecture en "prend un coup". En définitif, vous pouvez améliorer l'utilisation de votre site Web en rendant les boutons attractifs donc utiles. Ne pensez pas que cela soit une tâche ardue ! En choississant un éditeur de site, vous bénéficierez d'un site formaté, simple à changer avec des CSS déjà implémentées. Sachez cependant que vous ne perdrez jamais trop de temps à bien concevoir l'aspect et les fonctionnalités de votre site.

Vous pouvez également utiliser les conseils suivants

Interaction

Un site qui comprend une interaction avec le visiteur est un site plus "captivant". En d'autres termes, le temps de visite sera plus long et profitable aux deux parties. Une interaction simple pourrait inclure la demande au visiteur de voter sur un sujet, des formulaire bien conçus, l'intégration de lien vers un plan pour vous localiser, l'implémentation d'un forum avec des sujets en rapport avec  votre coeur d'activité. Les vidéos "interactives" courtes sont un moyen intéressant de faire ressortir un site Web.

Un changement peut être visible dans les arrière-plans. Choisissez si vous le désirez différents arrières-plans (bien que cela ne soit pas systématique) décoratifs et de préférence avec des illustrations, mais pas trop chargées quand même. L'animation est un moyen d'ajouter une touche créative à  votre nouveau site.

RWDesign Lire sur le Responsive Web Design

 

Considérez les périphériques avec lesquels les visiteurs sont amenés à visiter votre site

Ordinateurs portables tablettes et téléphones mobiles devraint pouvoir accéder à  votre site. Par conséquent ne pas concevoir vos pages pour les grandes tailles de moniteur qui utilisent des fonctionnalités complexes telles que la navigation flash ou l'animation. Rappelez-vous le flash n'est pas pris en charge sur les périphériques Apple. Essayez de garder le design simple et propre afin que votre site soit optimisé pour tout types d'appareils

Accessibilité

Rappelez-vous que toutes sortes de personnes y compris celles qui souffrent de certains handicaps comme la cécité des couleurs voudront visiter votre site. Par conséquent concevez votre site Web afin que ces personnes puissent également connaître les services et les produits que vous proposez. Aussi considérez l'expérience de ces personnes avec des connexions Internet plus lentes. Les gens sont généralement impatients lorsqu'ils naviguent sur des sites Web. Un temps de chargement lent peut irriter tant les gens qu'ils ne veulent jamais acheter vos services ou produits ou souhaiter en savoir plus sur l'entreprise. Vérifiez régulièrement les performances du site en vérifiant la vitesse du site les temps de chargement ainsi que la continuité et le formatage avec des textes et des images.

Mise en page adaptative et media-queries

JQuery Succintement

Valider ses formulaires avec jquery

 

Les Frameworks JScript ou PHP

Ember, Prototype, Angular, React, VueJS et les Front end compatible responsive tels que Bootstrap, Foundation, Gumby, Skeleton… Lire sur codeur.com

Le framework mobile : jQuery Mobile

La première question que l'on pourrait se poser est : "à quoi bon mettre en place une version mobile de mon site ?". En effet, cela semble peu intéressant, quand on pense que les téléphones portables et autres plate-formes du genre n'ont pas pour utilité première de naviguer sur Internet. Grossière erreur !

La navigation sur mobiles est de plus en plus courante, à l'heure où les smartphones se développent et deviennent de plus en plus puissants. Actuellement, plus de 20 millions de français consultent le web depuis leurs téléphones portables. 1,472 milliard de terminaux livrés dans le monde. Il est donc primordial d'avoir des sites adaptés, pour prévenir la navigation mobile et surtout la rendre attrayante pour le visiteur, surtout quand on considère que 40% des internautes se dirigent vers un site concurrent après une mauvaise expérience sur smartphone. Cest ici qu'intervient jQuery Mobile.

Plateformes supportées par le framework JQuery

Le marché des smartphones est immense, on estime d'ailleurs le chiffre d'affaire total à plusieurs milliards de dollars. En conséquence, on trouve énormément de différentes sortes de téléphones, et chacun possède ses spécificités. Exemple : le célèbre iPhone possède son système d'exploitation attitré iOS, ainsi que son navigateur Les téléphones de Google tournent sur Android. Nous devons donc régler un soucis de compatibilitée, et nous assurer que notre site s'affiche correctement sur tous les navigateurs mobiles du marché.

Les principaux navigateurs mobiles sont les suivants : Opéra Mini, Safari, Firefox, Chrome, le navigateur d'Android.

Nous n'allons pas utiliser jQuery pour rien : le framework mobile intègre une compatibilité ahurissante des différentes plate-formes actuellement en vente.

•Apple iOS
•Android
•Windows Phone
•Blackberry
•...

Vous pouvez retrouver la liste complète des systèmes d'exploitation et des plate-forme supportées par jQuery Mobile sur cette page. Vous verrez d'ailleurs que trois groupes existent : Le premier définit les plate-formes parfaitement bien supportées ; le second, celles qui ne prennent pas en charge la navigation AJAX ; et le troisième, celles qui ne peuvent pas être dynamisées correctement. La liste est vraiment très courte pour le 3ème groupe. Cela montre bien qu'en utilisant ce framework, vous pourrez presque tout couvrir !

La preuve sociale...

Il est important que les éventuels acheteurs viennent vous faire confiance. Et peut-être la meilleure façon de le faire est d'utiliser des critiques et des témoignages de clients. Placez les témoignages à  côté du bouton "Acheter maintenant"; pour intégrer les éléments de persuasion. Les clients potentiels sont prudents surtout s'ils n'ont jamais traité avec vous auparavant. Par conséquent vous devriez faire tout leur possible pour gagner leur confiance. Permettre autant d'avis et de témoignages que possible. Avec ces conseils vous pouvez créer un site Web de haute qualité qui peut vous aider à  améliorer le taux de conversion de votre site.

Le référencement SEO

Lire l'article complet sur le référencement naturel ou SEO (Search Engine Optimization)

Guide pratique du référencement naturel SOE

Reussir son référencement Web

Pas de chute de webperf

Le SSL ne "plombe" pas nécessairement les performances et la rapidité d'affichage des pages d'un site...

D'après certaines légendes, le passage au HTTPS conduirait inévitablement à un ralentissement conséquent du site web, avec une inévitable chute de sa "webperf". C'est possible, mais ce n'est pas toujours vrai. "Je ne l'ai pas constaté", témoigne par exemple Fabrice Ducarme, qui affirme ne pas avoir vu baisser ses statistiques sur l'outil de mesure spécialisé de Pingdom.

Pas de réapparition des mots clés "not provided" dans Google Analytics

Une autre légende fait croire que migrer vers le SSL va permettre de récupérer les mots clés devenus "not provided" dans Google Analytics. C'est faux, même si c'est vrai que cela aurait normalement dû être le cas. En effet, le fameux referer, qui permet aux outils de web analytics d'indiquer la source d'une visite ne peut être connu quand le visiteur passe d'une page HTTPS à un page HTTP. Mais... pas s'il passe d'une page HTTPS à une autre page HTTPS ! Dans ce dernier cas de figure, le referer est bien transmis, et peut apparaître dans les outils de web analytics. C'est le cas lorsqu'une page de recherche en HTTPS de Bing envoie un internaute sur une page également HTTPS. De quoi motiver la migration vers SSL des sites présents aux Etats-Unis, où Bing a une part de marché plus conséquente qu'ici.

Il existe plusieurs types de certificats SSL

Mais, hélas pour les sites visant seulement la France, qui ne doivent composer qu'avec Google, le moteur de ce dernier a opté pour un fonctionnement différent et original. Il fait passer les visiteurs par une page intermédiaire, ce qui permet aux sites qui ont payé leur référencement via AdWords d'avoir toutes les statistiques, mais pas ceux naturellement référencés. Ces derniers n'auront que les mots clés "not provided". Seule petite consolation, Google leur indique tout de même si le trafic vient de son moteur, ce qu'il aurait pu ne pas faire, car normalement, ce trafic aurait dû normalement apparaître comme direct (c'est d'ailleurs le cas avec le trafic issu des recherches chiffrées dans Safari sur iOS par exemple). Sur ce sujet, tout est bien expliqué en détail, mais en anglais, dans un billet posté sur le blog de Yoast.

Pas d'installation et de certificat nécessairement hors de prix

Dernier mythe qui mérite d'être cassé, ou du moins relativiser : les prix des certificats SSL, et de leur installation, qui reviendraient toujours trop chers. Ce n'est pas forcément exact. Ce qui est vrai, c'est qu'il y a de nombreuses offres, avec des prix très variés... et pas toujours justifiés ou intéressants.

yoast

Le site de Yoast a opté pour un certificat de type "validation étendue", qui apparaît en vert dans la barre d'adresse... © Capture Yoast.com.

Il faut cependant avoir en tête les différences entre les offres. Il y a notamment plusieurs niveaux de sécurisation. Certains certificats peuvent être délivrés en un quart d'heure pour un site, d'autres nécessitent plusieurs jours, plusieurs documents et plusieurs examens. Les certificats SSL à Validation Etendue ("Extended Validation") sont les plus chers. Les sites qui les utilisent sont reconnaissables car la barre d'adresse des navigateurs affiche un vert différent, bien repérable, lorsqu'on les visite (voir l'exemple en capture ci-dessus avec Chrome). Ces certificats à Validation Etendue peuvent coûter plusieurs centaines de dollars par an, et évidemment, ce n'est pas un investissement rentable pour tous les sites.

Si les prix montent haut, ils peuvent aussi descendre assez bas. Pour son service d'hébergement, Fabrice Ducarme, qui est également connu pour son site Wpformation.com, a déboursé 9 dollars. Une somme qui lui permet de bénéficier d'un certificat pendant un an. Sans offrir une inutile sécurisation maximale, ce certificat Comodo répond au besoin, et offre un ROI intéressant. "Et encore, son prix a augmenté suite à l'annonce de Google d'accorder un bonus SEO. Ils ont été malins", remarque l'auteur du site Wpformation.com. C'est tout ce que cela lui a coûté : il a réalisé tout le déploiement tout seul, sur une installation WordPress/Apache, sur un serveur dédié donc (il détaille d'ailleurs sur son site toutes les manipulations techniques à réaliser, de manière très claire et très complète pour cette configuration assez classique).

Des failles de sécurité ont récemment affecté SSL. Ce prix n'est pas accessible à tout le monde. Par exemple, les sites hébergés sur un serveur mutualisé chez OVH doivent payer 50 euros HT par an pour utiliser le seul certificat SSL proposé (et installé) par OVH. Ils peuvent aussi changer d'hébergement et opter pour un serveur dédié, plus souple, plus performant, mais un peu plus cher. Evidemment, il existe encore beaucoup d'autres offres, à chercher et comparer du côté des regitrars ou des hébergeurs notamment.

Pas la fin des problèmes de sécurité Utiliser SSL va mieux protéger les communications entre un site et l'internaute, mais ne met nullement à l'abri de toutes les menaces de sécurité. Plusieurs failles concernant ce protocole SSL ont pu être exploitées ces dernières années, qu'il s'agisse d'exploits de chercheurs ou encore de pirates volant les certificats.

D'ailleurs, ironie du sort, les trois plus grosses failles de cette année 2014 auront toutes concerné ce protocole SSL, censé sécuriser les échanges. Il y a d'abord eu la faille à peine croyable "Goto fail" puis l'inquiétante "Heartbleed" et enfin récemment, la non moins redoutable "Poodle". Pour être sûr qu'un site avec SSL n'est pas exposé, la société spécialisée Qualys a mis en ligne un test gratuit assez efficace. Incontournable pour les sites ayant mis en place SSL, récemment... ou pas.

 

Différences entre site statique et dynamique

Static vs dynamic

A gauche en gris l'exemple type du site statique et à droite en beige un exemple de site dynamique avec une base de données (SQL, MySQL, Oracle...) permettant la gestion du contenu des pages comme c'est le cas pour les CMS, Forums, Wiki, ou bien d'autres applications telles que les Worflow, groupware ou plate-formes collaborative, intranet, etc.

Web services SOAP Explication rapide de Web-Services avec SOAP et exemple en PHP

 

Débuter avec Visual studio

Plugin de validation en JQuery

Tour d'horizon d'Azure, par service

Passer au HTTPS ne va pas propulser automatiquement les pages d'un site en tête des résultats remontés par Google. Le moteur a certes annoncé une petite prime, mais ce bonus a clairement été présenté comme mimine. De plus, un mois après l'annonce de Google, une étude n'avait relevé aucun changement SEO sur les pages passées en SSL, sur des centaines de milliers de requêtes observées et analysées en détails. Même si cette étude mériterait d'être actualisée, il serait de toute manière pour le moins inattendu que Google accorde subitement un poids SEO majeur aux certificats SSL. D'autres raisons peuvent motiver le passage au HTTPS, et bien mieux justifier le ROI d'une migration. "Lorsque je l'ai déployé, les beta testeurs de mon service d'hébergement ont applaudi. Le SSL sécurise un site, et je pense que cela peut mettre en confiance les clients comme les prospects", explique Fabrice Ducarme, webmaster expérimenté et formateur WordPress, qui l'a déployé pour son site WPServeur.net - qui proposera en janvier prochain des services d'hébergement de sites WordPress. Selon lui, si cette approbation des clients constitue déjà un retour sur investissement à considérer, "le gain SEO du passage en HTTPS reste à prouver".

 

SURVOL DE POWERSHELL

Introduction et fonctionnalités

 

INTERPRETEUR DE COMMANDES POWERSHELL

Petit résumé des interpréteurs de commandes DOS et Powershell

 

Voir aussi un incontournable PowerShell

 

Voir les infos sur PowerShell

Nous intégrons les outils de gestion, groupware, worflow pour postes clients avec leurs applicatifs via Microsoft System Center Operation Manager et System Center Configuration manager.

Windows PowerShell est l'environnement de script créé par Microsoft. Il est conçu pour fournir une solution Open source unifiée de script et d'automatisation Windows. Capable d'accéder à une large gamme de technologies telles que .NET, COM et WMI grâce à ses interfaces. Depuis sa sortie en 2006, PowerShell est devenu le composant de toute solution de gestion basée sur le .NET Framework permettant le support aux scripts et à l'automation. Intégré depuis XP et Win7 en option, puis nativement sur Windows 10. Cette interface en ligne de commandes ou CLI ressemble étrangement aux commandes Shell d'Unix. Il facilite la gestion des postes clients sur des parcs de moyenne et grande tailles sans avoir à implémenter un logiciel distribué de gestion de postes avec Java. L'utilisation de tâches, l'installation de logiciels les mises à jour ou l'accès aux postes à distance d'une même structure en fait un outil d'administration incontournable. Il convient cependant de signer les connexions entre la console du poste principal d'administrateur PowerShell et les postes clients. En tant qu'utilisateur personnel, sur votre PC l'accès à Powershell est restreint ou "Restricted" sur Windows 7 par défaut, ce qui n'est pas le cas sur Windows 10.

Versions de PowerShell et Systèmes d'exploitations

Vérifiez votre version de Powershell (sur n'importe quels systèmes; Win7, 8, 8.1, 10 ou serveurs 2K3-2008-12-16-19)

Ouvrez Powershell en mode Administrateur et entrez "Get-host"
PS C:\Windows\system32> Get-Host
Name: Windows PowerShell ISE Host
Version: 5.0.10586.117
InstanceId: 0d39bb7-534e-48fa-a505-90ff8df25ba5
UI: System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture: fr-FR
CurrentUICulture: fr-FR
PrivateData: Microsoft.PowerShell.Host.ISE.ISEOptions
DebuggerEnabled: True
IsRunspacePushed: False
Runspace: System.Management.Automation.Runspaces.LocalRunspace

Si vous avez une version de Windows inférieure à Windows 10 => Voici une procédure de l'université de Genève pour mettre à jour Powershell 5.0 sur Windows 7.

Relations entre commandes PowerShell, batch MS-DOS et bach UNIX


LoupeCliquez pour agrandir

Flèches Haut et Bas --> déplace le curseur de gaucheà droite, de Haut en bas.
Flèches Gauche et Droite --> Parcours la liste des dernières cmdes saisies.
MaJ --> Bascule en mode Insert et Replace.
Supp --> Supp le caractère de la position courante du curseur.
Espace Arr --> Supprime le caractère juste avant la position courante du curseur.
F2 --> Affiche l'hsitorique des dernières commandes.
TaB --> Complète automatiquement les éléments de la ligne de cmdes (Autocomplétion)

 

POUR LE SERVICE SERVEURS AVEC POWERSHELL (5.0 ou 7.1)

Vérifier avec Powershell la version de SMB Serveur (Small Message Bloc)

Set-SMBServerConfiguration

Désactive avec PowerShell SMBv1 sur serveur:

Set-SmbServerConfiguration -EnableSMB1Protocol $false

Activez avec PowerShell le SMBv2 dur serveur:

Set-SmbServerConfiguration -EnableSMB2Protocol $true

Pour Windows 7, 8, Windows Server 2008 et R2.

Pour activer ou désactiver les protocoles SMB sur un serveur qui exécute le client Windows 7, 8, ou les versions Serveur 2008 et R2. Lire la procédure: Detecter, activer ou désactiver smbv1-v2-v3

Avec PowerShell sur Windows 7 utilisez "Get-Item" et "Set-ItemProperty" pour LanmanServer

Identifier la version du protocole SMB avec PowerShell sur Seven

Get-Item HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters | ForEach-Object {Get-ItemProperty $_.pspath}

Ce qui donne:


LoupeCliquez pour agrandir

Configuration de SMBv2 est activée (Clé de Registre a une valeur à 1), comme Restrictnullsessaccess. Si aucune correspondance de SMBv1 n’est retournée c'est qu'il n'est plus le protocole d'échange donc non actif voir désinstallé.

Désactiver SMBv1 avec PowerShell sur Seven

Activer SMBv2 sur un serveur de partage SMB avec PowerShell

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB2 -Type DWORD -Value 1 –Force

Vous devrez redémarrer l’ordinateur après avoir apporté des modifications au registre. Pour plus d’informations, consultez stockage serveur chez Microsoft.

Vérifier sur Windows 10 en tant que serveur de partages et d'imprimantes

Get-SmbServerConfiguration | Select EnableSMB2Protocol
le résultat:
EnableSMB2Protocol
=================
TRUE

 

LES POLITIQUES DE RESTRICTION D'EXECUTION DES SCRIPTS

Restriction d'exécution du Shell par défaut sur Windows 7 8.1 10
Sur Windows 7 pro SP1
PS> C:\Users\Administrator>Get-ExecutionPolicy
Restricted

Microsoft Windows 10 Famille
Version du systŠme: 10.0.19042 N/A build 19042

PS C:\WINDOWS>Get-ExecutionPolicy
Restricted

Pour améliorer le CLI ou Interface en Ligne de Commandes, PowerShell vous permet de créer et de lancer des scripts système avancés. Par défaut, les scripts PowerShell sont automatiquement bloqués à partir de Windows XP. D'une part, les scripts sont éxécutés par le compte Administrateur local et d'autre part, vous devez autoriser l'exécution signée des scripts avant d'utiliser l'ISE (Integrated Scripting Environment) ou le mode ligne de commandes pur. Voir section plus bas pour PowerShell Remoting.

Cliquez avec le bouton droit de la souris sur Windows PowerShell puis cliquez sur Exécuter "en tant qu'Administrateur".

Dans la fenêtre qui s'ouvre, saisissez:
PS>Set-ExecutionPolicy RemoteSigned
puis validez par Entrée.

Appuyer sur Entrer pour Valider

Appuyez sur [ O ] pour valider l'exécution de scripts PowerShell locaux.

Après avoir validé, entrez la commande "Get-ExecutionPolicy" pour vérifier que les scripts locaux remote seront bien signés automtiquement.

Conseil: Si vous utilisez les stratégies d’exécution, contrôlez-les via les stratégies de groupe. Celles-ci sont toujours situées au-dessus des autorisations locales et sont donc plus puissantes dans la lutte contre les exécutions indésirables. Vérifiez les stratégies définies avec «Get-ExecutionPolicy -list». Si les paramètres sont définis sur RemoteSigned, cela signifie que les scripts locaux sont toujours exécutés, mais les scripts téléchargés pourront être exécutés s'ils comportant une certificat et une signature. Si le script lui-même est maintenant simplement défini sur «débloqué» et mis à disposition localement, l’obstacle est déjà surmonté.

Signification des politiques d'exécution:

- AllSigned: les scripts peuvent être exécutés mais ils doivent être obligatoirement signés avec un certificat.
- Bypass: Pas de restrictions; tous les scripts Windows PowerShell peuvent être exécutés.
- Default : Normalement RemoteSigned , mais est contrôlé via ActiveDirectory
- RemoteSigned: les scripts créés en local n’ont pas besoin de signature
- Restricted : aucun script ne peut être exécuté, seules les cmdlets sont autorisées en mode interactif.
- Unrestricted : les scripts n’ont pas besoin d’être signés, qu’ils proviennent du poste local ou d’Internet
- Undefined : supprime la stratégie d’exécution appliquée localement sauf si elle est définie par une stratégie de groupe.
- Default : re applique la stratégie par défaut.

Résumer

• Restricted : aucun script ne peut être exécuté, seules les cmdlets sont autorisées.

• AllSigned : les scripts peuvent être exécutés mais ils doivent être obligatoirement signés avec un certificat.

• RemoteSigned : les scripts créés en local n’ont pas besoin de signature. A distance Leur exécution nécessite un certificat.

• Unrestricted : les scripts n’ont pas besoin d’être signés, qu’ils proviennent du poste local ou d’Internet.

Fixer la stratégie d’exécution sur Undefined revient à accepter l’exécution d’un code malveillant sur le système malgré un avertissement. Étant donné le risque, la stratégie d’exécution doit au moins être fixée avec une sécurité pour les scripts distants. Définis sur RemoteSigned pour un groupe de travail, signifie que vous travaillez localement sur des PC's d'un même groupe qui n'impose pas d'autorité de certification. AllSigned nécessite d'établir un chiffrement entre tous les PC comme c'est la cas avec Active Directory. Cette configuration autorise l’exécution des scripts et le chargement de modules et fichiers de configuration localement sur la machine, mais ils doivent être signés numériquement. Tout code non signé générera une alerte.

Stratégie Restricted-Unrestricted Comme son nom le suggère, les stratégies d’exécution Restricted et Unrestricted, appliquent soit totalement la restriction d'exécution des scripts même pour les cmdlets d'une machine locale ou bien retirent toutes les restrictions d’exécution des scripts ou du chargement des modules. Tous les scripts signés peuvent en revanche être exécutés ou les modules téléchargés, mais PowerShell vous demandera toujours de choisir ce que vous voulez faire :

Si vous n'avez en aucun cas l'intention de vous en servir de PowerShell je vous conseille fortement de mettre les stratégies d'exécution sur "Restricted".

PS>Set-ExecutionPolicy -Scope "LocalMachine" -ExecutionPolicy "Restricted" -force

Vérifiez si la stratégie a bien été appliquée.
PS> Get-ExecutionPolicy -list
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser Undefined
LocalMachine Restricted ou Remote Signed

Si vous appliquez une restriction complète, comme çi-dessus aucun script ne pourra s'éxecuter.

Sinon, une chose moins radical est de mettre les stratégies sur "AllSigned" ou "RemoteSigned" en choisissant les portées spécifiques; "CurrentUser" sur AllSigned et "LocalMachine" sur RemoteSigned (Utilisateur courant et Machine locale)

Pour cela Ouvrez l'invite de commande MS-DOS (Executer puis cmd en mode Administrateur) puis entrer au prompt "Powershell" : comme ci-dessous

Appliquez la stratégie d'exécution de LocalMachine sur "Restricted" si vous n'avez aucun besoin de vous servir de Powershell sur Windows.

En revanche si vous êtes interressé par Powershell et que vous comptez l'utiliser, la stratégie d’exécution sur "AllSigned" ou "RemoteSigned" permettra d'accroître la sécurité avec un certificat. Tous les scripts et-ou modules que vous voulez ajouter à votre bibiothèque devront être signés par une source de confiance avant de pouvoir être exécutés ou chargés dans le répertoire lié à votre profil. Vous pouvez dès lorsqu'ils s'ils sont suivis d'un certificat avec signature numérique, télécharger à partir de sources de confiance n'importe quels types de scripts pour les utiliser.

Un avertissement devra vous indiquer comme ci-dessous que vous ne devez pas accepter les scripts non approuvés sans une signature et certificat numérique:

PS C:\Scripts> .\ScriptDistant.ps1
Avertissement de sécurité
N’exécutez que des scripts que vous approuvez. Bien que les scripts en
provenance d’Internet puissent être utiles, ce script est susceptible
d’endommager votre ordinateur. Voulez-vous exécuter
C:\Scripts\ScriptDistant.ps1 ?
[N] Ne pas exécuter [O] Exécuter une fois [S] Suspendre [?] Aide

REMETTRE LES RESTRICTIONS PAR DEFAUT:

PS> Set-executionpolicy -scope "LocalMachine" -ExecutionPolicy "Undefigned" -force
Ou
PS>Set-ExecutionPolicy -Scope "Currentuser" -ExecutionPolicy "Undefigned" -force

La stratégie d'exécution permet de vous prémunir contre les scripts que Microsoft juge non fiables. En modifiant la stratégie d'exécution, vous exposez votre machine aux risques de sécurité décrits dans la rubrique d'aide about_Execution_Policies.

La question vous sera posée:

Voulez-vous modifier la stratégie d'exécution ? [O] Oui [N] Non [S] Suspendre [?] Aide (la valeur par défaut est « O »)
Une fois que vous avez répondu par OUI

Vérifiez les restrictions de votre compte courant et à la machine locale:
"CurrentUser" = Utilisateur courant - Machine locale = "LocalMachine"

Appliquez les stratégies définies avec Set-ExecutionPolicy et le paramètre -scope pour choisir la porté de la stratégie d'exécution sur : CurrentUser et LocalMachine

PS>Set-ExecutionPolicy -Scope "CurrentUser" -ExecutionPolicy "AllSigned" -force
PS>Set-ExecutionPolicy -Scope "LocalMachine" -ExecutionPolicy "AllSigned" -force

Stratégie à établir pour sécuriser CurrentUser et localMachine:

PS>Get-ExecutionPolicy -List
Scope ExecutionPolicy
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser AllSigned
LocalMachine AllSigned

Le respect des conseils et la maîtrise du processus de signature du code sont essentiels à la protection de l’environnement PowerShell. La convention pour des stratégies d'éxecution de scripts veut que l'exécution des modules et scripts lancés à distance s'éxécutent avec une signature numérique voir un certificat. (lire plus bas "Exécution de PowerShell sur PC distants")

 

PROFIL POWERSHELL

PS> C:\Windows\system32> $profile ou PS C:\Windows\system32> $Host
PS> $PROFILE | Format-List -Force

AllUsersAllHosts :
C:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1

AllUsersCurrentHost :
C:\Windows\System32\WindowsPowerShell\v1.0\Microsoft.PowerShell_profile.ps1

CurrentUserAllHosts :
C:\Users\CPC\Documents\WindowsPowerShell\profile.ps1

CurrentUserCurrentHost :
C:\Users\CPC\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 Length : 77

PS> $PROFILE.AllUsersAllHosts
C:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1


LoupeCliquez pour agrandir

Test-Path $PROFILE
Si la réponse est True laisser votre profil crée, en revanche si la valeur est False vous devrez créer votre profil manuellement
PS C:\Users\Administrator> Test-Path $PROFILE
True

La réponse "True" veut dire que votre profil est bien crée.

Sinon sur Windows 7 entrez la commande suivante :
PS>New-Item -Path $profile -ItemType file -force

Ce qui donne

Directory: C:\Users\Administrator\Documents\WindowsPowerShell

Une fois le profil crée redémarrer PowerShell puis entrez:
PS>C:\Users\Administrator> PWD
Path
C:\Users\Administrator

Un profil PowerShell est utilisé pour charger automatiquement les variables et les fonctions définies par l'utilisateur. Les profils PowerShell ne sont pas automatiquement créés pour les utilisateurs.

Pour créer un profil PowerShell

PS>New-Item -ItemType File $profile

Si vous êtes dans ISE, vous pouvez la cmdlet et la variable
PS:>psEdit $profile

Un moyen simple de commencer avec votre profil personnel pour l'hôte actuel consiste à enregistrer du texte dans le chemin d'accès stocké dans la variable $profile.
"CurrentHost, CurrentUser" > $profile

Toute modification ultérieure du profil peut être effectuée à l'aide de PowerShell ISE, du bloc-notes, du code Visual Studio ou de tout autre éditeur.

La variable $profile renvoie le profil utilisateur actuel par défaut de l'hôte actuel, mais vous pouvez accéder au chemin d'accès à la règle machine (tous les utilisateurs) et / ou au profil de tous les hôtes (console, ISE, tiers) en utilisant c'est des propriétés.

PS C:\> $profile
C:\Users\Administrator\Documents\WindowsPowerShell\
Microsoft.PowerShellISE_profile.ps1

 

METTRE A JOUR - AJOUTER DES PACKAGES

- Vous pouvez mettre à jour votre version avec la KB3191566-x32ou x64 pour Windows 7 et server 2008 Release 2. Ce module de mise à jour s'appelle "Windows Management Framework 5.1 pour Windows 7 et Windows Server 2008 R2" Si vous voulez le chercher vous même sur Internet entrez dans le champ de recherche de votre moteur habituel : "télécharger Windows Management Framework 5.1 pour Windows 7 et Windows Server 2008 R2"

- Ou exécuter le script signé "Install-WMF5.1.ps1" à l'aide du GUI de ISE:


LoupeCliquez pour agrandir

Mise à jour de votre version et des packages à l'aide des cmdlet:

Get-help
Update-Help
Get-Help About_Modules
Get-Help update
Get-Help Update-Help -Online

Exemple pour mettre Powershell à jour:


LoupeCliquez pour agrandir

Si vous possédez Windows 7 et après avoir activé les politiques d'exécution vous pouvez utiliser la commande suivante pour mettre à jour vos modules:

Il arrive que Powershell (Version 1 sur Win7) n'approuve pas les Mises à Jour de cette manière. Ce qui est une bonne chose en soit, car rien ne vous assure que vous soyez sur un site sécurisé en https ou que si un certificat existe, il ne soit plus valide dans le temps. Vous devrez auparavant vous en assurer. Faites vos mises à jour sur des sites proposant une signature valide comme Microsoft ou GitHub. Auquel cas un message comme ci-dessous apparaîtra pour vous mettre en garde:

Editeur non approuvéLoupeCliquez pour agrandir

Pour mettre à jour les packages et votre version si vous n'avez pas encore Windows 10 vous pouvez opter pour la cmdlet "Update-help":

Vérifier votre version avec $PSVersionTable

Vous serez peut être invité à installer le package "NuGet pour PowerShell"



LoupeCliquez pour agrandir

Puis répondez de préference "No" tant que la mise à jour de vos modules comme "NuGet" ne se trouve pas sur une page sécurisée avec un certificat.

Pour ajouter un module venant d'un site internet non sécurisé, de Microsoft, ou que vous avez téléchargé, suivez les étapes suivantes:

Vous avez téléchargé le module à partir du site non sécurisé:
http://technet.microsoft.com/fr-FR/scriptcenter/dd742419.aspx

Suivez les étapes :

1- Retrouver vos modules en saisissant la commande: dir env:PSModulePath

Le résultat donne cela :
PSModulePath
Puis

2- Copier les modules des répertoires identifiés plus haut, et importer les dans sous-répertoire créé avec le nom de la commande comme par exemple:
"D:\Mes documents\Windowspowershell\Modules"

3- Importez le module à l'aide de la cmdlet import-module:
PS>C:\WINDOWS\system32\WindowsPowerShell\v1.0>import-module .\Modules

4 - Pour vérifier que le module est bien actif entrez la commande
PS>get-module Modules

import module

PS C:\Users> Get-Module
Module Type Version Name Exported Commands
Script 1.0.0.0 ISE {Get-IseSnippet, Import-IseSnippet, New-IseSnippet}

On peut voir les informations "Manifest 3.1.0.0" qui sont des fichiers XML et doivent être correctement formés et valides: ils doivent respecter les règles de syntaxe XML et utiliser uniquement les éléments et les attributs définis dans le schéma XML approprié. Ils peuvent générer des erreurs si les attributs ne correspondent pas au schéma XML

Manifest 3.1.0.0 Microsoft. PowerShell.Management {Add-Computer, Add-Content, Checkpoint-Computer, Clear-Content...}
Manifest 3.1.0.0 Microsoft. PowerShell.Utility {Add-Member, Add-Type, Clear-Variable, Compare-Object...}

1- dir env:psmodulepath
Ou encore avec un pipeline de sortie texte:
dir env:psmodulepath | Out-File .\Documents\Logfile\modules.txt

2- PS C:\Users> dir Env:\PSModulePath
Name Value

PSModulePath C:\Users\Documents\WindowsPowerShell\Modules;C:\Program Files\WindowsPowerShell\Modules;C:\Windows\system32\WindowsPowerShell\v1...

3- Importez les modules qui se trouvent dans C:\Program Files\WindowsPowerShell\Modules

ou

C:\Windows\system32\WindowsPowerShell\v1...:

PS>C:\Windows\System32\WindowsPowerShell\v1.0> import-module "Nom du module"

4- Pour tester ensuite, il faut saisir la commande "Get-module".
Vous pouvez le listez ainsi : Get-module "Nom du module"

 

QU'ELLE VERSION UTILISEZ-VOUS ?

Tout d'abord il faut connaitre la version que vous utilisez:
PS>$PSVersionTable
Donne le résulat avec la PSVersion ici 5.1.

Name Value
PSVersion 5.1.14409.1018
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.14409.1018
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1

 

FLUX DE SORTIE DE RESULTAT OU DE REDIRECTION

Dans PowerShell, il existe plusieurs manières d'obtenir le même résultat. Ceci peut être bien
illustré avec l'exemple simple et familier de Hello World :

Utilisation de Write-Host :
Write-Host "Hello World"

Utilisation de Write-Output :
Write-Output 'Hello world'

Il est à noter que bien que Write-Output & Write-Host écrivent tous deux sur l'écran, il y a une différence notable. Write-Host écrit uniquement dans "stdout" sortie d'affichage sur l'écran de la console, alors que Write-Output écrit à la fois sur stdout et sur le flux de sortie [success] permettant une redirection. La redirection (et les flux en général) permet de diriger la sortie d'une commande en entrée vers une autre, y compris pour l'affectation à une variable.

PS> $message = Write-Output "Hello World"
$message
"Hello World"

 

DIFFERENCES PAR RAPPORT A L'OPERATEUR DE PIPELINE ( | )

Les opérateurs de redirection redirigent uniquement les flux vers des fichiers ou des flux vers d'autres flux. L'opérateur de canalisation ou pipeline achemine un objet dans le pipeline vers une applet de commande puis vers une sortie. Le fonctionnement du pipeline diffère en général du fonctionnement de la redirection et peut être lu, lors de l'utilisation du pipeline par PS

Sortie d'écriture

Write-Output génère une sortie. Cette sortie peut aller à la commande suivante après le pipeline ou être simplement affichée.

La cmdlet envoie des objets dans le pipeline principal, également appelé "flux de sortie" ou "pipeline de réussite". Pour envoyer des objets d'erreur dans le pipeline d'erreurs, utilisez Write- Error.

1.) Output pour la prochaine Cmdlet du pipeline

2.) Sortie avant Write-Output si celle-ci est la dernière commande du pipeline

3.) Write-Output CmdLet manquante, le flux reste le même

1. La cmdlet Write-Output envoie l'objet spécifié dans le pipeline vers la commande suivante.
2. Si la commande est la dernière commande du pipeline, l'objet est affiché dans la console.
3. L'interpréteur PowerShell considère cela comme une écriture en sortie implicite.
Étant donné que le comportement par défaut de Write-Output consiste à afficher les objets à la fin d'un pipeline, il n'est généralement pas nécessaire d'utiliser la cmdlet.

Exemple:
PS>Get-Process | Write-Output est équivalent à Get-Process

 

OPERATEUR DE REDIRECTION

Flux de sortie ou de résultat:

Cmdlet >file Envoie avec succes le résultat vers un fichier "file" en écrasant le contenu existant
Cmdlet >>file Envoie avec succes le résultat vers un fichier "file" en ajoutant à l'existant

Ici si l'on entre "globalement" Get-process avec une redirection et le résultat, on retrouvera dans "Services.txt" le ProcessName, les Handles, ID, CPU, etc.

La cmdlet "Get-process" provoque une redirection dans un fichier > C:\process.txt ou encore à l'aide de "Pipeline" | puis de "Out-File" avec ou sans filtres. Cela donnera le même résultat dans le fichier "process.txt"

Vérifiez vos processus avec PowerShell:

PS>get-nettcpconnection | select local*,remote*,state,@{Name="Process";Expression={(Get-Process -Id $_.OwningProcess).ProcessName}} | sort-object -property LocalPort | format-table

 

VERIFICATION DES PROCESSUS AVEC UN PIPELINE EN OPERTATEUR DE RESULTAT ET OUT-FILE

Donne le résultat sur l'interface de ligne de commande Powershell

Avec une redirection, le pipeline suivi de Out-file, le résultat est le même mais dans le fichier texte "Mesprocess.txt"

Tri des process ProcessName et Handlecount

Ou écrit avec > pour flux de sortie ou résultat vers Mesprocess.txt

On retrouve de la même manière le trie des "ProcessName" et "HandleCount" après les Pipelines dans le fichier de résultat "Mesprocess.txt"

redirection vers log des processus

Opérateur de redirection ou pipeline avec ou sans Write-Output inscrivent le résultat sur la console en plus d'un flux de sortie permettant une redirection ou sortie Out-File:

Pour rediriger une sortie de résultat dans la CLI et ajouter un fichier, utilisez -Append (Ajouter) de l'Applet de commande Out-File, permettra l'ajout du fichier texte "myfiles.txt" dans la liste des fichiers:
Get-ChildItem | Out-File -Append myfiles.txt

Ajout avec -Append du fichier "myfiles.txt" au répertoire:
Directory: C:\Users\Administrateur
Mode LastWriteTime Length Name
-----------------------------------------
d----- 10/03/2020 03:47 .ebookreader
d----- 14/01/2020 08:25 .swt
d----- 14/03/2020 04:50 .VirtualBox
d-r--- 04/01/2020 14:01 Contacts
d-r--- 27/03/2020 14:31 Desktop
d----- 19/03/2020 19:04 Documents
d-r--- 28/03/2020 03:23 Downloads
d-r--- 04/01/2020 14:01 Favorites
d-r--- 23/03/2020 07:50 Links
d-r--- 22/01/2020 02:21 Music
d----- 17/12/2019 18:50 OpenVPN
d-r--- 27/03/2020 13:46 Pictures
d-r--- 04/01/2020 14:01 Saved Games
d-r--- 04/01/2020 14:01 Searches
d----- 17/12/2019 22:14 UrbanVPN
d-r--- 29/02/2020 01:23 Videos
d----- 14/03/2020 04:49 VirtualBox
-a---- 28/03/2020 03:43 0 files.txt

>Redirection du flux de résultats dans le fichier "myfiles.txt":
Get-ChildItem >myfiles.txt

Exemple de la cmdlet avec Export
Get-EventLog System | Export-Csv C:\temp\Eventsys.log

Utilisation du pipeline permettant de canaliser la sortie d'une applet de commande dans une boucle foreach:
PS>Get-ChildItem | ForEach-Object
{
Copy-Item -Path $_.FullName -destination C:\NewDirectory\
}

Write-Output génère une redirection soit vers l'affichage du résultat ou peut aller à la commande suivante. La redirection envoi les objets spécifiés à la commande suivante dans le pipeline.

Exemple avec: Write-Output "test output" | Get-Member

Il existe un script "Windows Update PowerShell Module" [ téléchargable ici ] pour déployer des logiciels et systèmes via ' WSUS' (Windows Server Update Services) ou SCCM (System Center Configuration Manager).

 

SORTIR DE L'INTERFACE DU CLI

 

CONNAITRE L'ETAT DES SERVICES

Si vous chercher un service commençant par S ou par son nom, cela est également possible via un filtre : ex pour les services commencant par U comme UrbanVPNServiceInteractive

OU

1-Cela donne le résultat sur la fenêtre du terminal ou l'écran de la console ISE
Status Name DisplayName
Running UrbanVPNService... UrbanVPNServiceInteractive

2- Ou soit via le Pipeline de sortie dans un fichier.txt
On accède au même résultat mais le 2ème est redirigé dans un fichier sur le bureau dans le fichier
Service.txt: '.\Desktop\service.txt'

Lister tous les services démarrés et arrêtés
PS>Get-Service | Out-File C:\Services.txt

C:\Services.txt s'affiche comme ci-dessus éditable dans un logiciel comme Notepad++

Lister les Services "Running ou Stopped" avec le Pipeine et Out-File comme flux de redirection et de sortie ou résultat:

Services Stop avec la cmdlet Get-service
Get-Service | Where-Object { $_.status -eq "stopped" } | Out-File C:\svcstop.txt

Services Start
Get-Service | Where-Object { $_.status -eq "running" } | Out-File C:\svcstart.txt

Rédémarrer un service :
PS>Restart-Service "Nom du service" -force
Vous pouvez utiliser
PS>start-service "Nom du service" -force
ou
stop-service "Nom du service"

 

EXECUTER POWERSHELL SUR PC DISTANT

Afin de maintenir, déployer, monitorer des machines sur parcs avec AD vous devez avant tout télécharger le module "WinRM" pour les fonctionnalités d'arrière-plan.

PowerShell Remoting vous permet d'exécuter des commandes PowerShell ou d'accéder à des sessions PowerShell complètes sur des systèmes Windows distants. Il est similaire à SSH pour accéder aux terminaux distants sur d'autres systèmes d'exploitation. PowerShell est verrouillé par défaut, vous devrez donc activer PowerShell Remoting avant de l'utiliser. Ce processus de configuration est un peu plus complexe si vous utilisez un groupe de travail au lieu d'un domaine, par exemple sur un réseau domestique.

Activer-désactiver PSRemoting sur le PC auquel vous souhaitez accéder à distance

Votre première étape consiste à activer PowerShell Remoting sur le PC auquel vous souhaitez établir des connexions à distance. Sur ce PC, vous devrez ouvrir PowerShell avec des privilèges administratifs. Dans Windows 10, appuyez sur Windows + X, puis choisissez PowerShell (Admin) dans le menu Power User mais sachez que PSRemoting est désativé par défaut.

Dans la fenêtre PowerShell, tapez l'applet de commande suivante, puis appuyez sur Entrée:

Enable-PSRemoting -Force

Cette commande démarre le service WinRM, le configure pour qu'il démarre automatiquement avec votre système et crée une règle de pare-feu qui autorise les connexions entrantes. Le  -Force indique à PowerShell d'effectuer ces actions sans vous inviter à chaque étape.

Vous pouvez aussi désactiver PSRemoting si vous n'en avez pas l'utilité, ou par sécurité ce que je vous conseille de faire si vous êtes encore sous Win 7.

Si vos PC font partie d'un domaine, c'est toute la configuration que vous devez faire. Vous pouvez passer à l'étape suivante pour tester votre connexion. Si vos ordinateurs font partie d'un groupe de travail - qu'ils sont probablement sur un réseau domestique ou de petite entreprise - vous avez un peu plus de travail de configuration à faire.

Remarque: votre réussite dans la configuration de l'accès à distance dans un environnement de domaine dépend entièrement de la configuration de votre réseau. La communication à distance peut être désactivée, ou activée, automatiquement par une stratégie de groupe configurée par un administrateur. Vous pourriez également ne pas avoir les autorisations dont vous avez besoin pour exécuter PowerShell en tant qu'administrateur. Comme toujours, consultez vos administrateurs avant d'essayer quelque chose comme ça. Ils pourraient avoir de bonnes raisons de ne pas autoriser la pratique, ou ils pourraient être disposés à l'installer pour vous.

Configurer votre groupe de travail

Si vos ordinateurs ne sont pas sur un domaine, vous devez effectuer quelques étapes supplémentaires pour configurer les choses. Vous devriez déjà avoir activé Remoting sur le PC auquel vous souhaitez vous connecter, comme nous l'avons décrit dans la section précédente.

Quelle est la différence entre les réseaux privés et publics sous Windows ?

Remarque: Pour que PowerShell Remoting fonctionne dans un environnement de groupe de travail, vous devez configurer votre réseau en tant que réseau privé et non public. 
Pour en savoir plus lire: différence entre réseau privé, domestique ou public.

Ensuite, vous devez configurer le paramètre TrustedHosts sur le PC auquel vous souhaitez vous connecter  et   le PC (ou les PC) à partir duquel vous souhaitez  vous connecter, afin que les ordinateurs se fassent mutuellement confiance. Vous pouvez le faire de deux manières. Si vous êtes sur un réseau domestique où vous souhaitez continuer et faire confiance à n'importe quel PC pour vous connecter à distance, vous pouvez taper l'applet de commande suivante dans PowerShell (encore une fois, vous devrez l'exécuter en tant qu'administrateur).

Set-Item wsman: \ localhost \ client \ trustedhosts *

L'astérisque est un symbole générique pour tous les PC. Si, à la place, vous souhaitez restreindre les ordinateurs pouvant se connecter, vous pouvez remplacer l'astérisque par une liste d'adresses IP ou de noms d'ordinateurs séparés par des virgules pour les PC approuvés.
Après avoir exécuté cette commande, vous devrez redémarrer le service WinRM pour que vos nouveaux paramètres prennent effet. Tapez l'applet de commande suivante, puis appuyez sur Entrée:

Service de redémarrage WinRM

Testez la connexion

Et rappelez-vous, vous devrez exécuter ces deux applets de commande sur le PC auquel vous souhaitez vous connecter, ainsi que sur tous les PC à partir desquels vous souhaitez vous connecter.

Maintenant que vos PC sont configurés pour PowerShell Remoting, il est temps de tester la connexion. Sur le PC à partir duquel vous souhaitez accéder au système distant, saisissez l'applet de commande suivante dans PowerShell (en remplaçant «ORDINATEUR» par le nom ou l'adresse IP du PC distant), puis appuyez sur Entrer:

ORDINATEUR Test-WsMan

Cette commande simple permet de tester si le service WinRM s'exécute sur le PC distant. S'il se termine avec succès, vous verrez des informations sur le service WinRM de l'ordinateur distant dans la fenêtre, ce qui signifie que WinRM est activé et que votre PC peut communiquer. Si la commande échoue, vous verrez un message d'erreur à la place.

Exécuter une seule commande à distance

Pour exécuter une commande sur le système distant, utilisez "l'Invoke-Command" applet de commande à l'aide de la syntaxe suivante:

Invoke-Command -ComputerName COMPUTER -ScriptBlock {COMMAND} -credential USERNAME

«ORDINATEUR» représente le nom ou l'adresse IP du PC distant. «COMMAND» est la commande que vous souhaitez exécuter. "USERNAME" est le nom d'utilisateur avec lequel vous souhaitez exécuter la commande sur l'ordinateur distant. Vous serez invité à entrer un mot de passe pour le nom d'utilisateur.

Voici un exemple. Je souhaite afficher le contenu du répertoire C: \ sur un ordinateur distant avec l'adresse IP 10.0.0.22. Je veux utiliser le nom d'utilisateur "wjgle", donc j'utiliserais la commande suivante:

Invoke-Command -ComputerName 10.0.0.22 -ScriptBlock {Get-ChildItem C: \} -credential wjgle

Démarrer une session à distance

Si vous souhaitez exécuter plusieurs applets de commande sur le PC distant, au lieu de taper à plusieurs reprises l'applet de commande Invoke-Command et l'adresse IP distante, vous pouvez plutôt démarrer une session distante. Tapez simplement l'applet de commande suivante, puis appuyez sur Entrer:

Enter-PSSession -ComputerName COMPUTER -Credential USER

Encore une fois, remplacez «ORDINATEUR» par le nom ou l'adresse IP du PC distant et remplacez «UTILISATEUR» par le nom du compte d'utilisateur que vous souhaitez invoquer.

Votre invite change pour indiquer l'ordinateur distant auquel vous êtes connecté et vous pouvez exécuter n'importe quel nombre d'applets de commande PowerShell directement sur le système distant.

 

SIGNER VOS SCRIPTS POWERSHELL

La signature d'un script s'effectue à l'aide de la cmdlet Set-AuthenticodeSignature et d'un certificat de signature de code.
#Obtenir une signature de code personnel pour l'utilisateur connecté
$cert = @(Get-ChildItem -Path Cert:\CurrentUser\My -CodeSigningCert) [0]
#Signez les scripts à l'aide d'un certificat
Set-AuthenticodeSignature -Certificate $cert -FilePath c:\MyScript.ps1

Vous pouvez également lire un certificat à partir d'un .pfx en utilisant:
$cert = Get-PfxCertificate -FilePath "C:\MyCodeSigningCert.pfx"

Le script sera valide jusqu'à l'expiration du certificat. Si vous utilisez un serveur d'horodatage lors de la signature, le script continuera à être valide après l'expiration du certificat. Il est également utile d'ajouter la chaîne d'approbation du certificat (y compris l'autorité racine) pour aider la plupart des ordinateurs à faire confiance au certificat utilisé pour signer le script.

Set-AuthenticodeSignature -Certificate $cert -FilePath c:\MyScript.ps1 -IncludeChain All - TimeStampServer "http://timestamp.verisign.com/t

recommandé d'utiliser un serveur d'horodatage auprès d'un fournisseur de certificats de confiance tel que Verisign, Comodo, Thawte, etc. Modification de la stratégie d'exécution à l'aide de :
Set-ExecutionPolicy

 

UTILISATION DE SCRIPT POWERSHELL POUR CONVERSION EN EXECUTABLE

Une fois l'installeur téléchargé, installez le logiciel qui s'avère assez léger. Il va falloir ouvrir dans le logiciel le script PowerShell que vous souhaitez convertir.Vous pouvez le télécharger ICI

Pour cela, cliquez sur le bouton "Open" et ouvrez votre fichier PS1.

powershell-ps1-to-exe-01.png

À partir de ce moment-là, nous pourrions lancer directement la conversion, mais je vais vous montrer quelques options. Sur la droite, dans l'onglet "Options", vous avez l'option "Icon". Cela permet de définir un icône pour votre application, lorsque celle-ci sera visible dans l'explorateur Windows. Il ne s'agit pas de l'icône au sein de l'application, mais bien celui visible dans l'explorateur de fichiers.

powershell-ps1-to-exe-02.png

Vous avez la possibilité de choisir le format de votre exécutable, à savoir 32 ou 64 bits, ainsi qu'état de la console PowerShell. Si vous souhaitez que la console PowerShell ne s'affiche pas, afin de voir uniquement votre interface graphique, sélectionnez une option avec "Windows (Invisible)".

 

powershell-ps1-to-exe-03.png

Enfin, si vous utilisez un fichier de configuration ou tout autre fichier que vous souhaitez intégrer à l'exécutable, c'est possible ! Cliquez sur l'onglet "Embed" et cliquez sur "Add" afin de rechercher le fichier à intégrer dans l'exécutable. Il est possible d'intégrer plusieurs fichiers, mais cela impactera forcément la taille de votre exécutable.

powershell-ps1-to-exe-05.png

Le bouton "Convert" va permettre de démarrer la conversion afin d'obtenir votre script au format Exe. Lorsque vous cliquez sur le bouton, vous devez indiquer le chemin où vous voulez l'enregistrer, ainsi que son nom.

https://www.it-connect.fr/wp-content-itc/uploads/2019/09/powershell-ps1-to-exe-04.png

Il ne vous reste plus qu'à tester et utiliser le programme mais un peu plus récent !

scripts PowerShell pour vérifier vos mises à jour Lire sur le site à propos des hotfixes et PowerShell 5.1

Cycles de vie des versions Powershell

Administration et PowerShell PowerShell de A à Z et l'administration

Gérer le niveau de confidentialité sur Windows 10 Lire : Les commandes réseau en Powershell

le tutoriel PowerShell Lire : Tutoriel Powershell

le tutoriel PowerShell Voir le site www.pbarth.fr

le tutoriel PowerShell Lire : L'interface en ligne de commande PowerShell (s'applique à tous les systèmes Windows)

 

CONSOLIDER LES SERVEURS AVEC LA VIRTUALISATION

Les services web sont particulièrement adaptés à la consolidation en machines virtuelles. Les services tels que les bases de données web, les sites statiques, les sites dynamiques, y compris ceux qui utilisent Java, .NET, PHP, Python et d’autres langages dynamiques, sont migrés simplement vers une infrastructure virtuelle.

Les points suivants sont les cinq raisons principales de consolider des services web:

- Le temps de restauration moyen est trop long.
- L’infrastructure souffre d’un matériel vieillissant.
- Les capacités de l’infrastructure ne suffisent plus.
- Les systèmes sont sous-utilisés.
- La virtualisation permet des économies.

Exemple de Scénario d'équilibrage de charges avec 3 serveurs web virtuels avec un serveur de stockage partagé. Sur ce shéma on peut penser que les serveurs tournent avec des Dual ou Quad core. Cela sous entend la possibilité d'ajouter 1 OS virtuel par chaque coeur du processeur.

Pour la lisibilité du shéma il est indiqué 1 serveur "web virtuel" pour 1 rack. Du fait de l'utilisation massive des multi-coeur sur les rack ou les lames des baies de stockage le shéma pourrait être simplifié en indiquant les 3 serveurs web sur un seul rack, doté d'un multi-coeur avec 1 serveur virtuel par "coeur" ou core.

 

 

COMMANDES BASIQUES T-SQL

SELECT

Description: Cette commande permet de récupérer des données contenues dans une ou plusieurs tables, vues, ou clichés.
Syntaxe:

SELECT [DISTINCT | ALL]
{ *
| { [schema.]{table}.* | expr [c_alias]
[, { [schema.]{table | view | snapshot}.* | expr [c_alias] } ] ... }
FROM [schema.]{table | view | snapshot} [t_alias]
[, [schema.]{table | view | snapshot} [t_alias] ] ...
[WHERE condition ]
[ [START WITH condition] CONNECT BY condition]
[GROUP BY expr [, expr] ... [HAVING condition] ]
[{UNION | UNION ALL | INTERSECT | MINUS} SELECT command ]
[ORDER BY {expr|position} [ASC | DESC] [, {expr | position} [ASC | DESC]] ...]
[FOR UPDATE [OF [[schema.]{table | view}.]column
[, [[schema.]{table | view}.]column] ...] [NOWAIT] ]

DISTINCT
Renvoie toutes les lignes sélectionnées en enlevant les doublons.

ALL
Renvoie toutes les lignes sélectionnées sans enlever les doublons. C'est la valeur par défaut.

*
Renvoie toutes les colonnes de toutes les tables précisées dans le FROM.

table.*
Sélectionne toutes les colonnes de la table précisée.

expr
Sélectionne une expression habituellement calculée sur les valeurs des colonnes appartenant à l'une des tables de la clause FROM.
c_alias
La chaîne de caractères qui sert d'en-tête à la colonne (par défaut expr)
schema
Est le nom du schéma contenant les tables. Le schéma par défaut est celui de l'utilisateur qui exécute la requête.
table
Est le nom de la table contenant les données sélectionnées.
t_alias
Synonyme pour la table dont le nom précède, à utiliser dans le reste de la requête.
WHERE
Restreint les lignes sélectionnées à celles pour lesquelles la condition est vraie. Si cette clause est omise, toutes les lignes des tables précisés derrière le FROM sont renvoyées.
START WITH, CONNECT BY
renvoie les lignes en parcourant une arborescence.
GROUP BY
Groupe les lignes sélectionnées en se basant sur la valeur de expr pour chaque ligne et renvoie une seule ligne par groupe.
HAVING
Restreint les groupes de lignes renvoyés à ceux pour lesquels la condition spécifiée est vraie. Sans cette clause, tous les groupes sont renvoyés.
UNION, UNION ALL, INTERSECT, MINUS
Combine les lignes retournées par deux SELECT en utilisant une opération ensembliste.
ORDER BY
Ordonne les lignes sélectionnées :

expr
En utilisant la valeur de expr. Cette expression est basée sur des colonnes précisées derrière le SELECT ou sur des colonnes appartenant à des tables, vues ou clichés présents derrière le FROM.
position
Donne le numéro de la colonne dans l'ordre du SELECT.
ASC, DESC
Mode ascendant ou descendant. La valeur par défaut ASC.

FOR UPDATE
"locke" les lignes sélectionnées.
NO WAIT
Retourne le controle à l'utilisateur si la commande SELECT essaye de bloquer une table utilisée par un autre utilisateur.

INSERT

Déscription
Cette commande permet d'ajouter des lignes à une table ou à une vue basée sur une table.
Syntaxe

INSERT INTO [schema.]table | view
[ (column [, column] ...) ]
VALUES (expr [, expr] ...) | subquery

Dans lequel :
schema
Est le nom du schéma contenant la table. Le schéma par défaut est celui de l'utilisateur qui exécute la requête.
table
Est le nom de la table dans laquelle les lignes seront insérés. Si c'est un nom de vue qui est précisé, les données seront insérés dans la table basée sur la vue.
column
VALUES
subquery

UPDATE

Déscription: Cette commande permet de modifier des données contenues dans une table ou dans une vue.
Syntaxe

UPDATE [schema.]table | view [alias]
SET (column [, column] ...) = (subquery)
| column = expr | (subquery)
[, (column [, column] ...) = (subquery)
| column = expr | (subquery) ] ...
[WHERE condition]

schema
Est le nom du schéma contenant la table à modifier. Le schéma par défaut est celui de l'utilisateur qui exécute la requête.
table, view
Est le nom de la table à mettre à jour. Si c'est un nom de vue, la table mise à jour est celle sur laquelle la vue est définie.
alias
Est un alias assigné à la table. les alias sont généralement utilisés dans des UPDATE contenant des requêtes.
column
Est le nom de la colonne qui sera modifiée.
expr
Est la nouvelle valeur de la colonne.
subquery
Est un SELECT qui renvoie les nouvelles valeurs affectées aux colonnes correspondantes.
WHERE
Restreint les lignes modifiées à celles pour lesquelles la condition est vraie. Si on omet cette clause toutes les lignes sont modifiées.

DELETE

Déscription
Cette commande permet de supprimer des données contenues dans une table ou dans une vue.
Syntaxe

DELETE [FROM] [schema.]table | view [alias]
[WHERE condition]

Schema
Est le nom du schéma contenant la table ou la vue à détruire. Le schéma par défaut est celui de l'utilisateur qui exécute la requête.
table, view
Est le nom de la table ou de la vue contenant les lignes qui seront détruites. Si c'est un nom de vue, les lignes détruites appartiennent à la table sur laquelle la vue est basée.
alias
Est un alias assigné à la table. les alias sont généralement utilisés dans des DELETE contenant des requêtes.
WHERE
Détruit seulement les lignes satisfaisant la condition. Cette condition peut référencer la table et peut contenir des sous-requêtes. Si cette clause est omise détruit toutes les lignes.

 

Informations supplémentaires:
Guide d'utilisation de SQLPlus
et particulièrement
Programmation Oracle PL-SQL

 

Collaboration Serveurs d'applications basées sur des solutions libres

Collaboration Solutions propriétaires

 

COLLABORATION

Installation de WSS v3 gratuit sur WS2K3

Installation de SharePoint sur Serveur 2008

Installtion de Sharepoint foundation 2013 en mode standalone

CollaborationGROUPWARE ou Groupes de travail collaboratif

Solutions propriétaires et libres

Modèle d'infrastructure de logiciel libre en éducation

 

CMS - BLOG - LMS - E-COMMERCE ET E-LEARNING

CollaborationCMS

CollaborationMoteur de Blog

:. Assistance informatique en ligne et dépannage à domicile du lun au sam de 9 à 19h .: Tél: [33975858504-33753514880]
Une expertise technique à votre service pour résoudre vos problèmes et vous informer sur les réseaux et systèmes...
 

Major GeeksMajor Geeks
téléchargements
IOS, Android, Windows...


Accès à la version mobiles du site

Version mobiles

 


Accédez aux Vidéos

 

Téléchargez
Téléchargements
de
logiciels gratuits

&

Informations Techniques

 

Contact :
Téléphone 09.75.85.85.04
E-mail platoon3@gmail.com

Windows

Apple

Linux

ITtoolbox

techrepublic

La quadrature du net

 

Sourceforge

2011-2023-1fop+creative commons [C.Platon]