powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Windows [игнор отключен] [закрыт для гостей] / WSH и ярлыки
10 сообщений из 10, страница 1 из 1
WSH и ярлыки
    #34796771
Фотография ser9a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В AD с помощью logon скрипта создаю на рабочем столе пользователей нужные ярлыки. Благо примеров в сети масса. Например на ресурс \\192.168.1.1\Obmen

Но вот проблема - пользователь переименовал ярлык и после перезагрузки у пользователя снова создается ярлык, при этом остается переименованный старый.

Как можно проверить средствами WSH есть ли на рабочем столе ярлык указывающий на заданный путь? Как можно удалить ярлык?
...
Рейтинг: 0 / 0
WSH и ярлыки
    #34796981
MsDatabaseru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
фунция CreateShortcut не только создает ярлык, но и возвращает ссылку, если заданный ярлык существует

перечислить файлы в папке (VB)
(для VBS немножко изменить декларацию объектов)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Public Sub EachFile(path)
Dim fso As New Scripting.FileSystemObject
Dim cf As Scripting.Folder
Dim subf As Scripting.Folder
Dim fl As Scripting.File

Set cf = fso.GetFolder(path)
For Each subf In cf.SubFolders
    EachFile subf.path
Next
For Each fl In cf.Files
'тут ваши действия с файлами
Next
End Sub
...
Рейтинг: 0 / 0
WSH и ярлыки
    #34797023
Фотография Green2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно записывать где нибудь в профиле ято ярык уже создавался, например в реестре, current_user
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
WSH и ярлыки
    #34797264
Фотография ser9a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MsDatabaseruфунция CreateShortcut не только создает ярлык, но и возвращает ссылку, если заданный ярлык существует

перечислить файлы в папке (VB)
(для VBS немножко изменить декларацию объектов)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Public Sub EachFile(path)
Dim fso As New Scripting.FileSystemObject
Dim cf As Scripting.Folder
Dim subf As Scripting.Folder
Dim fl As Scripting.File

Set cf = fso.GetFolder(path)
For Each subf In cf.SubFolders
    EachFile subf.path
Next
For Each fl In cf.Files
'тут ваши действия с файлами
Next
End Sub


ведь нужен доступ не как к файлу а как к объекту типа shortcut
...
Рейтинг: 0 / 0
WSH и ярлыки
    #34798626
MsDatabaseru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а объект это экземпляр класса
для создания объекта нужен файл с разширением lnk
собственно для этого и ко приведен чтобы вставить проверку на расширение каждого
из файлов находящихся на рабочем столе и его подпапках
и для каждого из линков создать объект и проверить свойство - куда он ссылается
...
Рейтинг: 0 / 0
WSH и ярлыки
    #34798784
MsDatabaseru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
приведенный скрипт выводит список ссылок ярлыков находящихся на рабочем столе с подпапками
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
Set Fso = CreateObject("Scripting.FileSystemObject")
set oShell= WScript.CreateObject("WScript.Shell")

workdir =    fso.GetFile(WScript.ScriptfullName).ParentFolder  & "\" 

filelist = ""

EachFile workdir


Sub EachFile(path)
Set cf = fso.GetFolder(path)
For Each subf In cf.SubFolders
    EachFile subf.path
Next
For Each fl In cf.Files
 if right(fl.path, 3 ) = "lnk" then
        Set oShellLink = oShell.CreateShortcut(fl.path)
 	filelist = filelist & oShellLink.TargetPath & chr( 10 ) & chr( 13 )
 end if
Next
End Sub

msgbox filelist
...
Рейтинг: 0 / 0
WSH и ярлыки
    #34799539
Фотография ser9a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MsDatabaseru понял где я ошибся спасибе, просто для экперимента я создал ярлык с путем типа \\192.168.1.1 при этом можеш проверить скрипт ничего не выдаст, а если же задать путь типа \\192.168.1.1\folder или \\192.168.1.1\folder\file.exe то скрипт срабатывает.

В своем примере я сделал следующее
1 создал ярлык с именем jar и путем \\172.16.8.9
2 наваял скриптец
Код: plaintext
1.
2.
3.
set WSHell = WScript.CreateObject("WSCript.Shell")
DP = WSHell.SpecialFolders("Desktop")
set SH = WShell.CreateShortcut(DP & "\jar.lnk")
WSCript.Echo SH.TargetPath
3 запустил, в ответ тишина

Но стоило только добавить в путь папку или файл все заработало.

Последний вопрос, значит если ярлык ссылается на корень в серевер то скрипт путь не выдает.
...
Рейтинг: 0 / 0
WSH и ярлыки
    #34800320
MsDatabaseru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПоследний вопрос, значит если ярлык ссылается на корень в серевер то скрипт путь не выдает.
это логично ибо тут : fso.GetFolder(path) нужна папка
...
Рейтинг: 0 / 0
WSH и ярлыки
    #34800326
MsDatabaseru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
опс, просмотрел что имеется ввиду ссылка ярлыка
...
Рейтинг: 0 / 0
WSH и ярлыки
    #34800332
MsDatabaseru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
там кроме таргет патч есть еще несколько свойств
рабочий каталог и параметры
вероятно требуемая инфа в них
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Windows [игнор отключен] [закрыт для гостей] / WSH и ярлыки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]