Question [Résolu]remplir un script vbs

Plus d'informations
il y a 13 ans 4 mois #8372 par Jacques Barathon
Réponse de Jacques Barathon sur le sujet Re:remplir un script vbs
Olivia,

Pour répondre à ta question, oui c'est tout à fait possible dans PowerShell de se connecter à un lecteur et une imprimante réseau. Heureusement, car ce sont des besoins de base dans Windows ! :)

Comme pour d'autres besoins, plusieurs solutions existent. La plus évidente dans PowerShell (comme dans VBS à ma connaissance) consiste à utiliser l'objet COM WScript.Network qui expose (notamment) deux méthodes :

MapNetworkDrive( <lecteur>, <partage> )
AddWindowsPrinterConnection( <imprimante> )

Tu pourras les utiliser ainsi :

[code:1]
$network = new-object -com WScript.Network

# connecter P: à \\srv-fic-01\public
$drive = \"P:\"
$unc = \"\\srv-fic-01\public\"
$network.mapnetworkdrive($drive, $unc)

# se connecter à l'imprimante \\srv-prn-01\lj05
$printer = \"\\srv-prn-01\lj05\"
$network.addwindowsprinterconnection($printer)
[/code:1]<br><br>Message édité par: janel, à: 20/12/10 09:59

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 4 mois #8373 par olivia
Réponse de olivia sur le sujet Re:remplir un script vbs
Bonjour Janel,

petite question comment faire aussi pour que n l'utilisateur puisse connecter lecteur différents au démarrage avec powershell dans le même script que le script de création de compte?

merci

olivia

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 4 mois #8374 par Jacques Barathon
Réponse de Jacques Barathon sur le sujet Re:remplir un script vbs
Je ne suis pas sûr de comprendre ce que tu veux faire : tu veux qu'au moment où tu crées l'utilisateur toto, tu puisses en même temps programmer les disques et les imprimantes réseaux auxquels il se connectera à chaque ouverture de session ?

Si c'est bien ça, ce que tu veux faire est assez ambitieux mais sans doute faisable. Là encore, il existe de multiples solutions possibles. Mais en gros, la démarche consiste à :

- Créer un script d'ouverture de session qui s'applique à l'utilisateur (que le script soit générique et s'appuie sur des variables spécifiques pour s'adapter à chaque utilisateur, ou qu'il soit entièrement personnalisé),

- Dans ton script de création de l'utilisateur, fournir le chemin d'accès à \&quot;logon script\&quot; au compte que tu es en train de créer (ça se fait via la propriété scriptPath du compte utilisateur)

Mais attention : ce qu'on fait dans ces étapes-là, c'est définir quel script sera exécuté par l'utilisateur. Le script lui-même peut être un .cmd, un .vbs ou bien un .ps1, et donc les lignes de code qui vont réellement faire les connexions aux lecteurs et aux imprimantes vont dépendre du langage retenu (batch standard, VBS ou PowerShell).

Si tu choisis de créer un script d'ouverture de session en PowerShell, il faut t'assurer que chaque poste a bien PowerShell d'installé, et qu'il est configuré pour pouvoir exécuter des scripts.

Bref, tu as encore du travail. :)

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 4 mois #8375 par olivia
Réponse de olivia sur le sujet Re:remplir un script vbs
C'est bien ça !!!C'est pour ça que je préfère travaillé en vbs mais inconvénient que d'installer du powershell sur toute les machines .

J'ai trouvé une solution que quand
[code:1]
test16.vbs toto informatique 'script lancé en modification'
test16.vbs 'script qui sera lancé au cours du démarrage'
[/code:1]

mon problème est que je cherche à stocké les arguments dans le script vbs mais je trouve pas comment

sinon à modifier le fichier vbs , parexemple àjouter des variables
olivia<br><br>Message édité par: sam87, à: 20/12/10 11:34

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 4 mois #8376 par olivia
Réponse de olivia sur le sujet Re:remplir un script vbs
Sinon j'ai trouvé un autre moyen en passant par le script powershell

[code:1]
get-content .\test16.vbs |foreach {$_ -replace \&quot;nom\&quot;,\&quot;tutu\&quot;|set-content .\test16.vbs
[/code:1]

le problème est que j'ai un message d'erreur :
le processus ne peut pas accéder au fichier test16.vbs car il est en cours d'utilisation par un autre processus


quelqu'un aurait une idée ?

merci

olivia

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 4 mois #8377 par Jacques Barathon
Réponse de Jacques Barathon sur le sujet Re:remplir un script vbs
C'est parce que tu fais un set-content alors que le fichier est ouvert en lecture par get-content.

C'est une bonne illustration du fait que le pipeline de PowerShell traite les objets au fur et à mesure où il sont émis : get-content lit les lignes une par une et les transmet à la commande suivante. Celle-ci se retrouve à vouloir écrire les nouvelles lignes dans le fichier, alors que celui-ci est toujours en train d'être lu.

Pour ce genre de manip il vaut mieux passer par une variable intermédiaire :

[code:1]
$fichier = get-content ./test16.vbs|foreach {$_ -replace \&quot;nom\&quot;,\&quot;tutu\&quot;}
set-content ./test16.vbs $fichier
[/code:1]

Cela dit, je ne suis pas sûr que ce soit la méthode la plus efficace. Ca veut dire que tu génères un script par utilisateur, non ? Ca va être lourd à gérer si tu dois faire des modifs à postériori.

Dans ton script VBS tu devrais pouvoir récupérer le nom de l'utilisateur via la variable d'environnement %username% ($env:username dans PowerShell). Je n'ai pas les automatismes en vbs pour t'indiquer comment retrouver une variable d'environnement, mais tu devrais facilement trouver ça sur Internet.

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.077 secondes
Propulsé par Kunena