|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista » Общее - [решено] Изъять программу из панели задач |
|
|
Общее - [решено] Изъять программу из панели задач
|
Ветеран Сообщения: 1639 |
Профиль | Отправить PM | Цитировать
Всех приветствую!
Банальная задача, на которую не нашел решения. В режиме аудита настраиваются ярлыки на панели задач. При создании нового пользователя необходимо, чтобы эти ярлыки на панели задач были такими же, а не дефолтными. 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 |
|