Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista (http://forum.oszone.net/forumdisplay.php?f=83)
-   -   [решено] Изъять программу из панели задач (http://forum.oszone.net/showthread.php?t=297702)

The_Immortal 30-03-2015 23:35 2489842

Изъять программу из панели задач
 
Всех приветствую!

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

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


Спасибо!

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

The_Immortal,

How to Pin to Start Menu/Task Bar for Default User

Pin Items to the Start Menu or Windows 7 Taskbar via Script

The_Immortal 31-03-2015 11:28 2489928

Казбек,
Цитата:

Цитата Казбек
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 2489931

The_Immortal,
Посмотрите внимательно. По первой ссылке там несколько решений.

The_Immortal 31-03-2015 11:47 2489936

Казбек,
Цитата:

Цитата Казбек
По первой ссылке там несколько решений. »

Я посмотрел итоговое - оно основано на решении, приведенном в статье
Цитата:

Цитата Казбек
Pin Items to the Start Menu or Windows 7 Taskbar via Script »

, но вопрос
Цитата:

Цитата 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


Использование:
Код:

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 2489958

Цитата:

Цитата The_Immortal
У меня выдает ошибку "Невозможно создание объекта Scripting.FileSystemObject" »

The_Immortal, где именно, на какой строке выдаёт? У Вас ОС — x64? Версия — английская?

The_Immortal 31-03-2015 13:25 2489967

Iska,
Цитата:

Цитата Iska
на какой строке выдаёт? »

Код:

Set s_oFSO = CreateObject("Scripting.FileSystemObject")
Цитата:

Цитата Iska
У Вас ОС — x64? Версия — английская? »

x64, русская.

Но разбираться с данной проблемой сейчас смысла не имеет, т.к.
Цитата:

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

Надо разбираться почему скрипт не приносит никакого эффекта.

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

Iska 31-03-2015 14:05 2489987

Цитата:

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

Разумеется не возымело эффекта, поскольку:
Цитата:

Цитата 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

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

Цитата:

Цитата The_Immortal
Set s_oFSO = CreateObject("Scripting.FileSystemObject") »

Проверьте ещё раз.

The_Immortal 31-03-2015 15:15 2490017

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

По-прежнему никакого эффекта, т.к. не выполняется условие
Код:

If Replace(s_oVerb.name, "&", "") = "Закрепить на панели задач"
Фразу "Закрепить на панели задач" я взял из результата выполнения скрипта ListVerbs.vbs, взятого отсюда. Он выдал следующее:
Цитата:

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 2504505

Всех приветствую!

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

Всем привет!

Нужна помощь! Проблема по данной теме.
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 3021239

Цитата:

Цитата zxawfd@vk
Мне по идее надо, чтобы просто при создании учетки не было никаких значков на панели задач. »

Код:

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 3021492

Цитата:

Цитата sov44
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 3021493

Цитата:

Цитата zxawfd@vk
Я так понял это файл реестр »

На живой системе работает, после перезагрузки.

Цитата:

Цитата zxawfd@vk
Внес изменения через аудита. »

Цитата:

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


Время: 17:17.

Время: 17:17.
© OSzone.net 2001-