Войти

Показать полную графическую версию : [решено] Изъять программу из панели задач


The_Immortal
30-03-2015, 23:35
Всех приветствую!

Банальная задача, на которую не нашел решения.
В режиме аудита настраиваются ярлыки на панели задач. При создании нового пользователя необходимо, чтобы эти ярлыки на панели задач были такими же, а не дефолтными.
CopyProfile в этом не помогает.

Подскажите, пожалуйста, как решить эту незамысловатую задачку?


Спасибо!

Казбек
31-03-2015, 01:15
The_Immortal,

How to Pin to Start Menu/Task Bar for Default User (https://social.technet.microsoft.com/Forums/windows/en-US/73eb1c0a-fc78-4ae7-ba6d-356d9a9a5328/solved-how-to-pin-to-start-menutask-bar-for-default-user?forum=w7itproinstall)

Pin Items to the Start Menu or Windows 7 Taskbar via Script (http://blogs.technet.com/b/deploymentguys/archive/2009/04/08/pin-items-to-the-start-menu-or-windows-7-taskbar-via-script.aspx)

The_Immortal
31-03-2015, 11:28
Казбек, How to Pin to Start Menu/Task Bar for Default User »Тут вообще жесть - километровые решения :)
Pin Items to the Start Menu or Windows 7 Taskbar via Script »Здесь вроде попроще, но непонятно каким образом зафигачить это для дефолтного пользователя....

Казбек
31-03-2015, 11:32
The_Immortal,
Посмотрите внимательно. По первой ссылке там несколько решений.

The_Immortal
31-03-2015, 11:47
Казбек, По первой ссылке там несколько решений. »Я посмотрел итоговое - оно основано на решении, приведенном в статье Pin Items to the Start Menu or Windows 7 Taskbar via Script », но вопрос каким образом зафигачить это для дефолтного пользователя »остается открытым.



UPD:Я посмотрел итоговое »Кстати, Вы не могли бы его протестировать у себя?
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
Использование:
pinunpin.vbs pin taskbar "C:\Program Files (x86)\Mozilla Firefox\firefox.exe"

У меня выдает ошибку "Невозможно создание объекта Scripting.FileSystemObject" - вероятно, у меня какие-то проблемы с WSH, т.к. автор пишет, что всё работает "brilliantly".



UPD2: запустил вышеуказанный скрипт на другой машине с Win 7 - ошибки не было, но и эффекта никакого не возымело.

Iska
31-03-2015, 13:00
У меня выдает ошибку "Невозможно создание объекта Scripting.FileSystemObject" »
The_Immortal, где именно, на какой строке выдаёт? У Вас ОС — x64? Версия — английская?

The_Immortal
31-03-2015, 13:25
Iska, на какой строке выдаёт? »Set s_oFSO = CreateObject("Scripting.FileSystemObject")
У Вас ОС — x64? Версия — английская? »x64, русская.

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

Правда для начала хотелось бы удостовериться, что скрипт действительно не работает.
Пожалуйста, протестируйте кто-нибудь его.

Iska
31-03-2015, 14:05
запустил вышеуказанный скрипт на другой машине с Win 7 - ошибки не было, но и эффекта никакого не возымело. »
Разумеется не возымело эффекта, поскольку:
русская. »
и глаголы в таких местах:
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

должны быть локализованы: «Закрепить программу в панели задач» и т.п. (текст приведён условный, по памяти), а исполнение глагола («s_oVerb.DoIt») — раскомментировано.

Set s_oFSO = CreateObject("Scripting.FileSystemObject") »
Проверьте ещё раз.

The_Immortal
31-03-2015, 15:15
Iska, Разумеется не возымело эффекта»Действительно, забыл про это, спасибо!

Скорректировал скрипт на русский вариант (лишние проверки и функции пока убрал). Получилось вот так: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 По-прежнему никакого эффекта, т.к. не выполняется условие If Replace(s_oVerb.name, "&", "") = "Закрепить на панели задач"
Фразу "Закрепить на панели задач" я взял из результата выполнения скрипта ListVerbs.vbs, взятого отсюда (blogs.technet.com/b/deploymentguys/archive/2009/04/08/pin-items-to-the-start-menu-or-windows-7-taskbar-via-script.aspx). Он выдал следующее:
Verbs for item: C:\Program Files (x86)\Mozilla Firefox\firefox.exe
==================================================================
&Открыть
Запуск от имени &администратора
Исправл&ение неполадок совместимости

Закрепить на &панели задач
&Закрепить в меню "Пуск"
Восста&новить прежнюю версию

&Вырезать
&Копировать
Создать &ярлык
&Удалить
Переи&меновать
Сво&йства
Вызывал также внутри цикла WScript.Echo s_oVerb.name - показывало "Закрепить на &панели задач".

Откуда там амперсанд в середине фразы мне не очень понятно, но я пробовал и с ним через просто сравнение:If s_oVerb.name = "Закрепить на &панели задач" Then и без него (т.е. с заменой, как в изначальном примере).


UPD: нашел в Инете такой вариант сравнения:
...
VerbName = Replace(objVerb.Name, "&", "")
If VerbName = "Закрепить программу в панели задач" Or VerbName = "Закрепить на панели задач" Or VerbName = "Pin to Taskbar" Then
objVerb.DoIt
...
Также не работает :(


UPD2: всё в порядке. Что-то не так с ОС, поэтому и не работало. Попробовал на чистой ОС - всё работает.

The_Immortal
06-05-2015, 18:30
Всех приветствую!

На этот раз необходимо изъять программу из панели задач 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".

Всем спасибо!

zxawfd@vk
06-12-2023, 12:40
Всем привет!

Нужна помощь! Проблема по данной теме.
Windows 10 Pro 22h2. При создании учетной записи на панели задач висят значки: Edge, Проводник и Windows Store.

Аудит.
Пробовал чистить:
"%appdata%\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar"
"C:\Users\Default\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar"

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband
HKEY_USERS\Custom\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Taskband

CopyProfile TRUE (работает точно, т.к. остальные настройки сохраняются).

В общем всё, что выше, никак не помогает. Нашел тут в теме информацию о Скриптах. Ссылки к сожалению уже не рабочие, почитать информацию нет возможности. Я не понимаю, как правильно использовать скрипты. Мне по идее надо, чтобы просто при создании учетки не было никаких значков на панели задач. Чтобы пользователь их сам создавал, какие надо. Ну или потом в будущем сделать определенные значки. Суть думаю понятна.
Ну так вот куда вставлять эти скрипты, чтобы они сохранились и работали разово при создании учетки? Подробной информации или для чайника нигде не нашел.

sov44
08-12-2023, 19:24
Мне по идее надо, чтобы просто при создании учетки не было никаких значков на панели задач. »


Windows Registry Editor Version 5.00

;Изъять все программы из Панели задач
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband]
;Не показывать ссылки на программы в Панели задач
"Favorites"=hex:ff
;Удалить записи о закреплённых программах в Панели задач
"FavoritesResolve"=-

; Изъять кнопку Картана в панели быстрого запуска
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
"ShowCortanaButton"=dword:00000000

;Изъять кнопку Просмотр задач в панели быстрого запуска
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
"ShowTaskViewButton"=dword:00000000

; Поле поиска скрыто в панели быстрого запуска
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Search]
"SearchboxTaskbarMode"=dword:00000000

zxawfd@vk
13-12-2023, 12:15
Windows Registry Editor Version 5.00
;Изъять все программы из Панели задач
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband]
;Не показывать ссылки на программы в Панели задач
"Favorites"=hex:ff
;Удалить записи о закреплённых программах в Панели задач
"FavoritesResolve"=-
; Изъять кнопку Картана в панели быстрого запуска
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
"ShowCortanaButton"=dword:00000000
;Изъять кнопку Просмотр задач в панели быстрого запуска
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
"ShowTaskViewButton"=dword:00000000
; Поле поиска скрыто в панели быстрого запуска
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Search]
"SearchboxTaskbarMode"=dword:00000000 »

Я так понял это файл реестр. Внес изменения через аудита. Не помогло, значки так и висят при создании учетки. Либо Я что-то делаю не так.

sov44
13-12-2023, 12:22
Я так понял это файл реестр »
На живой системе работает, после перезагрузки.

Внес изменения через аудита. »
HKEY_CURRENT_USER...
В режиме аудита, кмк пользователя нет, пробуйте через "машину".




© OSzone.net 2001-2012