Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 11695|Répondre: 1

Tutoriel pour débuter PowerShell - version v0.3

[Copié le lien]
Publié sur 19/04/2017 16:48:30 | | |


---------- Chapitre 1 Historique des scripts Windows --------------


1 La première génération de chauves-souris à script. Tout a commencé avec win95, win98--------- et s’est terminé vers 2008. Fonctionnalités : Commandes orientées caractères, avec ligne de commande et pipeline.
2 Script de deuxième génération VBS. Fonctionnalités : Uniquement des fonctions, des valeurs de passage, des appels.
3 PowerShell de script de troisième génération. Depuis 2012, le commandement a entièrement évolué vers une orientation objet. Par exemple, la liste des tâches et le get-process sont des fonctionnalités répétées de la roue : orientées objet. Héritant des avantages des deux générations précédentes d’écriture.



Q : Pourquoi apprendre PowerShell ?
Un:
Le missionnaire répondit qu’il étudierait pendant un an et cinq ans pour BAT. Syntaxe simple et fonctions de bibliothèque solides !
Le seul au monde qui supporte des objets avec des commandes des deux côtés du pipeline. c’est-à-dire commande orientée objet 1 | Commande orientée objet 2

Windows et Linux sont différents :
Dans le script PowerShell sur Win,
Soutenez CR, LF, CRLF entrez. Prend en charge la concurrence multithread et multi-processus.
Il est facile d’intégrer [son Text2], « Signaler Capitaine, disque plein ».
Intégrer une interface graphique est facile. (Lorsque l’interface pop-up vous demande d’entrer un nom d’utilisateur, un mot de passe, une sélection unique, plusieurs sélections, etc.) Ce sont les jalousies des scripts Linux.

PowerShell est différent de Python :
Il est facile d’utiliser le chinois dans PowerShell. Nom d’écriture chinois, nom de la variable, commentaire. Guillemets uniques chinois, guillemets doubles chinois.
Reconnaît automatiquement l’encodage GBK, UTF8, Unicode. Des objets de support pipeline, dont les scripts Python sont jaloux.



Exemple simple de syntaxe 1 : La magie des guillemets simples et doubles PowerShell.
Les guillemets simples peuvent être cités entre guillemets doubles. Et inversement.
Les guillemets simples et doubles peuvent être @引用 avec @''.
BAT n’a pas fonctionné.


Narrateur missionnaire :
J’ai beaucoup réfléchi à la conception du tutoriel. N’avez-vous pas lu que la partie historique de ce que j’ai écrit était très [simple et grossière] ? L’histoire se porte d’un seul coup.
Mais puisque je l’ai dit, ce n’est pas absurde, je veux juste que les étudiants fassent comprendre que depuis win7-win2008, l’objectivation des scripts est devenue populaire. Cela mène au chapitre suivant de l’explication orientée objet.
Tout tutoriel d’introduction PS devrait mentionner la différence entre orienté caractère et orienté objet. Il est tout simplement approprié de batailler ce sujet dans l’historique de la ligne de commande.

---------- Chapitre 2 : Le merveilleux -------------- de l’orienté objet
Qu’est-ce qu’un objet, pourquoi est-il orienté objet, et pourquoi Microsoft renforce-t-il la roue ?

Exemple orienté objet 1 :
Question : Je mange 2,2 pommes par jour, combien de pommes dois-je manger en 17 jours ?
Un:
2,2 x 17 est disponible. Il est également possible d’utiliser i++ supporté par n’importe quel langage de scripting.
pour ($i = 1 ; $i -18 ; $i++)
{
        $Apple = 2,2 + $Apple
        Écrire et animer $i $Apple
}

