Aller au contenu

Paramètre avec virgule, script batch, GPO


xakan

Messages recommandés

Bonjour tout le monde!

 

Je viens aujourd'hui chercher votre aide car je suis confronté à un petit soucis.

 

Via une GPO, je dois déployer un script batch qui prend un seul et unique paramètre. Cependant, ce paramètre contient une virgule. Il est donc considéré comme deux paramètres distincts.

 

Pour illustrer mon propos, disons que mon paramètre est xakan,france.

 

Lorsque je passe cela en paramètre, il me considère les deux paramètres xakan et france, mais pas un seul. J'ai également essayé avec "xakan,france" mais il me prenait comme paramètres "xakan et france". De même avec 'xakan,france'.

 

J'ai bien pensé à prendre les deux paramètres puis les concaténer en ajoutant la virgule, mais impossible, car dès lors que le paramètre devra être changé, le script ne tiendra plus la route.

 

Quelqu'un a-t-il une idée de comment je peux passer ça?

 

Merci d'avance,

 

Xakan.

Lien vers le commentaire
Partager sur d’autres sites

Je peux passer ça en paramètre de la GPO?

 

Set x=xakan,france ?

 

Pas de soucis pour le script exécuté en tant qu'administrateur, il est exécuté au boot de la machine, avant l'ouverture de session, donc de ce côté-là c'est ok.

 

Merci en tout cas pour ton aide ;)

Lien vers le commentaire
Partager sur d’autres sites

Pourquoi tu le fait via un script?

Tu peux créer une GPO pour ca, non? A moins qu'un besoin spécifique ne soit nécessaire?

 

Si tu créer une GPO de type Ordinateur, en sélectionnant l'utilisateur, puis mettre à jour, et définir le mot de passe?

A chaque reboot, le mot de passe sera mis à jour quoiqu'il arrive, même si l'utilisateur l'a modifié par exemple.

Tu peux nous expliquer les besoins exacts histoire qu'on puisse te proposer le plus adapté?

Lien vers le commentaire
Partager sur d’autres sites

Je sais que cette GPO est en théorie réalisable directement, cependant le soucis est que suite à des problèmes de sécurité, microsoft a bloqué cette gpo.

 

Le but est de fixer le mot de passe d'un utilisateur sur chaque poste, sans que le mot de passe soit visible en clair dans le script.

Lien vers le commentaire
Partager sur d’autres sites

Je peux passer ça en paramètre de la GPO?

 

Set x=xakan,france ?

 

Pas de soucis pour le script exécuté en tant qu'administrateur, il est exécuté au boot de la machine, avant l'ouverture de session, donc de ce côté-là c'est ok.

 

Merci en tout cas pour ton aide ;)

 

ben tu dis que tu fais un batch donc tu peux déclarer une variable au début de ton batch et il fonctionnera

 

Je sais que cette GPO est en théorie réalisable directement, cependant le soucis est que suite à des problèmes de sécurité, microsoft a bloqué cette gpo.

 

 

je comprends pas bien cette ligne, peux-tu nous éclairer sur l'infrastructure sur laquelle tu travail stp?

 

 

 

Le but est de fixer le mot de passe d'un utilisateur sur chaque poste, sans que le mot de passe soit visible en clair dans le script.

 

tu veux fixer le mdp d'un seul utilisateur sur tous les postes ou de chaque utilisateur sur leur poste?

 

essai de nous préciser la problèmatique :

- infra de travail

- précise la mission que tu dois accomplir avec tous les paramètres

Lien vers le commentaire
Partager sur d’autres sites

Je sais que cette GPO est en théorie réalisable directement, cependant le soucis est que suite à des problèmes de sécurité, microsoft a bloqué cette gpo.

 

Le but est de fixer le mot de passe d'un utilisateur sur chaque poste, sans que le mot de passe soit visible en clair dans le script.

Cette GPO a été bloquée? C'est sur ca? J'en ai jamais entendu parlé.

Ca été bloqué sur tous les AD ou juste certains OS serveurs?

Lien vers le commentaire
Partager sur d’autres sites

Bonjour à vous!

 

Alors pour l'explication, en fait je dois définir le mot de passe Administrateur local de l'ensemble des postes, via GPO, avec un mot de passe unique. L'AD est sur un Windows Server 2008. Les postes vont de XP (pas bien je sais) à 8. Voilà pour poser ma problématique.

 

Pour ce qui est de ce passage :

 

Cette GPO a été bloquée? C'est sur ca? J'en ai jamais entendu parlé.

Ca été bloqué sur tous les AD ou juste certains OS serveurs?

La réponse traine par là : http://support.microsoft.com/kb/2962486/fr?wa=wsignin1.0

Je sais qu'il y a des moyens de contournement, j'ai bien lu le lien. Mais le souci est que XP a un peu de mal avec PowerShell quand même...

 

Du coup je comptais exécuter un script au démarrage, avec la commande net user nom_du_compte_admin_local mot_de_passe.

 

Cependant, je ne veux pas que le mot de passe soit comme ça en clair dans le script, pour que les utilisateurs curieux ou avec un peu de cultures ne puissent pas le voir. Je pensais donc le passer en paramètre de mon script.

 

Le soucis est que lorsque je le passe en paramètre, il me prend la virgule comme un séparateur de paramètre, et donc un paramètre incomplet.

 

J'espère avoir été clair par rapport à vos questions, et merci de votre aide.

Lien vers le commentaire
Partager sur d’autres sites

bon, j'ai fais des testes et je n'y arrive pas... :(

 

tu ne peux pas changer le MDP d'un compte local sans que le script se lance en admin donc login et mot de passe admin du domaine :)

 

dans mon teste, j'ai créé un script :

 

@echo off

 

set  x=xakan,france

net user admin %x%

 

que j'ai rangé sur le serveur, partagé le dossier et mis toutes les autorisations pour l'utilisateur du domaine sur dossier et sur fichier, j'ai créé une GPO liée à l'UO de mes utilisateurs où j'ai donné le chemin du script :

\\serv\dossier$\script.bat

 

comme je te le disais, en mettant ton mdp sous une variable, la virgule ne dérange plus ;)

Lien vers le commentaire
Partager sur d’autres sites

Si je me trompe pas, les GPO se lancent en admin.

 

ET en mettant "net user ADMINISTRATEUR au lieu de admin ?

net user nom_utilisateur ==========> dans mon teste il s'appelle admin :)

si aucun compte ne s'appelle ADMINISTRATEUR ça ne merchera pas ;)

 

j'ai testé ma GPO en modifiant mon script pour voir si je n'avais pas fais d'erreur, ça fonctionne avec un script de montage de lecteur réseau donc ça vient bien du fait du lancement en admin.

 

même si tu lance la commande depuis le compte administrateur, tu dois lancer ton script en admin, si tu lance par CMD tu dois executer cmd en admin, à mon avis, c'est parce que ça touche à l'aspect sécurité de windows.

 

je pense qu'il va falloir le lancer en 2 fois, un premier script va lancer le second avec la commande RunAs et Sanur qui devraient faire en sorte que le second soit lancé en admin sans demander le login et mdp, je cherche pour voir si c'est possible :)

Lien vers le commentaire
Partager sur d’autres sites

Salut!

 

Merci de prendre toujours du temps pour m'aider ;)

 

Par contre dans ce que tu me dis, il y a un soucis. Le script reste accessible à l'utilisateur, et il pourra donc voir le mot de passe en clair. Je ne souhaite pas que le mot de passe soit dans le script, je veux vraiment le passer en paramètre du script dans la GPO.. Et c'est là que je sèche...

 

Je ne sais pas si tu vois ce que je veux dire?

Lien vers le commentaire
Partager sur d’autres sites

Bonjour à tous,

 

Et pourquoi pas un script VBS dans ce goût là :

Set WshNetwork = WScript.CreateObject("WScript.Network")
strComputer = "."
Set objUser = GetObject("WinNT://" & strComputer & "/Administrateur,user")
objUser.SetPassword "tonPasswordLocal"
objUser.SetInfo 

Puis tu exécutes le script avec une GPO de type Scripts (démarrage/arrêt). Ces scripts s'exécutent sous le compte système Local.

 

gpo-script.png

 

Après tu peux aussi encrypter ton VBS, si vraiment tu ressens le besoin. Mais ce qui se code... se décode également !

Lien vers le commentaire
Partager sur d’autres sites

Bonjour à tous,

 

Et pourquoi pas un script VBS dans ce goût là :

Set WshNetwork = WScript.CreateObject("WScript.Network")
strComputer = "."
Set objUser = GetObject("WinNT://" & strComputer & "/Administrateur,user")
objUser.SetPassword "tonPasswordLocal"
objUser.SetInfo 

Puis tu exécutes le script avec une GPO de type Scripts (démarrage/arrêt). Ces scripts s'exécutent sous le compte système Local.

 

gpo-script.png

 

Après tu peux aussi encrypter ton VBS, si vraiment tu ressens le besoin. Mais ce qui se code... se décode également !

 

A ce moment là autant passer directement par le batch, c'est le même principe que le vbs... Le but était vraiment de ne pas mettre le mot de passe dans le code en fait, d'où l'intérêt de le passer en paramètre... Sinon je pensais passer le batch en exe... Mais c'est pénible faut recompiler à chaque voyage...

 

Tant pis, je vais voir quelle solution est la meilleure pour mon DSI, et puis voilà :)

 

Merci en tout cas d'avoir pris tout ce temps pour m'aider.

Lien vers le commentaire
Partager sur d’autres sites

tu mets ton script à la fermeture de session

tu ajoute dans ton script la création d'un fichier quelconque

 

tu crée un second script avec

 

if exist le_fichier_quelconque_que_tu_as_créé_avec_le_premier_script

cacls tu_vire_les_droits_d'accès_à_ce_fichier_pour_cet_utilisateur

 

ce script en ouverture de session

 

là j'ai pas le temps de regarder la faisabilité, je regarde plus tard ou si quelqu'un peut regarder :)

Lien vers le commentaire
Partager sur d’autres sites

Bon et bien suite à discussion avec mon DSI à ce sujet, la décision qui a été prise : On compile le batch pour le transformer en exe.

 

Merci en tout cas pour toute votre aide. J'aurai appris pas mal de choses, et récupéré pas mal d'idées pour le futur.

 

Je passe le sujet en résolu.

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...