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

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

Как можно проверить средствами WSH есть ли на рабочем столе ярлык указывающий на заданный путь? Как можно удалить ярлык?
...
Рейтинг: 0 / 0
13.09.2007, 11:53:25
    #34796981
MsDatabaseru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WSH и ярлыки
фунция 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
13.09.2007, 12:01:24
    #34797023
Green2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WSH и ярлыки
можно записывать где нибудь в профиле ято ярык уже создавался, например в реестре, current_user
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
13.09.2007, 12:54:26
    #34797264
ser9a
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WSH и ярлыки
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
13.09.2007, 17:33:12
    #34798626
MsDatabaseru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WSH и ярлыки
а объект это экземпляр класса
для создания объекта нужен файл с разширением lnk
собственно для этого и ко приведен чтобы вставить проверку на расширение каждого
из файлов находящихся на рабочем столе и его подпапках
и для каждого из линков создать объект и проверить свойство - куда он ссылается
...
Рейтинг: 0 / 0
13.09.2007, 18:01:38
    #34798784
MsDatabaseru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WSH и ярлыки
приведенный скрипт выводит список ссылок ярлыков находящихся на рабочем столе с подпапками
Код: 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
14.09.2007, 07:51:18
    #34799539
ser9a
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WSH и ярлыки
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
14.09.2007, 12:01:22
    #34800320
MsDatabaseru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WSH и ярлыки
авторПоследний вопрос, значит если ярлык ссылается на корень в серевер то скрипт путь не выдает.
это логично ибо тут : fso.GetFolder(path) нужна папка
...
Рейтинг: 0 / 0
14.09.2007, 12:03:01
    #34800326
MsDatabaseru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WSH и ярлыки
опс, просмотрел что имеется ввиду ссылка ярлыка
...
Рейтинг: 0 / 0
14.09.2007, 12:04:42
    #34800332
MsDatabaseru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WSH и ярлыки
там кроме таргет патч есть еще несколько свойств
рабочий каталог и параметры
вероятно требуемая инфа в них
...
Рейтинг: 0 / 0
Форумы / Windows [игнор отключен] [закрыт для гостей] / WSH и ярлыки / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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