|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista » Общее - [решено] Изъять программу из панели задач |
|
||||
|
|
Общее - [решено] Изъять программу из панели задач
|
|
Ветеран Сообщения: 1639 |
Всех приветствую!
Банальная задача, на которую не нашел решения. В режиме аудита настраиваются ярлыки на панели задач. При создании нового пользователя необходимо, чтобы эти ярлыки на панели задач были такими же, а не дефолтными. CopyProfile в этом не помогает. Подскажите, пожалуйста, как решить эту незамысловатую задачку? Спасибо! |
|
|
Отправлено: 23:35, 30-03-2015 |
|
Ветеран Сообщения: 5380
|
Профиль | Отправить PM | Цитировать |
|
------- Отправлено: 01:15, 31-03-2015 | #2 |
|
Ветеран Сообщения: 1639
|
Профиль | Отправить PM | Цитировать |
|
Отправлено: 11:28, 31-03-2015 | #3 |
|
Ветеран Сообщения: 5380
|
Профиль | Отправить PM | Цитировать The_Immortal,
Посмотрите внимательно. По первой ссылке там несколько решений. |
|
------- Отправлено: 11:32, 31-03-2015 | #4 |
|
Ветеран Сообщения: 1639
|
Профиль | Отправить PM | Цитировать Казбек,
Цитата Казбек:
Цитата Казбек:
Цитата The_Immortal:
UPD: Цитата The_Immortal:
pinunpin.vbs
Dim iArgCount
iArgCount = WScript.Arguments.Count
If (iArgCount <> 3) Then
ShowUsage
End If
Dim sAction,sSMorTB,sFilePath
sAction = LCase(WScript.Arguments.Item(0))
sSMorTB = LCase(WScript.Arguments.Item(1))
sFilePath = LCase(WScript.Arguments.Item(2))
If (sAction <> "pin") And (sAction <> "unpin") Then
WScript.Echo "Error: Invalid Action: '" & sAction & "'"
ShowUsage
End If
If (sSMorTB <> "startmenu") And (sSMorTB <> "taskbar") Then
WScript.Echo "Error: Invalid Location: '" & sSMorTB & "'"
ShowUsage
End If
If (sAction = "pin") And (sSMorTB = "startmenu") Then PinToStartMenu sFilePath
If (sAction = "pin") And (sSMorTB = "taskbar") Then PinToTaskBar sFilePath
If (sAction = "unpin") And (sSMorTB = "startmenu") Then UnpinFromStartMenu sFilePath
If (sAction = "unpin") And (sSMorTB = "taskbar") Then UnpinFromTaskBar sFilePath
WScript.Quit
Sub ShowUsage
WScript.Echo "Usage: " & WScript.ScriptName & " [PIN|UNPIN] [STARTMENU|TASKBAR] File"
WScript.Echo vbTab & WScript.ScriptName & " PIN startmenu C:\apps\tools\wmopener.exe"
WScript.Echo vbTab & WScript.ScriptName & " unpin TASKBAR ""C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Mozilla Firefox.lnk"""
WScript.Quit
End Sub
Sub PinToStartMenu(Required_Path_To_Item)
' See
' http://blogs.technet.com/b/deploymentguys/archive/2009/04/08/pin-items-to-the-start-menu-or-windows-7-taskbar-via-script.aspx?PageIndex=3
Const CSIDL_COMMON_PROGRAMS = &H17
Const CSIDL_PROGRAMS = &H2
Dim s_oFSO, s_oShell, s_oAllUsersProgramsFolder
Dim s_oFolder, s_oFolderItem, s_colVerbs, s_oVerb
Dim s_FullItemPath, s_sItemFolder, s_sItemName, s_sAllUsersProgramsPath
Set s_oFSO = CreateObject("Scripting.FileSystemObject")
Set s_oShell = CreateObject("Shell.Application")
s_FullItemPath = Required_Path_To_Item
If Not (s_oFSO.FileExists(s_FullItemPath)) Then
WScript.Echo "Error Pinning File '" & s_FullItemPath & "' to Start Menu: File Does Not Exist!"
Exit Sub
End If
s_sItemFolder = s_oFSO.GetParentFolderName(s_FullItemPath)
s_sItemName = s_oFSO.GetFileName(s_FullItemPath)
Set s_oFolder = s_oShell.Namespace(s_sItemFolder)
Set s_oFolderItem = s_oFolder.ParseName(s_sItemName)
Set s_colVerbs = s_oFolderItem.Verbs
For Each s_oVerb in s_colVerbs
If Replace(s_oVerb.name, "&", "") = "Pin to Start Menu" Then
WScript.Echo "Pinning '" & s_FullItemPath & "' to Start Menu"
's_oVerb.DoIt
ElseIf Replace(s_oVerb.name, "&", "") = "Unpin from Start Menu" Then
WScript.Echo "Error: Item '" & s_FullItemPath & "' is Already Pinned to Start Menu"
End If
Next
End Sub
Sub PinToTaskBar(Required_Path_To_Item)
' See
' http://blogs.technet.com/b/deploymentguys/archive/2009/04/08/pin-items-to-the-start-menu-or-windows-7-taskbar-via-script.aspx?PageIndex=3
Const CSIDL_COMMON_PROGRAMS = &H17
Const CSIDL_PROGRAMS = &H2
Dim s_oFSO, s_oShell, s_oAllUsersProgramsFolder
Dim s_oFolder, s_oFolderItem, s_colVerbs, s_oVerb
Dim s_FullItemPath, s_sItemFolder, s_sItemName, s_sAllUsersProgramsPath
Set s_oFSO = CreateObject("Scripting.FileSystemObject")
Set s_oShell = CreateObject("Shell.Application")
s_FullItemPath = Required_Path_To_Item
If Not (s_oFSO.FileExists(s_FullItemPath)) Then
WScript.Echo "Error Pinning File '" & s_FullItemPath & "' to TaskBar: File Does Not Exist!"
Exit Sub
End If
s_sItemFolder = s_oFSO.GetParentFolderName(s_FullItemPath)
s_sItemName = s_oFSO.GetFileName(s_FullItemPath)
Set s_oFolder = s_oShell.Namespace(s_sItemFolder)
Set s_oFolderItem = s_oFolder.ParseName(s_sItemName)
Set s_colVerbs = s_oFolderItem.Verbs
For Each s_oVerb in s_colVerbs
If Replace(s_oVerb.name, "&", "") = "Pin to Taskbar" Then
WScript.Echo "Pinning '" & s_FullItemPath & "' to Taskbar"
's_oVerb.DoIt
ElseIf Replace(s_oVerb.name, "&", "") = "Unpin from Taskbar" Then
WScript.Echo "Error: Item '" & s_FullItemPath & "' is Already Pinned to Taskbar"
End if
Next
End Sub
Sub UnpinFromStartMenu(Required_Path_To_Item)
' See
' http://blogs.technet.com/b/deploymentguys/archive/2009/04/08/pin-items-to-the-start-menu-or-windows-7-taskbar-via-script.aspx?PageIndex=3
Const CSIDL_COMMON_PROGRAMS = &H17
Const CSIDL_PROGRAMS = &H2
Dim s_oFSO, s_oShell, s_oAllUsersProgramsFolder
Dim s_oFolder, s_oFolderItem, s_colVerbs, s_oVerb
Dim s_FullItemPath, s_sItemFolder, s_sItemName, s_sAllUsersProgramsPath
Set s_oFSO = CreateObject("Scripting.FileSystemObject")
Set s_oShell = CreateObject("Shell.Application")
s_FullItemPath = Required_Path_To_Item
If Not (s_oFSO.FileExists(s_FullItemPath)) Then
WScript.Echo "Error Unpinning File '" & s_FullItemPath & "' From Start Menu: File Does Not Exist!"
Exit Sub
End If
s_sItemFolder = s_oFSO.GetParentFolderName(s_FullItemPath)
s_sItemName = s_oFSO.GetFileName(s_FullItemPath)
Set s_oFolder = s_oShell.Namespace(s_sItemFolder)
Set s_oFolderItem = s_oFolder.ParseName(s_sItemName)
Set s_colVerbs = s_oFolderItem.Verbs
For Each s_oVerb in s_colVerbs
If Replace(s_oVerb.name, "&", "") = "Unpin from Start Menu" Then
WScript.Echo "Unpinning '" & s_FullItemPath & "' From Start Menu"
's_oVerb.DoIt
ElseIf Replace(s_oVerb.name, "&", "") = "Pin to Start Menu" Then
WScript.Echo "Error: Item '" & s_FullItemPath & "' is Not Pinned to Start Menu"
End if
Next
End Sub
Sub UnpinFromTaskBar(Required_Path_To_Item)
' See
' http://blogs.technet.com/b/deploymentguys/archive/2009/04/08/pin-items-to-the-start-menu-or-windows-7-taskbar-via-script.aspx?PageIndex=3
Const CSIDL_COMMON_PROGRAMS = &H17
Const CSIDL_PROGRAMS = &H2
Dim s_oFSO, s_oShell, s_oAllUsersProgramsFolder
Dim s_oFolder, s_oFolderItem, s_colVerbs, s_oVerb
Dim s_FullItemPath, s_sItemFolder, s_sItemName, s_sAllUsersProgramsPath
Set s_oFSO = CreateObject("Scripting.FileSystemObject")
Set s_oShell = CreateObject("Shell.Application")
s_FullItemPath = Required_Path_To_Item
If Not (s_oFSO.FileExists(s_FullItemPath)) Then
WScript.Echo "Error Unpinning File '" & s_FullItemPath & "' from Taskbar: File Does Not Exist!"
Exit Sub
End If
s_sItemFolder = s_oFSO.GetParentFolderName(s_FullItemPath)
s_sItemName = s_oFSO.GetFileName(s_FullItemPath)
Set s_oFolder = s_oShell.Namespace(s_sItemFolder)
Set s_oFolderItem = s_oFolder.ParseName(s_sItemName)
Set s_colVerbs = s_oFolderItem.Verbs
For Each s_oVerb in s_colVerbs
If Replace(s_oVerb.name, "&", "") = "Unpin from Taskbar" Then
WScript.Echo "Unpinning '" & s_FullItemPath & "' from Taskbar"
's_oVerb.DoIt
ElseIf Replace(s_oVerb.name, "&", "") = "Pin to Taskbar" Then
WScript.Echo "Error: Item '" & s_FullItemPath & "' is Not Pinned to Taskbar"
End if
Next
End Sub
Использование: У меня выдает ошибку "Невозможно создание объекта Scripting.FileSystemObject" - вероятно, у меня какие-то проблемы с WSH, т.к. автор пишет, что всё работает "brilliantly". UPD2: запустил вышеуказанный скрипт на другой машине с Win 7 - ошибки не было, но и эффекта никакого не возымело. |
|||||
|
Последний раз редактировалось The_Immortal, 31-03-2015 в 12:59. Отправлено: 11:47, 31-03-2015 | #5 |
|
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата The_Immortal:
|
|
|
Отправлено: 13:00, 31-03-2015 | #6 |
|
Ветеран Сообщения: 1639
|
Профиль | Отправить PM | Цитировать Iska,
Цитата Iska:
Цитата Iska:
Но разбираться с данной проблемой сейчас смысла не имеет, т.к. Цитата The_Immortal:
Правда для начала хотелось бы удостовериться, что скрипт действительно не работает. Пожалуйста, протестируйте кто-нибудь его. |
|||
|
Отправлено: 13:25, 31-03-2015 | #7 |
|
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата The_Immortal:
Цитата The_Immortal:
For Each s_oVerb in s_colVerbs If Replace(s_oVerb.name, "&", "") = "Pin to Start Menu" Then WScript.Echo "Pinning '" & s_FullItemPath & "' to Start Menu" 's_oVerb.DoIt ElseIf Replace(s_oVerb.name, "&", "") = "Unpin from Start Menu" Then WScript.Echo "Error: Item '" & s_FullItemPath & "' is Already Pinned to Start Menu" End If Next Цитата The_Immortal:
|
|||
|
Отправлено: 14:05, 31-03-2015 | #8 |
|
Ветеран Сообщения: 1639
|
Профиль | Отправить PM | Цитировать Iska,
Цитата Iska:
Скорректировал скрипт на русский вариант (лишние проверки и функции пока убрал). Получилось вот так: pintaskbar.vbs
Dim sAction,sSMorTB,sFilePath
sAction = LCase(WScript.Arguments.Item(0))
sSMorTB = LCase(WScript.Arguments.Item(1))
sFilePath = LCase(WScript.Arguments.Item(2))
If (sAction = "pin") And (sSMorTB = "taskbar") Then PinToTaskBar sFilePath
WScript.Quit
Sub PinToTaskBar(Required_Path_To_Item)
' See
' http://blogs.technet.com/b/deploymentguys/archive/2009/04/08/pin-items-to-the-start-menu-or-windows-7-taskbar-via-script.aspx?PageIndex=3
Const CSIDL_COMMON_PROGRAMS = &H17
Const CSIDL_PROGRAMS = &H2
Dim s_oFSO, s_oShell, s_oAllUsersProgramsFolder
Dim s_oFolder, s_oFolderItem, s_colVerbs, s_oVerb
Dim s_FullItemPath, s_sItemFolder, s_sItemName, s_sAllUsersProgramsPath
Set s_oFSO = CreateObject("Scripting.FileSystemObject")
Set s_oShell = CreateObject("Shell.Application")
s_FullItemPath = Required_Path_To_Item
s_sItemFolder = s_oFSO.GetParentFolderName(s_FullItemPath)
s_sItemName = s_oFSO.GetFileName(s_FullItemPath)
Set s_oFolder = s_oShell.Namespace(s_sItemFolder)
Set s_oFolderItem = s_oFolder.ParseName(s_sItemName)
Set s_colVerbs = s_oFolderItem.Verbs
For Each s_oVerb in s_colVerbs
If Replace(s_oVerb.name, "&", "") = "Закрепить на панели задач" Then
WScript.Echo "Pinning '" & s_FullItemPath & "' to Taskbar"
s_oVerb.DoIt
End if
Next
End Sub
Цитата:
Откуда там амперсанд в середине фразы мне не очень понятно, но я пробовал и с ним через просто сравнение: и без него (т.е. с заменой, как в изначальном примере). UPD: нашел в Инете такой вариант сравнения: ... VerbName = Replace(objVerb.Name, "&", "") If VerbName = "Закрепить программу в панели задач" Or VerbName = "Закрепить на панели задач" Or VerbName = "Pin to Taskbar" Then objVerb.DoIt ... ![]() UPD2: всё в порядке. Что-то не так с ОС, поэтому и не работало. Попробовал на чистой ОС - всё работает. |
||
|
Последний раз редактировалось The_Immortal, 01-04-2015 в 12:21. Отправлено: 15:15, 31-03-2015 | #9 |
|
Ветеран Сообщения: 1639
|
Профиль | Отправить PM | Цитировать Всех приветствую!
На этот раз необходимо изъять программу из панели задач Win 8, а именно ярлык на "Магазин". Пример рабочего скрипта изъятия Windows Media Player из панели задач у Win 7: Const CSIDL_COMMON_PROGRAMS = &H17
Dim objShell, objFSO
Dim objAllUsersProgramsFolder
Dim strAllUsersProgramsPath
Dim objFolder
Dim objFolderItem
Dim colVerbs
Dim objVerb
Set objShell = CreateObject("Shell.Application")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objAllUsersProgramsFolder = objShell.NameSpace(CSIDL_COMMON_PROGRAMS)
strAllUsersProgramsPath = objAllUsersProgramsFolder.Self.Path
'Windows Media Player unpin
If objFSO.FileExists(strAllUsersProgramsPath & "\Windows Media Player.lnk") Then
Set objFolder = objShell.Namespace(strAllUsersProgramsPath)
Set objFolderItem = objFolder.ParseName("Windows Media Player.lnk")
Set colVerbs = objFolderItem.Verbs
For Each objVerb in colVerbs
VerbName = Replace(objVerb.Name, "&", "")
If VerbName = "Изъять программу из панели задач" Or VerbName = "Изъять из панели задач" Or VerbName = "Unpin from Taskbar" Or VerbName = "Открепить от панели задач" Then
objVerb.DoIt
End If
Next
End If
WScript.Quit
...
'Магазин unpin
If objFSO.FileExists(strAllUsersProgramsPath & "\Магазин.lnk") Then
Set objFolder = objShell.Namespace(strAllUsersProgramsPath)
Set objFolderItem = objFolder.ParseName("Магазин.lnk")
Set colVerbs = objFolderItem.Verbs
For Each objVerb in colVerbs
VerbName = Replace(objVerb.Name, "&", "")
If VerbName = "Изъять программу из панели задач" Or VerbName = "Изъять из панели задач" Or VerbName = "Unpin from Taskbar" Or VerbName = "Открепить от панели задач" Then
objVerb.DoIt
End If
Next
End If
WScript.Quit
Может проблема связано как-то с кириллицей? Спасибо! UPD: оказывается ссылка называлась "Windows Store.lnk", а представлялась как "Магазин.lnk". Всем спасибо! |
|
Последний раз редактировалось The_Immortal, 06-05-2015 в 23:19. Отправлено: 18:30, 06-05-2015 | #10 |
|
|
|
Участник сейчас на форуме |
|
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
| Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
| Любой язык - Как открепить все ярлыки от панели задач Windows 7? | Fortress1 | Скриптовые языки администрирования Windows | 2 | 22-09-2013 11:34 | |
| Интерфейс - Не закрепляются сетевые ярлыки в панели задач. | CAHEKs | Microsoft Windows 7 | 1 | 26-08-2013 08:10 | |
| Интерфейс - Не могу сохранить ярлыки в панели задач | Wadikkk | Microsoft Windows 8 и 8.1 | 7 | 05-07-2013 21:47 | |
| Интерфейс - После перезагрузки исчезли доп.панели с кнопками из панели задач (Win7). | BombJack | Microsoft Windows 7 | 2 | 20-04-2013 20:12 | |
| Ресайз панели задач с растановкой панели быстрого запуска и области открытых окон | DImaN! | Автоматическая установка Windows 2000/XP/2003 | 0 | 29-08-2008 11:30 | |
|