Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1453 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2  3  4  5  6  7  8
Auteur Sujet :

Powershell[Topic Unik]

n°2451261
true-wiwi
Posté le 16-07-2023 à 10:04:40  profilanswer
 

Reprise du message précédent :
Pas moyen de lancer une VM ?


---------------
It's a simple mistake to make, to create love and to fall.
mood
Publicité
Posté le 16-07-2023 à 10:04:40  profilanswer
 

n°2451262
MilesTEG1
Posté le 16-07-2023 à 10:20:35  profilanswer
 

true-wiwi a écrit :

Pas moyen de lancer une VM ?


C’est à dire ?
Je peux utiliser docker.


---------------
Mes ventes : [FeedBack] http://forum.hardware.fr/hfr/Achat [...] 4599_1.htm
n°2460252
isanaud
Posté le 15-12-2023 à 15:54:30  profilanswer
 

savez vous comment en powershell  lancer un script qui contient et reboot, et qui reprend son éxécution après le reboot.

n°2460254
lestat67se​l
:-)
Posté le 15-12-2023 à 16:10:10  profilanswer
 

Lance depuis une autre machine en faisant un reboot à distance

n°2460255
gamer-fou
AHHHHHH§§§!!!
Posté le 15-12-2023 à 16:14:18  profilanswer
 

isanaud a écrit :

savez vous comment en powershell lancer un script qui contient et reboot, et qui reprend son éxécution après le reboot.


lestat67sel a écrit :

Lance depuis une autre machine en faisant un reboot à distance


Avec Restart-computer -wait -for PowerShell :jap:

 

Sinon via la clé de registre runonce

Message cité 1 fois
Message édité par gamer-fou le 15-12-2023 à 16:15:38

---------------
Music is the most high!
n°2460256
isanaud
Posté le 15-12-2023 à 16:48:16  profilanswer
 

gamer-fou a écrit :


Avec Restart-computer -wait -for PowerShell :jap:
 
Sinon via la clé de registre runonce


il faut absolement un workflow ?

n°2460258
gamer-fou
AHHHHHH§§§!!!
Posté le 15-12-2023 à 17:03:28  profilanswer
 

isanaud a écrit :


il faut absolement un workflow ?


?


---------------
Music is the most high!
n°2460259
Je@nb
Kindly give dime
Posté le 15-12-2023 à 17:25:16  profilanswer
 

Tu crées une valeur dans HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run qui exécute powershell avec ton script en paramètre et après c'est à ton script de gérer pour savoir s'il vient de se lancer ou si c'est une reprise post reboot.
Tu peux gérer ça soit en checkant que les actions précédentes ont été effectuées ou  tu te mets des flags pour savoir où tu en es (fichier temporaire, clé de registre etc.)
 
oublie pas de supprimer la clé à la fin de ton script ou en cas d'erreur (et pareil supprime ton fichier/clé de tracking d'état)

n°2460260
gamer-fou
AHHHHHH§§§!!!
Posté le 15-12-2023 à 17:29:08  profilanswer
 

Je@nb a écrit :

Tu crées une valeur dans HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run qui exécute powershell avec ton script en paramètre et après c'est à ton script de gérer pour savoir s'il vient de se lancer ou si c'est une reprise post reboot.
Tu peux gérer ça soit en checkant que les actions précédentes ont été effectuées ou tu te mets des flags pour savoir où tu en es (fichier temporaire, clé de registre etc.)

 

oublie pas de supprimer la clé à la fin de ton script ou en cas d'erreur (et pareil supprime ton fichier/clé de tracking d'état)


L'avantage de runonce c'est que ca s'auto-supprime après la reprise :jap:


---------------
Music is the most high!
n°2460261
Je@nb
Kindly give dime
Posté le 15-12-2023 à 17:34:32  profilanswer
 

Ouais mais me suis dit que c'est mieux de gérer la suppression de la clé dans le script pour gérer les cas d'erreur :D

mood
Publicité
Posté le 15-12-2023 à 17:34:32  profilanswer
 

