Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Créer un raccourci vers une unité (ntds) depuis un batch file ou un VBScript

2 réponses
Avatar
Glenn Gagné
Bonjour,

Je veux simplement créer un raccourci qui va être placé sur le bureau des
mes usagers lors de l 'ouverture de session. Ce raccourci pointe vers
l'Active Directory (plus précisément dans l'unité des usagers) afin d'avoir
un raccourci rapide pour en faire un carnet de contacts pour tout le monde.

Je n'ai pas trouvé de moyen standard avec le batch file, mais j'ai trouvé
comment créer un raccourci avec VBScript.

J'ai testé le VBS avec un fichier "normal" et ça fonctionne très bien. Par
contre, si je veux faire pointer le raccourci vers un lien NTDS (AD) ça ne
marche pas.

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

Voici ce qu j'ai comme problème:


J'ai trouvé comment faire un raccourci depuis un VBScript. Voici la
"commande par défaut":



Set oWS = WScript.CreateObject("WScript.Shell")
sLinkFile = "C:\mon_raccourci.lnk"
Set oLink = oWS.CreateShortcut(sLinkFile)
oLink.TargetPath = "C:\windows\mon_prog.exe"
' oLink.Arguments = ""
' oLink.Description = ""
' oLink.HotKey = "ALT+CTRL+F"
' oLink.IconLocation = "C:\Program Files\MyApp\MyProgram.EXE, 2"
' oLink.WindowStyle = "1"
' oLink.WorkingDirectory = "C:\Program Files\MyApp"
oLink.Save


J'ai testé avec n'importe quel types de fichiers "standard" et ça marche
très bien !!! Sauf que dans mon cas ce n'est pas vraiment un fichier...
c'est un raccourci vers une unité d'organisation.


Le bug:

avec la formule du VBScript ça génère effectivement un raccourci... mais il
ne marche pas.

Si je fais un raccourci de façon manuelle (avec un clic-droit sur l'unité et
créer un raccouci), le raccourci (.lnk) pointe vers
"ntds://mondomaine.com/Mon Unité".

Si je lance la commande VBScript de cette manière:

Set oWS = WScript.CreateObject("WScript.Shell")
sLinkFile = "C:\documents and settings\%username%\bureau\domaine.lnk"
Set oLink = oWS.CreateShortcut(sLinkFile)
oLink.TargetPath = "ntds://mondomaine.com/Mon Unité"
oLink.Save

Il créé effectivement le raccourci (.lnk) ...mais il l'associe à Internet
Explorer comme si c'était un .url ! et si je regarde le contenu de
l'emplacement c'est: ntds://mondomaine.com/Mon%20Unité

Et si je clique sur le lien pour le lancer ça écrit:


Problème de raccourci
Impossible d'ouvrir ce raccourci Internet. Le protocole ntds ne comporte
aucon programme enregistré



À l'aide !

2 réponses

Avatar
jbongran
Glenn Gagné wrote:
Bonjour,

Je veux simplement créer un raccourci qui va être placé sur le bureau
des mes usagers lors de l 'ouverture de session. Ce raccourci pointe
vers l'Active Directory (plus précisément dans l'unité des usagers)
afin d'avoir un raccourci rapide pour en faire un carnet de contacts
pour tout le monde.

Je n'ai pas trouvé de moyen standard avec le batch file, mais j'ai
trouvé comment créer un raccourci avec VBScript.

J'ai testé le VBS avec un fichier "normal" et ça fonctionne très
bien. Par contre, si je veux faire pointer le raccourci vers un lien
NTDS (AD) ça ne marche pas.

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

Voici ce qu j'ai comme problème:


J'ai trouvé comment faire un raccourci depuis un VBScript. Voici la
"commande par défaut":



Set oWS = WScript.CreateObject("WScript.Shell")
sLinkFile = "C:mon_raccourci.lnk"
Set oLink = oWS.CreateShortcut(sLinkFile)
oLink.TargetPath = "C:windowsmon_prog.exe"
' oLink.Arguments = ""
' oLink.Description = ""
' oLink.HotKey = "ALT+CTRL+F"
' oLink.IconLocation = "C:Program FilesMyAppMyProgram.EXE, 2"
' oLink.WindowStyle = "1"
' oLink.WorkingDirectory = "C:Program FilesMyApp"
oLink.Save


J'ai testé avec n'importe quel types de fichiers "standard" et ça
marche très bien !!! Sauf que dans mon cas ce n'est pas vraiment un
fichier... c'est un raccourci vers une unité d'organisation.


Le bug:

avec la formule du VBScript ça génère effectivement un raccourci...
mais il ne marche pas.

