Script/Batch basculer en reseau privé
Bonjour,
Voici ma problématique:
Je dois régulièrement passé des PC en réseau privé et non public pour le scan SMB de photocopieurs.
J'ai donc créé (enfin j'ai essayé) un fichier Batch qui "bascule" sur un fichier .ps1 qui fonctionne très bien si je le positionne à un endroit précis.
Hors ce fichier je le garde sur une clé USB afin de pouvoir le lancer directement sans avoir à le copier sur le PC.
J'aurai besoin de votre aide, pour :
- Soit quand je lance le .bat (en admin bien sur) il trouve seul le chemin du .ps1 (qui sera toujours au même endroit sur la clé) . La lettre de lecteur de la clé se modifiant en fonction du PC sur lequel je la branche.
- Soit que je puisse indiquer au script rapidement,la lettre du lecteur USB.
Petites Options:
- Avoir la possibilité de choisir le basculement entre réseau public et privé, C'est à dire que mon script me demande "Public ou Privé" (Pour le moment j'ai un fichier pour basculer en public et un pour basculer en privé).
- Simplifier ou ameliorer mon petit script ( je prends toutes les bonnes idées ! )
Voici ce que j'ai fait après de multiple recherche sur le net pour le fichier BAT. :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| Get-NetConnectionProfile
Pause
#Droits admin nécessaire
#Afficher le profil actif
$ProfileName = Get-NetConnectionProfile
# Changer la catégorie du profil actif (valeurs acceptées : Public, Private, DomainAuthenticated)
Set-NetConnectionProfile -Name $ProfileName.Name -NetworkCategory Private
Get-NetConnectionProfile
Pause |
ET voici mon Bat que je n'arrive pas à "automatiser" pour le changement automatique de lettre de Lecteur de ma clé USB
Code:
1 2 3
| PowerShell -NoProfile -ExecutionPolicy Bypass -File "F:\Public prive\Nouveau dossier\Private.ps1" -Verb RunAs
pause
exit |
J'ai essayé la création d'une variable mais je n'arrive pas à l’intégrer dans le chemin réseau, mais il me dit toujours que le chemin de fichier ne correspond pas.
J'ai aussi essayé avec un truc genre "Get-location" etc.
J'ai essayé de rentrer le nom de ma clé au lieu de la lettre du lecteur : echec !
Enfin j'ai essayer plein de truc mais je n'y arrive pas.
par exemple :
Code:
1 2
| $USB = get-location
PowerShell -NoProfile -ExecutionPolicy Bypass -File "$USB\Private.ps1" -Verb RunAs |
Je ne sais pas si c'est d'une simplicité enfantine ou si ça peut être très compliquer.
Je sollicite donc votre grande bienveillance afin d'aider un pauvre petit malheureux dans la souffrance de la programmation ! :D
Vous en remerciant d'avance.
NB: je ne suis pas un pro, donc si vous pouviez me parler pas trop technique cela m'ira très bien.
Ca ne marche pas, ou plutot je ne sais pas faire !
Citation:
Envoyé par
ericlm128
Vu que je comprend que tes scripts son sur la même clé USB il suffit de trouvé la lettre de lecteur de script.
Plusieurs choix :
Code:
1 2 3
| (Get-Location).Drive.Name + ":\"
$pwd.Drive.Name + ":\"
$PSCommandPath[0] + ":\" |
Je pense que je ne dois modifier que le fichier .bat , mais je ne sais pas comment utiliser ta commande, j'ai essayé d’intégrer set drive un peu partout dans mon .bat mais ça ne marche jamais.
Je dois , soit mal le placer, soit mal l'orthographier, soit oublier une ponctuation, soit avoir trop mis de ponctuation, soit être complétement nul (et j'opte pour la dernière solution, voir toutes ! )
Mon chemin d'origine (je le modifierai une fois que cela fonctionnera) est "THOMAS-32GO\Public prive\Nouveau dossier\Private.ps1" . Où est ce que je dois intégrer le "set drive=%~d0" (THOMAS-32GO étant le nom de ma clé USB)
J'ai essayer bien 100 façons de faire (sans exagérer), soit on me dit qu'on ne trouve pas le fichier .ps1, soit la fenêtre Dos s'ouvre et se ferme instantanément.
Exemple :
Code:
1 2 3
| PowerShell -NoProfile -ExecutionPolicy Bypass -File set drive=%~d0 "\Public prive\Nouveau dossier\Private.ps1" -Verb RunAs
exit |
Une petite aide serait le bien venu, avant que par erreur, je fasse une bêtise et me fusille le PC ou pire que j'invente malencontreusement le virus de la mort qui détruira tout le net à cause d'une erreur dans une ligne de commande !
NB: je suis un simple amateur, sans aucune expérience de programmation, désolé de mon ignorance pour des détails qui sont surement d'une grande évidence.