programing

PowerShell을 사용하여 작업 표시줄에 고정하는 방법

goodsources 2023. 8. 29. 20:30
반응형

PowerShell을 사용하여 작업 표시줄에 고정하는 방법

PowerShell을 사용하여 Windows 7(윈도우 7)의 작업 표시줄에 일부 프로그램을 고정하려면 어떻게 해야 합니까?단계별로 설명해 주세요.

다음 코드를 수정하여 폴더를 작업 표시줄에 고정하는 방법은 무엇입니까?예를들면

$folder = $shell.Namespace('D:\Work') 

이 길에서,example이름이 지정된 폴더입니다.

호출할 수 있습니다.Verb(작업 표시줄에 고정) 셸을 사용합니다.응용 프로그램 COM 개체입니다.다음은 몇 가지 코드 예제입니다.

http://gallery.technet.microsoft.com/scriptcenter/b66434f1-4b3f-4a94-8dc3-e406eb30b750

이 예는 다소 복잡합니다.다음은 단순화된 버전입니다.

$shell = new-object -com "Shell.Application"  
$folder = $shell.Namespace('C:\Windows')    
$item = $folder.Parsename('notepad.exe')
$verb = $item.Verbs() | ? {$_.Name -eq 'Pin to Tas&kbar'}
if ($verb) {$verb.DoIt()}

다른 방법

$sa = new-object -c shell.application
$pn = $sa.namespace($env:windir).parsename('notepad.exe')
$pn.invokeverb('taskbarpin')

또는 핀을 제거

$pn.invokeverb('taskbarunpin')

참고: 메모장.exe가 아래에 없을 수 있습니다.%windir%아래에 존재할 수 있습니다.%windir%\system32서버 OS용입니다.

PowerShell을 통해 이 작업을 수행해야 했기 때문에 다른 사용자가 제공하는 방법을 활용했습니다.PowerShell 모듈에 추가하게 된 구현은 다음과 같습니다.


function Get-ComFolderItem() {
    [CMDLetBinding()]
    param(
        [Parameter(Mandatory=$true)] $Path
    )

    $ShellApp = New-Object -ComObject 'Shell.Application'

    $Item = Get-Item $Path -ErrorAction Stop

    if ($Item -is [System.IO.FileInfo]) {
        $ComFolderItem = $ShellApp.Namespace($Item.Directory.FullName).ParseName($Item.Name)
    } elseif ($Item -is [System.IO.DirectoryInfo]) {
        $ComFolderItem = $ShellApp.Namespace($Item.Parent.FullName).ParseName($Item.Name)
    } else {
        throw "Path is not a file nor a directory"
    }

    return $ComFolderItem
}

function Install-TaskBarPinnedItem() {
    [CMDLetBinding()]
    param(
        [Parameter(Mandatory=$true)] [System.IO.FileInfo] $Item
    )

    $Pinned = Get-ComFolderItem -Path $Item

    $Pinned.invokeverb('taskbarpin')
}

function Uninstall-TaskBarPinnedItem() {
    [CMDLetBinding()]
    param(
        [Parameter(Mandatory=$true)] [System.IO.FileInfo] $Item
    )

    $Pinned = Get-ComFolderItem -Path $Item

    $Pinned.invokeverb('taskbarunpin')
}

프로비저닝 스크립트의 사용 예:


# The order results in a left to right ordering
$PinnedItems = @(
    'C:\Program Files\Oracle\VirtualBox\VirtualBox.exe'
    'C:\Program Files (x86)\Mozilla Firefox\firefox.exe'
)

# Removing each item and adding it again results in an idempotent ordering
# of the items. If order doesn't matter, there is no need to uninstall the
# item first.
foreach($Item in $PinnedItems) {
    Uninstall-TaskBarPinnedItem -Item $Item
    Install-TaskBarPinnedItem   -Item $Item
}

언급URL : https://stackoverflow.com/questions/9739772/how-to-pin-to-taskbar-using-powershell

반응형