n°2460307
isanaud
Posté le 17-12-2023 à 07:02:57  profilanswer
 

Et comment vous gérez que la session s'ouvre au reboot  [:eraser17]

n°2460308
lestat67se​l
:-)
Posté le 17-12-2023 à 07:44:54  profilanswer
 

Autologon avec login/MDP en clair dans le registre :o

n°2460309
rorosk
Posté le 17-12-2023 à 10:48:58  profilanswer
 

isanaud a écrit :

Et comment vous gérez que la session s'ouvre au reboot  [:eraser17]

De mémoire, pour exécuter le script sans nécessiter l'ouverture d'une session, il me semble qu'une astuce était de créer une tache planifiée avant le reboot, c'est ce que faisait le module PSWindowsUpdate par exemple pour continuer son exécution après un redémarrage suite à une mise à jour. Je ne sais pas si il existe une solution moins chiante.
 

n°2460310
MilesTEG1
Posté le 17-12-2023 à 11:09:37  profilanswer
 

rorosk a écrit :

De mémoire, pour exécuter le script sans nécessiter l'ouverture d'une session, il me semble qu'une astuce était de créer une tache planifiée avant le reboot, c'est ce que faisait le module PSWindowsUpdate par exemple pour continuer son exécution après un redémarrage suite à une mise à jour. Je ne sais pas si il existe une solution moins chiante.
 


Je suis preneur d’une méthode pour le Windows update sans que la session ne soit connecté.
Histoire que les maj soient faites quand même toutes seules  :jap:


---------------
Mes ventes : [FeedBack] http://forum.hardware.fr/hfr/Achat [...] 4599_1.htm
n°2460312
gamer-fou
AHHHHHH§§§!!!
Posté le 17-12-2023 à 13:45:06  profilanswer
 

Je dirais planifier la tache avec un trigger "at startup" et Local System comme compte d'exécution? [:gratgrat]


---------------
Music is the most high!
n°2460318
lestat67se​l
:-)
Posté le 17-12-2023 à 17:45:31  profilanswer
 

C'est quoi le contexte de votre besoin la ?
Parce que configuré sur du  win serveur, win update ça s'exécute sans ouverture de session (au contraire une session resté ouverte va empêchera reboot)

n°2460357
isanaud
Posté le 18-12-2023 à 14:04:36  profilanswer
 

Pour mon projet, c'est de faire un équivalent de MDT qui ne fonctionnement plus très bien depuis le passage à win11.  
Un script qui enchaîne les installations d'applications.
J'ai un script powershell par appli, avec une cinquantaine d'applis en tout (salle de TP)
 

n°2469387
CorB3n
Posté le 03-05-2024 à 20:36:34  profilanswer
 

Hello à tous
On m’a transféré vers vous, j’ai une question : y a t’il un moyen via PS de traiter l’importation de données CSV (typiquement info01,xxx) dans un fichier PowerPoint (ou info01 sera remplacé par xxx), de la simple importation / remplacement de texte via un script à la con ??
Merci :jap:


---------------
CS-View et les chouals vous invitent à consulter la charte du site.
n°2469388
true-wiwi
Posté le 03-05-2024 à 20:49:45  profilanswer
 

Oui.

 

Ça peut être cool à faire pour t'entraîner et pas si long à écrire.


---------------
It's a simple mistake to make, to create love and to fall.
n°2469390
CorB3n
Posté le 03-05-2024 à 20:54:06  profilanswer
 

true-wiwi a écrit :

Oui.
 
Ça peut être cool à faire pour t'entraîner et pas si long à écrire.


En sachant que je pars de 0, voir -10 en dev ? Je suis quand même pas le seul à avoir eu cette idée sur internet quand même :o je suis apte à modifier un fichier mais de À à Z je vais clamser  :lol:


---------------
CS-View et les chouals vous invitent à consulter la charte du site.
n°2469391
true-wiwi
Posté le 03-05-2024 à 20:59:45  profilanswer
 