--------------------------------------------
Dès que la question change, je ne vous dirai pas le nombre de jours, je vous dirai juste,
Je mange 2,2 pommes par jour, combien de pommes dois-je manger du 20 janvier au 20 juin 2017 ?
$days = ((get-date '20-06-2017') - (get-date '2017-01-20').jours #值151


Je mange 2,2 pommes par jour, combien de pommes dois-je manger du 20 janvier au 20 juin 2020 ?
$days = ((get-date '20-06-2020') - (get-date '20-01-2020')).jours #值152

pour ($i=(date de mise « 2020-01-20 ») ; $i -lt (date de mise du 2020-06-2020) ; $i=$i.adddays(1))
{
        $Apple = 2,2 + $Apple
        Écrire et animer $i $Apple
}

Conclusion : Avec l’objet date, compter les jours, les heures, etc., est simple. [for,,i++] est courant, mais je n’aurais jamais pensé que le nombre i pouvait être de type date.

------------------------------------------



Quels sont les avantages de l’orienté objet ?
Avant l’orienté objet, nous n’avons que des chaînes et des entiers.
1 Il y a un objet.
----- [Type de personnage]-----
Le glyphe a system.string, qui est le plus basique.
Mémoire System.Text.StringBuilder, chaîne de chaînes changeantes fréquemment

----- [Type numérique] -----
system.int32, system.int64, system.decimal, system.double, System.Numerics.BigInteger entier entier.
Couramment utilisé est int32, décimal.

Le fait que 1/3*3 soit égal à 1 ou 0,9999 dépend du type de données.
----- [Array]-----
réseau system.array
System.Arraylist change fréquemment, comme toujours réécrire, ajouter ou supprimer, vous devez utiliser ce tableau. La vitesse est relativement rapide.
System.Collections.Generic.HashSet déduplique les tableaux de dédupliquement. C’est pareil pour l’objet set de Python.

-----【Form】-----
1 sortie de commande. Par exemple, dir, get-process.
2. Lors de l’écriture de scripts, nous utilisons des objets et des attributs pour construire.

----- [Autres] -----
Tables de hachage, fichiers, etc.



Le 2 a des attributs. Les attributs sont des arguments et sont plus petits que les chaînes. Avant qu’il n’y ait plus d’attributs, nous devons filtrer et filtrer les chaînes avec [brain burning normal], appelées [chaîne de déduction]. Si vous avez des attributs, vous n’en avez pas besoin.
3 Il y a une solution. La méthode, c’est le programme, le code. Pas besoin de la réécrire soi-même. Bat n’est définitivement pas bon, il n’y a pas moyen, il y a aussi une écriture personnelle, peu fiable, n’ose pas l’utiliser.
Les méthodes peuvent être des fonctions ps auto-écrites, des méthodes auto-écrites dans les classes ps.
La méthode que vous écrivez vous-même peut être temporairement [fusionnée] dans une classe tierce.
La méthode que vous écrivez vous-même peut être temporairement [fusionnée] dans la classe .net.

Quels sont les inconvénients de l’orienté objet ?
Le prédicateur enseigne PowerShell à ceux qui utilisent WinXP. La personne a dit que PowerShell n’est pas bon, que l’objet est trop gourmand en mémoire, et il a raison.
Dans cmd, je retourne 100 noms de fichiers (chaînes de caractères) avec dir. Dans PowerShell, j’utilise Dir pour retourner 100 objets fichiers, et PowerShell prend beaucoup de mémoire.
Mais maintenant, c’est différent :
1. Le contenu inutile ne doit pas exister en variables. Ou détruisez-le immédiatement après utilisation pour réduire la consommation de mémoire.
2. La chute de mémoire suffit. Comme les performances du processeur ne peuvent plus augmenter, nous augmentons frénétiquement la mémoire dans une tentative d’échanger de l’espace contre du temps.
3. Nous voulons des fonctionnalités plus puissantes, et l’orientation objet est la chose la plus basique de nos jours. Lequel n’est pas orienté objet, py, php, java, .net, c++ ?

Résumé:
1 Les objets sont plus grands et plus gourmands en mémoire que les chaînes.
2. Il existe plus de méthodes pour l’orientation objet et des fonctions plus fortes.
3 attributs sont plus petits que la granularité des chaînes, ce qui est extrêmement pratique à utiliser. J’ai évité l’utilisation folle de cordes normales pour brûler le cerveau !


=== Utilisation folle de réguliers qui brûlent le cerveau pour filtrer les exemples, version bat de la passerelle par défaut ping ===
@echo Off&setLocal EnableDelayedExpansion
Echo cherche la passerelle par défaut...

pour /f « usebackq delims= » %%i in ('ipconfig /all') faire (
Echo %%i|Find /i « gateway">Nul|| echo %%i|find « default gateway » >nul
si « !errorlevel ! » =="0 » (
pour /f « tokens=2 delims= : » %%a in (« %%i ») faire pour /f « delims= " %%m in (« %%a ») fixer ipgate= %%m
)
)

La passerelle par défaut de l’Echo est : !ipgate !
=========== ping au gateway.ps1 par défaut============
$default passerelle = (get-netroute -DestinationPrefixe 0.0.0.0/0). NextHop
& ping.exe $ Passerelle par défaut

# test-connection $ passerelle par défaut
=======================






Q : Même si l’orienté objet est si efficace, d’où viennent ces objets ?
R : De la bibliothèque .net.


---------- Chapitre 3 Introduction à .NET --------------


Q : Combien de branches de versions possède .NET Core ?
Un:
Il existe actuellement trois versions.
.NET 2.0 La dernière version de .NET 3.51
.NET 4.0 La dernière version de .NET 4.70
.NET Core 1.x La dernière version de .NET 1.2 pour les systèmes Apple, Linux et systèmes embarqués.
.NET Core 2.x La dernière version de .NET 2.0 pour les systèmes Apple, Linux et systèmes embarqués.



Q : Combien de branches fonctionnelles .net a-t-il ?
Un:
Branche bureau en .NET. WinForm. Pour développer des fenêtres de bureau.
Bibliothèque sonore
asp.net dans .NET et .NET Core. Bibliothèque de fonctions serveur web. Utilisé pour ouvrir un serveur web B/S.
F# dans .NET et .NET Core. Contient des bibliothèques mathématiques, des bibliothèques de fonctions trigonométriques, etc.
PowerShell en .NET et .NET Core. Contient des interfaces de gestion système courantes telles que des fichiers script.
Linux
◦Ubuntu 14.04 \ 16.04
◦CentOS/RHEL 7 et supérieurs
◦ouvre SUSE 42 et au-dessus
◦Arch Linux (archl inux n’a pas de numéro de version)
◦Conteneur docker LINUX
◦Conteneur Linux AppImage (application portable binaire unique) https://github.com/probonopd/AppImageKit



MAC OS X
◦OS X 10.11


Q : Comment un programme .NET (programme C#) se connecte-t-il à un serveur MySQL ?
Un:
Allez sur le site officiel de mysql pour télécharger le connecteur pour le langage .NET.
mysql-connector-net-6.9.9-noinstall.zip--->v4.5--->MySql.Data.dll
Ajoutez la classe MySql.Data à .net et ajoutez l’interface de la base de données.



Conclusion :
Machine WinXP installe d’abord .net 3.51, Windows 7 et Windows 2008, première installation .net 4.62 ou supérieure.

.NET existe depuis de nombreuses années, et il n’existe pas beaucoup de logiciels qui prennent en charge .net que Java. Toutes les branches .net, interfaces (bases de données, WeChat, etc.). )
Ces DLL, ces bibliothèques, PowerShell peuvent être appelés. C’est exactement le même que l’exécutif écrit en C#.


Q : En plus de l’interface de branchement .NET, quelles sont les propres bibliothèques (modules) de PowerShell ?
Un:
Veuillez consulter le prochain chapitre

