windows - Unpin genvejstasterne Microsoft Edge og gemmer programmatisk

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg opsætter computere dagligt, og jeg skal fjerne genvejstasterne i Microsoft Edge and Store.


Jeg har problemer med at oprette et script, og jeg har søgt efter andre stackoverflow indlæg, men de var ikke nyttige for mig.


Er der nogen, der har et script, der kan frigøre MS Edge and Store-proceslinjen genveje?

Bedste reference


Ja, du kan frigøre Microsoft Edge og gemme apps fra proceslinjen ved at køre følgende ps-kommandoer.


$appname = "Microsoft Edge"
((New-Object -Com Shell.Application).NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').Items() | ?{$\_.Name -eq $appname}).Verbs() | ?{$\_.Name.replace('&','') -match 'Unpin from taskbar'} | \%{$\_.DoIt(); $exec = $true}
$appname = "Store"
((New-Object -Com Shell.Application).NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').Items() | ?{$\_.Name -eq $appname}).Verbs() | ?{$\_.Name.replace('&','') -match 'Unpin from taskbar'} | \%{$\_.DoIt(); $exec = $true}


Ændring af $appname -variablen skal arbejde for ethvert program på proceslinjen, og hvis det ikke er en InvokeMethodOnNull vil fejl blive kastet.


Hvad dette gør:
Det opregner Shell/taskbar COM-objektets navneområde


Matcher varen med navnet $appname (i dette tilfælde Edge og Store)


Gets det magiske Unpin from taskbar verb af den com objekt


Udfører verben og fjerner den fra proceslinjen uden at skulle dræbe explorer.exe.

Andre referencer 1


Meget flot løsning fra Judge2020, +1



  • Med en RegEx og -match i stedet for -qq kan du frigøre flere Apps i et løb

  • De unpin-verb er lokaliseret, på tysk det er s Von "Start" lösen






$appnames = "^Microsoft Edge$|^Store$"
((New-Object -Com Shell.Application).NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').Items() | 
  Where-Object{$\_.Name -match $appnames}).Verbs() | 
  Where-Object{$\_.Name.replace('&','') -match 'Unpin from taskbar|Von "Start" lösen'} | 
  ForEach-Object{$\_.DoIt(); $exec = $true}