Tu commences en écrivant l'algo :

 

Ouvrir un fichier ppt
Chercher le nom du fichier
Remplacer le nom par un autre

 

Et tu regardes comment on peut écrire le code associé.


---------------
It's a simple mistake to make, to create love and to fall.
n°2469392
doum
Mentalita nissarda
Posté le 03-05-2024 à 21:04:29  profilanswer
 

j'ai absolument pas compris ce que tu cherches a faire

n°2469394
arnuche
Posté le 03-05-2024 à 21:20:49  profilanswer
 

Tu veux remplacer du texte à la volée sans créer de nouveaux fichiers ?
Sinon je t'aurais proposé d'en créer de nouveaux contenant la modif puis il n'y aurait plus qu'à les ouvrir dans PowerPoint.


Message édité par arnuche le 03-05-2024 à 21:21:42
n°2469395
CorB3n
Posté le 03-05-2024 à 21:30:37  profilanswer
 

:D quand un débutant explique sa problématique  :pt1cable:  
 
J’ai un fichier PPTX avec des encarts textes et des mots : info01; info02… info60 qui s’étalent sur 4 pages.
 
À côté de ça je fais remplir un fichier Excel à des personnes avec 60 lignes d’informations que je recoupe dans une autre page, comprenant info01=ligne 1… info60=ligne 60.
 
Cette page je l’enregistre en CSV de façon à formater en info01;ligne 1… jusqu’à la ligne 60, et via l’app que j’ai trouvé (Power Point Batch copy paste) je mets les 2, je valide et ça importe les données CSV dans le PPTX.
 
Je ne serai pas la si l’app permettait de régler le format de date en version FR et pas US, mais j’ai 6-7 dates dans le CSV et c’est casse boules comme pas possible de ne avoir de réglages concernant cette option.
 
Voilà où j’en suis, j’ai appris à créer la page Excel abec l’ensemble des formules nécessaires mais la ça dépasse mes compétences  :heink:


---------------
CS-View et les chouals vous invitent à consulter la charte du site.
n°2469396
true-wiwi
Posté le 03-05-2024 à 21:45:18  profilanswer
 

Ah.

 

On peut pas faire un import range dans un Excel depuis un ppt ?


---------------
It's a simple mistake to make, to create love and to fall.
n°2469397
CorB3n
Posté le 03-05-2024 à 21:50:29  profilanswer
 

true-wiwi a écrit :

Ah.
 
On peut pas faire un import range dans un Excel depuis un ppt ?


Je précise que les mots infoxx sont discriminés un peu partout dans les blocs de texte du PPT
En tout cas j’ai creusé comme pas possible y’a pas de solution via la suite office pour ce genre de chose. Ou t’importe le tableau complet, ou rien :/


---------------
CS-View et les chouals vous invitent à consulter la charte du site.
n°2469398
true-wiwi
Posté le 03-05-2024 à 21:53:38  profilanswer
 

En python j'aurais une vague idée en important la liberté csv et withopenfile. Doit y avoir un équivalent sous ps.


---------------
It's a simple mistake to make, to create love and to fall.
n°2469400
gamer-fou
AHHHHHH§§§!!!
Posté le 03-05-2024 à 23:28:36  profilanswer
 

Traiter un csv c'est le b-a-ba, par contre modifier un ppt c'est plus exotique mais ça doit pouvoir se faire comme avec les autres formats de fichiers office.
Une piste ici : https://devblogs.microsoft.com/scri [...] entations/


---------------
Music is the most high!
n°2469404
CorB3n
Posté le 04-05-2024 à 07:47:10  profilanswer
 