---------- Chapitre 4 Bibliothèques intégrées, bibliothèques externes et bibliothèques tierces couramment utilisées dans PowerShell --------------

Aide missionnaire :
Ce chapitre ne peut pas être discuté, mais il s’agit simplement d’une liste de bibliothèques et de manuels. Ajoutez ce chapitre en favori. Après avoir examiné ces bibliothèques, vous saurez ce que PowerShell peut faire.



Adresse du manuel Win2012 : (module AD le plus couramment utilisé)
https://technet.microsoft.com/zh-cn/library/dn249523(v=wps.630).aspx
Gestion des groupes utilisateurs AD, DCP, DNS, imprimante, partage de fichiers, IIS, disque, carte réseau,



Exchange2016
https://technet.microsoft.com/zh-cn/library/bb124413.aspx
Active Directory 12         
Anti-Spam et Anti-Malware 59  
Accès client 100
Agent d’extension 4
Adresses Email et Carnets d’Adresses 37
Fédération et configuration hybride  
Haute disponibilité  
Flux de courrier  
Boîte aux lettres  
Base de données de boîtes aux lettres  
Serveur de boîte aux lettres  
Déplacer et migrer  
Organisation  
Autorisations  
Politique et conformité  
Sécurité  
Santé, surveillance et performance du serveur  
Partager et collaborer  
Message unifié  
Utilisateurs et groupes  



sqlserver2016
https://msdn.microsoft.com/zh-cn/library/hh245198.aspx



lync2015
https://technet.microsoft.com/zh-CN/library/gg398867.aspx




SharePoint2016
https://technet.microsoft.com/zh-cn/library/ff678226(v=office.16).aspx



Machines virtuelles Amazon, AWS, machines virtuelles Microsoft, Azure, Hyper-V, VMware vSphere, et machines virtuelles de niveau entreprise.


Clients :
Services, processus, journaux, registres, annuaires de fichiers, gestion à distance. Tâches chronométrées.



Internet :
FTP, messagerie, plug-in client SSH pour la connexion serveur Linux.


SMS:
XML, HTML, CVS, JSON, EXCEL, etc.


Texte 2 voix


Interface graphique.


Centre de scripting Microsoft
https://gallery.technet.microsoft.com/scrip{过滤}tcenter/


Source logicielle PowerShell site officiel --- bibliothèque officielle PowerShell.
https://www.powershellgallery.com


Les autres bibliothèques Niu x sont toutes sur github. De plus, les missionnaires publient régulièrement le [Niu x Magic Weapon] de [Hidden Foot Pavilion], qui est une bibliothèque tierce utile de PowerShell.


---------- Chapitre 5 Les débutants doivent apprendre à aider à utiliser les commandes--------------


Q : Comment puis-je connaître la version PowerShell ?
Un:
$PSVersionTable



Q : Je ne connais pas le module, comment le trouver ?
Un:
get-module -ListAvailable


Q : Comment puis-je trouver des commandes alors que je n’en connais qu’une partie ?
Un:
get-command *service*



Q : Je connais la commande, mais je ne sais pas quels paramètres sont dans la commande, comment lister les paramètres ?
Un:
get-help write-host -Paramètre *
show-commande-write-host


Q : Je connais le paramètre, mais je ne sais pas quelle commande possède ce paramètre, comment puis-je trouver la commande ?
Un:
Encodage de la commande get-Parameter Name



Q : Comment puis-je obtenir de l’aide pour une commande depuis la ligne de commande ?
Un:
obtenir de l’aide pour obtenir rendez-vous

-Exemples de commandes
- Manuel en ligne




Q : Je ne connais pas la méthode d’attribut de la commande (je ne connais pas l’objet), comment la trouver ?
Un:
« abc » | get-member
get-date | get-member



Q : Où se trouve le manuel chinois .NET ?
Un:
msdn。 Les propriétés et méthodes les plus basiques des cordes se trouvent dans le manuel.
https://msdn.microsoft.com/zh-cn/library/system.string.aspx



---------- Chapitre 6 Introduction aux commandes courantes --------------

Le premier ordre pour apprendre est dir
Q : Pourquoi utiliser PowerShell Dire, c’est-à-dire Get-ChildItem] au lieu de cmd dir. ?
Un:
Orienté objet, méthode solide, et de nombreux attributs.
$file = dir a :\pscode\temp183\aaa.txt
$file. Nom complet #返回全路径属性
$file. BaseName #返回文件名属性
$file. Extension #返回扩展名属性
$file. LastWriteTime #返回最后写入时间属性



La première syntaxe à apprendre est la syntaxe des tableaux. $a = @(commande xxx)
Q : Parfois, il faut utiliser [des commandes externes basées sur les caractères] pour diviser les valeurs de retour en tableaux par unités de comportement.
Un:
$a = @(ipconfig)
$a[8] #第9行


Utilisation de get-childitem :
Paramètres ajoutés dans PowerShell 3.0 et versions supérieures

Get-childitem d :\xxx -fichier #过滤, uniquement les fichiers de sortie
- Filtrage de directoire, annuaires de sortie uniquement
-Filtrage caché, seule la sortie cachée


Q : Ouvrir un fichier, segmenter par comportement, le placer dans un tableau ?
Un:
$a = Get-Content a :\pscode\temp183\aaa.txt -ReadCount 0



Q : Ouvrir un fichier, sous forme de grande chaîne, et stocker la variable entière ?
Un:
$a = Get-Content a :\pscode\temp183\aaa.txt -raw


$a,$b,$c = 1,2,3


Q : Comment puis-je exécuter des commandes en arrière-plan ?
Un:
Il existait un commandement cmd /c dans l’Antiquité.
Il existe maintenant powershell /c « commande », ou powershell -c « commande »,
PowerShell -fichier « script.ps1 » -argument 1 AAAA -paramètre 2 1234
start-process -path xxx.exe -ArgumentList '-parameter1 aaaa -parameter2 1234'


Q : Je veux lancer le script avec un autre utilisateur local, mais PowerShell n’a pas de runas. Exe commandes similaires ?
Un:
Il existe plusieurs sessions dans PowerShell.
IP + port + nom d’utilisateur + mot de passe = une session, il suffit de changer le nom d’utilisateur, le mot de passe, et vous pouvez changer les permissions. Parce que les permissions sont liées à l’utilisateur.
De même, je n’ai besoin que de créer n sessions à utiliser, sans changer d’utilisateur.
Le nouveau-pssession le plus important a le paramètre -Credential, entrez le mot de passe utilisateur, qui n’est pas la même chose que runas. Exe est-il pareil ? Qu’est-ce que SmbSession d’autre ?
Donc je ne pense pas qu’il soit nécessaire d’utiliser des runas dans PowerShell. exe。
Il suffit d’utiliser ces commandes avec session et Credential, non ?

Vérifiez les commandes portant le nom [Credential] dans le nom du paramètre :
commande-get-crédential -ParameterName

Voir les commandes avec le caractère [session] dans la commande :
get-command *session*


Q : Comment puis-je envoyer un e-mail en utilisant PowerShell ?
Un:
Envoyer-MessageMail -Sujet 'Sujet'
-De « votre compte hotmail @hotmail.com » -À « votre adresse QQ @qq.com »
-SmtpServer « smtp.live.com » -port 587 -useSsl -identifiant « votre compte hotmail @hotmail.com »
-Pièces jointes $Attachments -BodyAsHTML -corps $HTML le contenu de l’email

Note:
1 utilisationxxx@QQ.com+ Votre mot de passe QQ + la commande ci-dessus : Envoyer un e-mail ne fonctionne pas. Parce que pour la sécurité des mots de passe QQ, Tencent exige des mots de passe e-mail indépendants.  
2 L’envoi depuis la boîte aux lettres QQ n’est pas possible par défaut. Il est désactivé, et il faut activer SMTP dans les paramètres.
3 PowerShell 3.0 et supérieures ne prennent en charge que les paramètres de port. Pour Windows 7, il faut d’abord installer la dernière version de PS




Q : Surveillez le CPU, le disque, le réseau, les sorties, etc.
Un:
Moniteur de performance ou
Get-Counter récupère les données des compteurs de performance depuis des ordinateurs locaux et distants.

Q : Comment puis-je voir quels objets de pions sont disponibles ?
Un:
Tout est dans le manuel.
Vérifiez quelles sont les principales catégories d’utilisations :
Get-Counter -ListSet * | Compteur-Object-TriNomSetName | Format-Table CounterSetName


Par exemple, je sais maintenant que la catégorie disque est (PhysicalDisk), puis je vérifie les sous-catégories dans le disque, j’utilise :
(Get-Counter -ListSet PhysicalDisk). Chemins




Q : Comment puis-je consulter les journaux ?
Un:
Visualiseur d’événements, ou
get-eventlog



Q : Comment exécuter les chaînes ?
Un:
$cmd 1 = 'xxxx'
Invoke-Expression $cmd 1


Eh bien, nous avons beaucoup appris sur les commandes individuelles, regardons l’exécution des scripts Powershell.


---------- Chapitre 7 : Scripting, débogage et exécution --------------
Un script est une combinaison et une superposition d’instructions commande. Le scénario est de la colle, cherche d’autres personnes à appeler, cherche des roues pour assembler la voiture. Au lieu de fabriquer des roues, pour que d’autres les utilisent.



Cainiao a demandé : Comment écrire un scénario ?
Le vieil oiseau répondit :
1 Les détails du problème doivent être clarifiés. Par exemple : faire des gâteaux de lune.
2 Les idées de résolution de problèmes sont également essentiellement terminées. Farine et eau, mets la garniture, vapeur.
3 Quelles commandes et variables utiliser. Ajoutez cinq grains, mettez-les dans un moule et pressez-les.
4 Écrire approximativement d’abord, écrire approximativement.
5 Débogage réussi.
6 Écris en détail. Considérons la situation de l’erreur, plus le code d’erreur, le message d’erreur. Supprimez le code sujet aux erreurs qui n’est pas facilement compatible. Réécrivez le code qui ne fonctionne pas bien.
Jusqu’à présent, un bon scénario peut ne pas être très flatteur, mais il devrait être très utile.
7 Finement fabriqué. Refactorisation, réécriture de fragments de code réutilisés dans des fonctions. Réécrivez les noms des variables pour que les gens puissent les comprendre d’un coup d’œil. Formatez bien le code et faites l’indentation.


Q : Quel IDE est utilisé pour écrire la PS1 ?
Un:
Le plus recommandé est d’utiliser Visual Studio Code, ainsi que le plug-in PowerShell.
Fonctionnalités : Invites de code, complétion automatique, formatage de code, indentation pour choisir l’espace ou l’onglet, paramètres d’encodage de fichiers.
Il existe un plugin appelé FTP-sync, qui peut écrire des scripts PS1 dans le VSCode de Windows et les synchroniser automatiquement avec le répertoire Linux lors de la sauvegarde.



Q : Quels outils sont utilisés pour déboguer la PS1 ?
Un:
La vie de powergui la plus recommandée n’utilise pas de locomotive, même si c’est un héros, le script PS saute aussi et signale une erreur !
VSCODE est aussi très bien



Q : Quels outils utilisez-vous pour la mise en forme du code ?
Un:
Tout ce qui devrait être en creux est indenté, et les signes égaux sont alignés.

PowerShell ISE + Plugin ISE [ISESteroïdes]

Installation :
Install-Module -Name ISESteroids

ISE fonctionne :
Start-Steroids





Q : Quels outils utilisez-vous pour rendre le code couleur jolie ?
Un:
1 Utilisez les outils ci-dessus pour formater le code.
2 Utiliser PowerShellise + Missionary DIY Couleur Assortie Édition 2016.
3 Prends la photo. Le code PowerShell le plus agréable et le plus magnifiquement coloré au monde est produit.

Tous les IDE ci-dessus sont en chinois.




Q : Comment nommer un script ? xxx.ps1
Un:
Il est recommandé de commencer par 1---2 lettres, et d’utiliser le nom de fichier chinois pour le reste. c’est-à-dire [bf sauvegarde toutes les anciennes files_ et supprime .ps1 d’il y a 10 jours]
Ainsi, tapez d’abord [bf], puis appuyez sur tab pour compléter le nom du script.




Q : Comment puis-je activer la permission d’exécution du script PowerShell ?
Un:
echo Le code suivant peut être exécuté en cmd avec des privilèges administrateur ou dans PowerShell avec des privilèges administrateur.
Echo si vous utilisez une télécommande PowerShell à distance. La machine locale et la machine distante doivent toutes deux être exécutées avec des privilèges administrateurs.
« C :\WINDOWS\system32\windowspowershell\v1.0\powershell.exe » -commande « Set-ExecutionPolicy -ExecutionPolicy Unrestricted »
« C :\WINDOWS\syswow64\windowspowershell\v1.0\powershell.exe » -commande « Set-ExecutionPolicy -ExecutionPolicy Unrestricted »
& « C :\WINDOWS\system32\windowspowershell\v1.0\powershell.exe » -commande « Set-ExecutionPolicy -ExecutionPolicy Unrestricted »
& « C :\WINDOWS\syswow64\windowspowershell\v1.0\powershell.exe » -commande « Set-ExecutionPolicy -ExecutionPolicy Unrestricted »
Pause



Q : Quels sont les inconvénients de la locomotive (powergui) ?
Un:
Impossible de définir la couleur d’arrière-plan.




Q : Quels sont les inconvénients de VSCODE ?
Un:
$ et le nom de la variable ne sont pas de la même couleur.
Les fonctions de débogage sont lentes et parfois bloquées.




Q : Quels sont les inconvénients de l’ISE ?
Un:
Vous ne pouvez pas choisir de sauvegarder ou de convertir l’encodage.
Indentez dans [espace], [tab] les deux. Dans d’autres logiciels de retouche de texte, l’indentation est affichée.




---------- Chapitre 8 : Exercice de combat réel --------------
Le groupe 6504748 et a écrit cette partie lui-même.

5. Exemple 1 : Activez et désactivez le service
6. Exemple 2 : Contrôle du pare-feu (Ouvrir, Fermer, Règle)
7. Exemple 3 : Définir une politique (par exemple, la politique de mot de passe)



---------- Chapitre 9 Ces cours optionnels supplémentaires Êtes-vous intéressé ? --------------
Exemples de scripts PowerShell, d’arguments en ligne de commande, de passer des valeurs et de lier des variables
http://www.cnblogs.com/piapia/p/5910255.html




Laissez PowerShell exécuter un seul script à la fois (exemple d’exclusion mutuelle du processus)
http://www.cnblogs.com/piapia/p/5647205.html



interface de personnage powershell, interface powershell plus WPF, jeu 2048
http://www.cnblogs.com/piapia/p/5531945.html


Deux rampes dans PowerShell
http://www.cnblogs.com/piapia/p/5367556.html



Script PowerShell : Générateur de mots de passe aléatoires
http://www.cnblogs.com/piapia/p/5184114.html



Exemple d’algorithme récursif PowerShell
http://www.cnblogs.com/piapia/archive/2013/01/29/2881011.html



Calculatrice vocale PowerShell
http://www.cnblogs.com/piapia/archive/2012/10/20/2731506.html



1 Listez tous les fichiers chiffrés par EFS. 2Déchiffrer tous les fichiers chiffrés EFS
http://www.cnblogs.com/piapia/p/4702514.html
C’est un outil conçu pour les administrateurs système et réseau.
Après qu’un employé quitte son emploi, son disque suppose qu’il y a 10 000 fichiers (répertoires), dont 3 répertoires chiffrés par EFS. Dans Explorer, ces trois fichiers sont verts.
Mais si vous cliquez sur (10 000 catalogues) un par un, que ce soit vert ou non, vous serez épuisé.
À ce moment-là, l’administrateur réseau utilise le compte WIN de l’employé, se connecte au PC de l’employé et utilise ce script pour lister tous les fichiers chiffrés EFS.


---------- Chapitre 10 S’il vous plaît posez une question --------------
Mesdames et messieurs, s’il y a quelque chose à signaler, quittez la cour sans rien.



----------Chapitre 11 Chapitre Linux --------------

Missionnaire : Tant que vous pouvez installer la version Linux de PowerShell, vous n’avez besoin que des scripts PS1, pas de scripts SH.
Interprétation:
1 En résumé, bash n’a que de la syntaxe, pas de commandes ni de bibliothèques.
2 Bash n’a que 1 % de fonctions de syntaxe, PowerShell ne peut pas l’implémenter. C’est normal, aucune feuille n’est exactement identique dans le monde.
Cela signifie que vous n’avez besoin que du script PS1, pas de SH.
3 bash est trop ancien, la même fonction, PowerShell peut être implémenté, et il peut aussi gagner du temps, comme 10 000 fors vides, Powershell doit économiser 90 % du temps.
4 Apprenez à utiliser /usr/bin/powershell au lieu de /usr/bin/bash. D’autres commandes Linux, pipelines, vieux kung-fu, etc., sont utilisés exactement de la même façon que dans bash.
5 Utilisez progressivement des commandes et bibliothèques PowerShell orientées objet, simples et puissantes, au lieu de commandes Linux épuisantes, ou les deux. --- C’est le principe général, le plan général.


Q : Quelles versions de Linux peuvent installer PowerShell ?
Un:
◦Ubuntu 14.04 / 16.04
◦CentOS/RHEL 7 et supérieurs
◦ouvre SUSE 42 et au-dessus
◦Arch Linux (archl inux n’a pas de numéro de version)
◦Conteneur docker LINUX
◦Conteneur Linux AppImage (application portable binaire unique) https://github.com/probonopd/AppImageKit





Q : Pourquoi dit-on que la ligne de commande de Windows est plus puissante que Linux ?
Un:
Les commandes dans 1 win ont évolué vers PowerShell orienté objet. Linux ne fonctionne pas encore. De win7 à win2012r2, l’évolution s’arrête.

2 J’ai entendu dire qu’Unix a beaucoup de commandes Linux et qu’il est très puissant. Mais maintenant je vous dis que les commandes PowerShell coûtent au moins dix fois plus que les commandes Linux. Quoi qu’il en soit, je n’ai pas appris toute ma vie.

3 Linux dépend davantage du graphe, avec trop peu de commandes. Et la commande win est bien plus que Linux.
3.1 Dans n’importe quel Linux, les commandes du serveur de messagerie sont de plus en plus complètes que dans Exchange ? Plus pratique que l’échange ?
3.2 La liaison du serveur DNS de Linux n’est pas aussi pratique que la commande DNS de Win. Est-ce que Bind a une [commande] pour ajouter un enregistrement IPv4 A à un nom de domaine ? Pas encore dépendant des graphismes web ?
Certaines personnes disent d’utiliser nsupdate. Ce n’est pas une question de rédiger un texte puis de le faire tourner. Quelle est la différence entre remplacer le [fichier de zone DNS] par sed puis recharger la [zone DNS] ?

4 Dans la nouvelle version de win, ou dans PowerShell, tout est [commande + paramètre]. Et la plupart de Linux reste [texte sédentaire].
4.1 Prenons l’adresse IP attribuée à la carte réseau comme exemple.
Connexion NMCLI Ajoute un type Ethernet Con-Name NEW_STATIC ifname ENO1234567 IP4 192.168.1.111 GW4 192.168.1.1,
N’est-ce pas plus pratique que d’utiliser SED pour extraire le fichier ifcfg-eth0 ?

5 N’importe quel langage traite les données, tout comme le scripting. Avec l’aide des objets, PowerShell est plus pratique que awk. Shenma csv, excel, xml, json
Tableau SQL, table NOSQL. HTML, etc.




Q : Comment PowerShell implémente-t-il [sed -i « s/quoi chercher/remplacer par /g »] ?
Un:
@(Get-Content filename) -remplacer 'aaa', 'bbb' | Nom de fichier Set-Content $aaa
C’est-à-dire ouvrir le fichier, le replacer, sauvegarder le fichier.



Q : Pourquoi de moins en moins de personnes utilisent-elles le SED sous Linux ?
Un:
Argument 1 : AWK peut remplacer SED, mais SED ne peut pas remplacer AWK.
Sed, c’est-à-dire, il suffit de trouver la substitution. AWK a pour et autres moyens de mettre en œuvre des traitements complexes.

Argument 2 : AWK utilise le régulier standard, et le régulier de sed est le même que celui de sed, mais les parties sont différentes.
Apprendre le SED signifie que deux ensembles de normes régulières incompatibles dans le cerveau s’affrontent.



Q : Donc il est juste d’apprendre AWK ?
Un:
Apprendre PowerShell est plus facile que d’apprendre AWK.
PowerShell utilise [split puis split], [if et if], where-object, string.substing(), string[-3], etc.
Décomposez le problème de la chaîne couche par couche. Plus simple que l’awk classique.




Q : Les pipelines et AWK peuvent-ils être utilisés dans PowerShell ?
Un:
On peut appeler awk dans PowerShell, exactement comme dans Bash. Les anciens arts martiaux sont entièrement Turin.



Q : Comment implémenter la fonction [awk '{print $3}'] dans PowerShell ?
Un:
($line -split « \s+|\t+ ») [0] #第一行
($line -split « \s+|\t+ ») [2] #第三行       

Get-Content /xxx/yyy.txt | foreach-object {$_.split()[2]} #awk '{print $3}'


Q : Comment implémenter la fonction [fichier awk -f a.awk] en utilisant PowerShell ?
Un:
Essentiellement, il s’agit d’une fonction de filtrage qui utilise un tuyau. Dans PowerShell, cela s’appelle un filtre ou un filtre.
PowerShell prend en charge la combinaison de commande + pipe + filtre. Comme dans Commandement 1 | Filtre 1 | Commandement 2 | Filtre 2 | Filtre 3
filtre filtre1
{
Fonctionnalité de type AWK
}





Q : Y a-t-il [xargs] dans PowerShell ?
Un:
La variable pipe utilisée dans le pipeline s’appelle [$psitem], et son alias est [$_].
PowerShell utilise foreach-object et $_ pour implémenter la fonction des xargs.





Q : Y a-t-il un numéro [<] [<<] dans PowerShell ?
Un:
Non.
Peut-être que le symbole [<] de droite à gauche est une pensée antihumaine. De nombreuses commandes dans PowerShell ont été modifiées en gauche vers droite.
Si le < get-random (1..100) n’est pas légal dans PowerShell, le cas légal devrait être l’objet d’entrée get-random (1..100), ou 1. 100 |obtenir-aléatoire
Moins de 1 % des commandes étranges [doit] reposer sur le symbole [<], ce qui peut être obtenu en appelant cmd dans PowerShell ou bash (PowerShell pour Linux) dans PowerShell.
Par exemple, $a = bash -x « commande 1 < commande 2 » #linux
Par exemple, $a = cmd -c « commande 1 < commande 2 » #cmd




Q : Y a-t-il une commande d’attente dans PowerShell ? Comment se connecter à un serveur SSH Linux depuis Windows avec PowerShell ?
Un:
1. Oui. Pour certains besoins de réponse de porte insolites et partielles, il existe des modules tiers.
2 Non. PowerShell n’utilise pas la commande attend, mais utilise une session.

Utilisez Powershell + bibliothèque client SSH + IP + port + nom d’utilisateur + mot de passe pour vous combiner en une connexion et envoyer des commandes à cette connexion. Le code est le suivant :
$connection 1 = Nouveau-SSHSession -Nom Ordinateur 1.1.1.1 -Port 22 -Identifiant aaaa #将提示输入密码
$to return = Invoke-SSHCommand -Command {cat /etc/issue} -SSHSession $Connection 1

Cette fonctionnalité standard telle que (MongoDB, mysql, ssh, ftp, http, telnet, etc.) possède des pilotes ou des modules. PS et. .netprogram, via la connexion du pilote, envoie des commandes et accepte les données.
Les avantages d’utiliser des modules ou des pilotes pour envoyer et recevoir [données] sont :
Les données seront converties en objet .net, qui sera ensuite converti en objet PS. Sinon, ce ne sont que des cordes, et les [arts martiaux orientés objet] de la secte PS sont tous inutiles.


Prenons MongoDB comme exemple, quels sont les avantages d’utiliser des modules ou des pilotes pour envoyer des commandes ? Qui parle ?
Je pense que les avantages sont :
1 Multithreading. Le thread en arrière-plan s’exécute et n’occupe pas le thread actuel.
2. Nous pouvons [nous déconnecter à mi-chemin] de la session à tout moment, exécuter d’autres codes PS, fonctions, et [revenir à la session à tout moment]. Les scripts sont plus flexibles à écrire et faciles à déboguer.
3session accueille plusieurs utilisateurs, et différents utilisateurs peuvent avoir différentes permissions de serveur.




Q : Existe-t-il un commandement de Su ou Runas dans PowerShell ? Comment exécuter la commande d’un autre utilisateur avec PowerShell ?
Un:
Non.
Dans PowerShell, exécuter des commandes natives Linux et des pipelines est facile. Par exemple :
chutaaa@127.0.0.1« Exécuté avec les privilèges AAA de l’utilisateur, commande xxx »  
sshpass -p user_password sshaaa@192.168.1.1



Q : Deux machines Linux avec SSHD ? Comment connecter et envoyer des commandes avec PowerShell ?
Un:
En plus de la méthode ci-dessus, vous pouvez également utiliser la méthode de création d’une nouvelle session Linux. (Connecté de Linux à un autre SSHD)
Note : Cette méthode nécessite d’éditer le fichier /etc/ssh/sshd_config. Ajoutez la ligne suivante
Powershell de sous-système powershell -sshs -NoLogo -NoProfile
Ensuite, redémarrez le serveur SSHD.
Le manuel détaillé est ici :
https://github.com/PowerShell/PowerShell/tree/master/demos/SSHRemoting

Commander:
$connect 2 = New-PSSession -HostName 127.0.0.1 -UserName user006 #手动输入密码或用-KeyFilePath option
invoke-command -session $connect 2 -scrip{filter}tBlock {new-item ~/ccc.txt}


Résumé:
Client Win, connecté au serveur Linux. Actuellement, des modules tiers sont nécessaires, bien sûr, il s’agit d’un module dans la bibliothèque officielle, il suffit d’utiliser le module d’installation PoshSSH.
Client Linux, connecté au serveur Linux. Vous devez modifier le fichier /etc/ssh/sshd_config.
Client Linux, connecté au serveur Win (serveur Link). Vous devez activer le service sur le serveur. Faites confiance au serveur sur le client.
Client Win, connecté au serveur Win. Vous devez activer le service sur le serveur. Faites confiance au serveur sur le client.


Q : Y a-t-il [grep] dans PowerShell ?
Un:
La commande select string est utilisée dans PowerShell.
Rien que du point de vue du codage, select-string=smart, grep=stupid + a un défaut évident :mrgreen :
Lorsqu’il y a un en-tête de liste de base, la chaîne de sélection reconnaît automatiquement le type d’encodage du fichier.
Lorsqu’il n’y a pas d’en-tête de liste de base, il n’est pas nécessaire de modifier l’environnement shell comme linux+grep, et il n’est pas nécessaire de sauvegarder les fichiers selon un certain code. Il suffit de spécifier le paramètre -encoding selon le codage du fichier.
Et grep ne possède pas cette fonction, c’est-à-dire qu’il y a un défaut évident : [impossible de spécifier le type de codage du fichier].
Bien sûr, grep n’est pas inutile, grep a certains paramètres, possède des fonctions uniques supplémentaires, la chaîne de sélection n’en a pas, c’est là que grep est plus fort que la chaîne de sélection.



Q : Y a-t-il une [évaluation] dans PowerShell ?
Un:
Utilisez Invoke-Expression pour exécuter des chaînes dans PowerShell.



Q : Y a-t-il un -f de queue dans PowerShell ? Il est possible de produire en temps réel les nouvelles lignes générées d’un fichier.
Un:
Obtenir-Contenu D :\a.txt -Queue 10 -CompteLecture 0 -Attends



Q : Je veux utiliser un petit clavier et aussi un terminal 256 couleurs, alors comment doit-on configurer xshell ?
Un:
Terminal --- Type de Terminal --- [mastic-256color] ou [export TERM=putty-256color]
Terminal --- clavier --- par défaut ou Linux.

Boîte Eterm-256color
Gnome-256Color ne fonctionne pas
Konsole-256Color ne fonctionne pas
Pâte-256 couleur
PowerShell Missionary Partage Original 2017-02-15
RXVT-256COLOR ne fonctionne pas
Screen-256Color ne fonctionne pas
ST-256COLOR
Le VTE-256COLOR ne fonctionne pas
Xterm-256Color ne fonctionne pas
Le même principe s’applique au SecureCRT




Q : Qui est le plus puissant, shell ou python ?
Un:
Chacune a ses propres forces et peut se compléter. Mais ils ne sont pas complémentaires. Plus d’informations à ce sujet ci-dessous.


Q : Pourquoi la version Linux de PowerShell est-elle plus adaptée au personnel d’exploitation et de maintenance pour écrire des scripts ? (Comparé à la version Linux de Python)
Un:
1 Python propose des fonctions orientées objet, et la version Linux de PowerShell est disponible.

2 Python n’a pas de ligne de commande.
2.1 Python ne peut pas être le terminal par défaut pour SSH, mais PowerShell pour Linux le peut. Voir le chapitre : « Deux machines Linux avec SSD ? Comment connecter et envoyer des commandes avec PowerShell ? 》
2.2 Utiliser des commandes shell (awk, grep, etc.) en python est très fastidieux. Il faut ajouter beaucoup de syntaxe et de code py. PowerShell pour Linux exécute les commandes awk comme bash.

3 Python n’a pas de tuyaux. Il est très difficile de passer des valeurs entre n [programmes en ligne de commande]. Il faut ajouter beaucoup de syntaxe et de code py. La version Linux de PowerShell propose des pipelines, et exécuter des commandes awk est la même chose que bash.

4 Python a la version 2, la version 3 n’est pas compatible avec le cancer ! Question. PowerShell pour Linux n’a pas ce problème.
4.1 Ces questions contiennent des problèmes de codage.

Conclusion :
Les commandes shell comme GREP ne sont pas bonnes pour le support du codage, pas aussi efficaces que les problèmes de codage de la version 4.1 ci-dessus dans PowerShell à la maison. Plus les 2,3 points ci-dessus.
Cela met les gens Linux mal à l’aise, mais très peu de gens utilisent des commandes externes dans py. [bibliothèque de commandes py] et [commande shell] sont mortes et ne peuvent pratiquement plus se compléter. La version Linux de PS est différente.




Q : Pourquoi dit-on que PowerShell est meilleur que Shell ?
Un:
1 PowerShell est orienté objet, et les propriétés retournent les données directement disponibles. C’est beaucoup moins courant que dans les langages de script de caractères (bat, shell) qui nécessitent des déductions de chaînes.
Né avec moins [contenu dont il faut fuir].
2 Substitution par recherche de chaînes, il existe des méthodes dans PowerShell qui ne nécessitent pas d’échapper, dans la classe .NET. Par exemple :
[chaîne]$a = 'abc\\def'
$b = $a.replace('\\','when')
#返回 : [ABC en tant que déf]
Pour déterminer si une propriété intellectuelle est légitime, vous pouvez utiliser la méthode TryParse() dans la classe IPAddress.
En résumé, mon conseil est d’utiliser autant de méthodes .net que possible, de réduire le nombre de réguliers possible, ou simplement d’utiliser des classiques simples.
3 PowerShell utilise ['] comme symbole d’échappement. ['] est moins couramment utilisé que [\] et beaucoup moins utilisé comme symbole d’évasion.
3.1 Lors de l’écriture de scripts de base de données, il y a plus de conflits de ['].
Par exemple, ['table'] entrera en conflit avec ['t], comme ['biao'] entre en conflit avec ['b], et je l’ai résolu plus tard avec ['table'].
recherche et remplacement de chaînes 4 ps, possède un moteur classique, est compatible avec Linux, et utilise également [\] comme échappement.
Cependant, il existe une fonction d’échappement spéciale de chaîne [[Regex] ::Escape()], qui est d’abord échappée puis trouvée et remplacée, et le code est très lisible.
$Original chaîne avant l’évasion = '\+\&*|]'
$escaped chaîne = [regex] ::échapper($original chaîne avant d’échapper)
-------------
Exemples d’écriture
[chaîne]$a = 'abc\\def'
$Original chaîne avant l’évasion = '\'
$Escaped Chaîne = [Regex] ::Évasion($Original Chaîne avant l’Évasion) #[\]--->[\\]
$b = [Regex] ::replace($a,$Escaped String, 'When')
$b #返回 [ABC Dangdang DEF]
-------------
5 coups et accrochages, chacun a son propre pour, chacun a sa propre échappatoire. Combinés, il est facile pour A d’affecter B, et A avale B.
Il est également facile d’avoir des problèmes en rencontrant ['], ["], [\], et [*].
C’est comme porter deux couches de pantalons longs, on tire une couche, et l’autre couche bouge aussi, il faut se soucier de leur compatibilité.
C’est un cancer et difficile à résoudre.
Mais en cas de pincé, ce problème peut aussi être évité dans une certaine mesure. Cela nécessite que la personne qui a écrit la coquille corrige le problème de puanteur.
[Mettez le code awk dans le fichier .awk séparément, pas sur la ligne de commande]
PowerShell n’a pas ce problème, mets-le en ligne de commande, mets-le dans le script, ça n’a aucun effet.








Précédent:.net/C# utilise les Attributs pour implémenter une AOP simple
Prochain:.net/c# Scanner de ports ouverts IP rapides v2.0 Version ultime
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com