Si je fais un raccourci de façon manuelle (avec un clic-droit sur
l'unité et créer un raccouci), le raccourci (.lnk) pointe vers
"ntds://mondomaine.com/Mon Unité".

Si je lance la commande VBScript de cette manière:

Set oWS = WScript.CreateObject("WScript.Shell")
sLinkFile = "C:documents and settings%username%bureaudomaine.lnk"
Set oLink = oWS.CreateShortcut(sLinkFile)
oLink.TargetPath = "ntds://mondomaine.com/Mon Unité"
oLink.Save

Il créé effectivement le raccourci (.lnk) ...mais il l'associe à
Internet Explorer comme si c'était un .url ! et si je regarde le
contenu de l'emplacement c'est: ntds://mondomaine.com/Mon%20Unité

Et si je clique sur le lien pour le lancer ça écrit:


Problème de raccourci
Impossible d'ouvrir ce raccourci Internet. Le protocole ntds ne
comporte aucon programme enregistré



À l'aide !


Surement une limitation de la propriété TargetPath ?
J'ai déja contourné ce type de souci comme ça:
Ouvrir le fichier .lnk créé manuellement dans le bloc notes et copier le
contenu.
Creer par script, à l'aide de l'objet FileSystem un fichier .link contenant
exactement le texte récuperé du bloc notes ;-)

Aussi, extrait de la doc de vbscript:
sLinkFile = WshShell.SpecialFolders("Desktop") & "Domaine.lnk"
Car je ne suis pas sur du comportement de la variable %username% utilisée
dans ce contexte (jamais fait l'essai, quelqu'un?)

Avatar
Glenn Gagné
Non, effectivement, j'ai donné ... un mauvais exemple. La variable
%username% n'est pas une variable valide pour le PATH, je l'ai simplement
écrit pour bien expliquer le contexte de ce que je voulais faire (créer un
raccourci sur le bureau de l'usager).

Par contre le problème que j'ai ne parvient pas de cette variable, mais du
fait d'utiliser un PATH cheminant vers "ntds" au-lieu d'un dossier standard
(C:...), car simplement en voulant fair le test dans un dossier simple le
raccourci ne se génère pas sous le bon format.

Merci pour le moment, Si quelqu'un a déjà réussi l'exploit de créer le
raccourci depuis un script vers un chemin ntds, svp me faire parvenir un
exemple.





"jbongran" a écrit dans le message de
news:
Glenn Gagné wrote:
Bonjour,

Je veux simplement créer un raccourci qui va être placé sur le bureau
des mes usagers lors de l 'ouverture de session. Ce raccourci pointe
vers l'Active Directory (plus précisément dans l'unité des usagers)
afin d'avoir un raccourci rapide pour en faire un carnet de contacts
pour tout le monde.

Je n'ai pas trouvé de moyen standard avec le batch file, mais j'ai
trouvé comment créer un raccourci avec VBScript.

J'ai testé le VBS avec un fichier "normal" et ça fonctionne très
bien. Par contre, si je veux faire pointer le raccourci vers un lien
NTDS (AD) ça ne marche pas.

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

Voici ce qu j'ai comme problème:


J'ai trouvé comment faire un raccourci depuis un VBScript. Voici la
"commande par défaut":



Set oWS = WScript.CreateObject("WScript.Shell")
sLinkFile = "C:mon_raccourci.lnk"
Set oLink = oWS.CreateShortcut(sLinkFile)
oLink.TargetPath = "C:windowsmon_prog.exe"
' oLink.Arguments = ""
' oLink.Description = ""
' oLink.HotKey = "ALT+CTRL+F"
' oLink.IconLocation = "C:Program FilesMyAppMyProgram.EXE, 2"
' oLink.WindowStyle = "1"
' oLink.WorkingDirectory = "C:Program FilesMyApp"
oLink.Save


J'ai testé avec n'importe quel types de fichiers "standard" et ça
marche très bien !!! Sauf que dans mon cas ce n'est pas vraiment un
fichier... c'est un raccourci vers une unité d'organisation.


Le bug:

avec la formule du VBScript ça génère effectivement un raccourci...
mais il ne marche pas.

Si je fais un raccourci de façon manuelle (avec un clic-droit sur
l'unité et créer un raccouci), le raccourci (.lnk) pointe vers
"ntds://mondomaine.com/Mon Unité".

Si je lance la commande VBScript de cette manière:

Set oWS = WScript.CreateObject("WScript.Shell")
sLinkFile = "C:documents and settings%username%bureaudomaine.lnk"
Set oLink = oWS.CreateShortcut(sLinkFile)
oLink.TargetPath = "ntds://mondomaine.com/Mon Unité"
oLink.Save

Il créé effectivement le raccourci (.lnk) ...mais il l'associe à
Internet Explorer comme si c'était un .url ! et si je regarde le
contenu de l'emplacement c'est: ntds://mondomaine.com/Mon%20Unité

Et si je clique sur le lien pour le lancer ça écrit:


Problème de raccourci
Impossible d'ouvrir ce raccourci Internet. Le protocole ntds ne
comporte aucon programme enregistré



À l'aide !


Surement une limitation de la propriété TargetPath ?
J'ai déja contourné ce type de souci comme ça:
Ouvrir le fichier .lnk créé manuellement dans le bloc notes et copier le
contenu.
Creer par script, à l'aide de l'objet FileSystem un fichier .link
contenant

exactement le texte récuperé du bloc notes ;-)

Aussi, extrait de la doc de vbscript:
sLinkFile = WshShell.SpecialFolders("Desktop") & "Domaine.lnk"
Car je ne suis pas sur du comportement de la variable %username% utilisée
dans ce contexte (jamais fait l'essai, quelqu'un?)