À chaque problème sa solution, n’ayant aucune connaissance dans le domaine j’ai (désolé pour les devs qui me détesteront) utilisé chatgpt pour me coder le script en python.
Python bien installé, tout semble ok sauf qu’il ne remplace aucun mot dans le PPT  :o pourtant je lui ai fait retravailler 10x le code en lui disant que les termes à gauche de la virgule dans le CSV n’étaient pas remplacés par ceux à droite, situés dans le PPT (le bougre comprend vraiment bien mon langage néophyte).
Si quelqu’un pouvait me dire où ça coince, j’ai mis le script ici ainsi qu’une capture d’écran du csv au cas où ce soit toujours mal compris : lien.
 
Je ferai mieux de poster ça dans la catégorie python j’imagine  :ange:  


---------------
CS-View et les chouals vous invitent à consulter la charte du site.
n°2469409
Je@nb
Kindly give dime
Posté le 04-05-2024 à 09:35:11  profilanswer
 

Perso j'aurai plutôt fait une macro dans l'excel pour générer le ppt

n°2469411
CorB3n
Posté le 04-05-2024 à 09:53:15  profilanswer
 

Je suis preneur de toute solution, même si on s'écarte de PowerShell :jap:
 
 
Édit : plus de cassage de tête pour personne, j’arrive à importer un XLS que j’ai formaté sous forme de colonne et du coup tout fonctionne à 100% (formatage de date, virgules qui font bugger, tout est ok). Mission accomplie !


Message édité par CorB3n le 04-05-2024 à 11:23:20

---------------
CS-View et les chouals vous invitent à consulter la charte du site.
n°2473406
MilesTEG1
Posté le 26-06-2024 à 12:52:05  profilanswer
 

Salut,
J'ai besoin d'aide pour faire un petit programme en Powershell.
Je cherche à construire une liste de serveurs avec 3 propriétés pour chacun :
- Nom
- Adresse IP
- Type de serveur
 
Chaque propriété est une chaine de caractère.
 
 
En gros, je veux faire ceci (algorythme) :
 

Définition de la variable Liste_des_serveurs (c'est là que je ne vois pas comment faire) ;
 
Liste_des_serveurs = add ( "Server 1" "192.168.2.2" "NUC-PVE)
Liste_des_serveurs = add ( "Server 2" "192.168.2.3" "VM-PVE)
Liste_des_serveurs = add ( "Server 3" "192.168.2.4" "LXC-PVE)
 
 
Pour chaque serveur dans Liste_des_serveurs, faire ce qui suit
- connexion SSH
- Lancer une commande SSH (un script bash présent sur le serveur)


 
 
Merci pour votre aide :)  
 
 
 


---------------
Mes ventes : [FeedBack] http://forum.hardware.fr/hfr/Achat [...] 4599_1.htm
n°2473409
Je@nb
Kindly give dime
Posté le 26-06-2024 à 13:08:11  profilanswer
 

Ce serait bien de relire les règles de la catégorie :o
 
A toi de proposer un script et d'indiquer où tu bloques...
On va pas faire le script à ta place...

n°2473412
MilesTEG1
Posté le 26-06-2024 à 13:16:50  profilanswer
 

Je@nb a écrit :

Ce serait bien de relire les règles de la catégorie :o
 
A toi de proposer un script et d'indiquer où tu bloques...
On va pas faire le script à ta place...


Je ne cherche pas le script complet, juste m'indiquer comment faire ma variable qui contient tous les serveurs sous-forme de "liste" ?
Le reste, je saurais me débrouiller.
 
Mais pour construire ma liste de serveur je ne vois pas...
J'avais pensé à une CLASS, mais je ne vois pas comment ajouter des éléments identiques...
 

Code :
  1. # Définition d'une classe pour stoker les informations sur les serveurs
  2. class SERVER_class {
  3.     [ValidateNotNull()][string]$Name
  4.     [ValidateNotNull()][string]$Ip_or_Domain
  5.     [string]$Type_Server
  6.     SERVER_class(
  7.         [string]$Name,
  8.         [string]$Ip_or_Domain,
  9.         [string]$Type_Server
  10.     ) {
  11.         $this.Name = $Name
  12.         $this.Ip_or_Domain = $Ip_or_Domain
  13.         $this.Type_Server = $Type_Server
  14.     }
  15. }
  16. # Création de notre classe serveur avec les infos associées
  17. $Liste_des_serveurs = [SERVER_class]::new(
  18.     # Nom
  19.     "Server 1",
  20.     # Adresse IP
  21.     "192.168.2.2",
  22.     # Type de server
  23.     "NUC - PVE"
  24. )
  25. $Liste_des_serveurs = [SERVER_class]::new(
  26.     # Nom
  27.     "Server 2",
  28.     # Adresse IP
  29.     "192.168.2.3",
  30.     # Type de server
  31.     "VM - PVE"
  32. )
  33. Write-Host "Contenu de la variable CLASS`n$" -ForegroundColor "Cyan"
  34. Write-Host ($Liste_des_serveurs | Format-Table | Out-String) -ForegroundColor "Cyan"


 
Forcément, ainsi, ça me supprimer la première entrée, c'est prévisible.
mais comme je le répète, je ne vois pas comment faire.


---------------
Mes ventes : [FeedBack] http://forum.hardware.fr/hfr/Achat [...] 4599_1.htm
n°2473418
gamer-fou
AHHHHHH§§§!!!
Posté le 26-06-2024 à 13:51:14  profilanswer
 

C'est un array dont tu as besoin, et plus précisément d'un array d'objets.
Un lien parmi d'autres : https://www.varonis.com/blog/powershell-array


---------------
Music is the most high!
n°2473448
doum
Mentalita nissarda
Posté le 26-06-2024 à 17:13:00  profilanswer
 

pk tu te fais chier avec un tableau créé dans ton script ?

 

fait un csv avec 3 colonnes , bcp moins chiant ensuite en plus a editer

 

et ensuite tu boucles tes entrées CSV

 

$servers = import-csv chemin

 

foreach ($server in $servers) {
ssh $server.ip

 

}

 

etc

Message cité 1 fois
Message édité par doum le 26-06-2024 à 17:15:07
n°2473501
gamer-fou
AHHHHHH§§§!!!
Posté le 26-06-2024 à 20:55:11  profilanswer
 

doum a écrit :

pk tu te fais chier avec un tableau créé dans ton script ?

 

fait un csv avec 3 colonnes , bcp moins chiant ensuite en plus a editer

 

et ensuite tu boucles tes entrées CSV

 

$servers = import-csv chemin

 

foreach ($server in $servers) {
ssh $server.ip

 

}

 

etc


Ça dépend de la source des données effectivement, si ça vient d'une api tu vas pas passer par un csv mais si c'est pour les coder dans le script c'est évidement bien plus propre de passer par un json ou un csv :jap:


---------------
Music is the most high!
n°2473508
doum
Mentalita nissarda
Posté le 26-06-2024 à 21:05:12  profilanswer
 

gamer-fou a écrit :


Ça dépend de la source des données effectivement, si ça vient d'une api tu vas pas passer par un csv mais si c'est pour les coder dans le script c'est évidement bien plus propre de passer par un json ou un csv :jap:


 
ah ben la y'a pas d'API dans sa demande/exemple, les données sont mise en dur dans ses variables c'est pour ca que je vois pas l'interet :D

n°2473515
MilesTEG1
Posté le 26-06-2024 à 21:26:04  profilanswer
 

C'est pas bête ça de passer par un CSV... ou un JSON.
Mais le CSV sera plus facile à créer, notamment avec VSCode.
 
Sinon, j'ai réussi à faire ce que je voulais avec le codage en dur :

Code :
  1. #######################################################################################
  2. ################# Script pour mettre à jours les serveurs depuis macOS ################
  3. #######################################################################################
  4. # Définition d'une classe pour stoker les informations sur les serveurs
  5. class SERVER_class {
  6.     [ValidateNotNull()][string]$Name
  7.     [ValidateNotNull()][string]$Ip_or_Domain
  8.     [ValidateSet($true, $false)][bool]$Active
  9.     [string]$Type_Server
  10.     SERVER_class(
  11.         [string]$Name,
  12.         [string]$Ip_or_Domain,
  13.         [bool]$Active,
  14.         [string]$Type_Server
  15.     ) {
  16.         $this.Name = $Name
  17.         $this.Ip_or_Domain = $Ip_or_Domain
  18.         $this.Active = $Active
  19.         $this.Type_Server = $Type_Server
  20.     }
  21. }
  22. # Création de la liste des serveurs (pour le moment vide)
  23. $Liste_des_serveurs = New-Object Collections.Generic.List[SERVER_class]
  24. # Ajout du 1er serveur
  25. $Liste_des_serveurs.Add(
  26.     [SERVER_class]::new(
  27.         "PVE Nuc Geekom Mini IT13", # Nom             
  28.         "192.168.2.194",            # Adresse IP       
  29.         $true,                      # Actif : oui ou non
  30.         "NUC - PVE"                 # Type de server
  31.     )
  32. )
  33. # Ajout du 2nd serveur
  34. $Liste_des_serveurs.Add(
  35.     [SERVER_class]::new(
  36.         "PVE Nuc Geekom A7", # Nom             
  37.         "192.168.2.196",            # Adresse IP       
  38.         $true,                      # Actif : oui ou non
  39.         "NUC - PVE"                 # Type de server
  40.     )
  41. )
  42. Write-Host "Contenu de la variable CLASS`n$" -ForegroundColor "Cyan"
  43. Write-Host ($Liste_des_serveurs | Format-Table | Out-String) -ForegroundColor "Cyan"


 
 
Je vais voir pour faire une version avec CSV.


---------------
Mes ventes : [FeedBack] http://forum.hardware.fr/hfr/Achat [...] 4599_1.htm
n°2473523
Je@nb
Kindly give dime
Posté le 26-06-2024 à 21:41:17  profilanswer
 

Il y a 0 intérêt de faire une classe pour ce genre de besoin de juste stocker de la donnée...
Comme suggéré par gamer-fou, un tableau de pscustomobject fait le job

n°2473535
MilesTEG1
Posté le 26-06-2024 à 22:34:33  profilanswer
 

Je@nb a écrit :

Il y a 0 intérêt de faire une classe pour ce genre de besoin de juste stocker de la donnée...
Comme suggéré par gamer-fou, un tableau de pscustomobject fait le job


Je voulais voir si ça fonctionnait :)  
 
Version avec import du CSV :

Code :
  1. # Voir : https://learn.microsoft.com/fr-fr/p [...] rshell-7.4
  2. $Liste_des_serveurs = Import-Csv -Path "$PSScriptRoot/liste-servers.csv" -Delimiter ';' -Encoding UTF8
  3. Write-Host "Contenu de la variable importée via CSV" -ForegroundColor "Magenta"
  4. Write-Host ($Liste_des_serveurs | Format-Table | Out-String) -ForegroundColor "Magenta"


 
Par défaut, ça semble prendre la 1ère ligne comme une ligne d'en-tête.
 
 
Voilà la sortie de mon bout de script :
https://i.imgur.com/AHKWCdfl.png
 
 
Le CSV édité dans VSCode:  
https://i.imgur.com/nplTOEgl.png


---------------
Mes ventes : [FeedBack] http://forum.hardware.fr/hfr/Achat [...] 4599_1.htm
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  6  7  8

Aller à :
Ajouter une réponse
 

Sujets relatifs
Créer un lien hypertexte en powershellRemplacer une lettre dans .txt POWERSHELL
Comment faire un saut à la ligne PowershellRécupérer la date du résultat [POWERSHELL]
[POWERSHELL] Récupérer les utilisateurs sur un serveur TSE[Powershell] Récupérer SID
Faire des scripts quant ta 0 connaissance =( PowerShell[PowerShell] Script de colorisation de syllabes
Powershell - unrestricted mais erreur de droits d'execution[Powershell] recuperer un argument
Plus de sujets relatifs à : Powershell[Topic Unik]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR