どうもミツシマです。
以前、「コマンド(VBS)でタスクバーにピン留め出来るか検証してみた」をやってみました。
結果としてはWindows10では、コマンドでタスクバーからアプリのピン留めを外すことは出来ても、ピン留めすることは出来ないという検証結果でした。
この時は通常のアプリをVBSコマンドで外すコマンドを検証していました。
今回はWIndow10で初めてログインすると初期でタスクバーにピン留めされている「Microsoft Edge」・「Microsoft Store」・「メール」の3つをタスクバーから削除するPowershellコマンドを検証してみました。
検証環境は以下の通り
PC:Windows10 Pro 1809
完成したスクリプトがこちら↓↓↓
#スクリプトパス取得
$ScriptPath = $MyInvocation.MyCommand.Path
#「Microsoft Edge」タスクバーからピン留めを外す
$AppName = "Microsoft Edge"
$wshell = (New-Object -Com Shell.Application).NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').Items() | Where-Object {$_.Name -eq $AppName}
$wshell.Verbs() | Where-Object {$_.Name -like "*タスク バーからピン留めを外す*"} | ForEach-Object{$_.DoIt()}
#「Microsoft Store」タスクバーからピン留めを外す
$AppName = "Microsoft Store"
$wshell = (New-Object -Com Shell.Application).NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').Items() | Where-Object {$_.Name -eq $AppName}
$wshell.Verbs() | Where-Object {$_.Name -like "*タスク バーからピン留めを外す*"} | ForEach-Object{$_.DoIt()}
#「メール」タスクバーからピン留めを外す
$AppName = "メール"
$wshell = (New-Object -Com Shell.Application).NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').Items() | Where-Object {$_.Name -eq $AppName}
$wshell.Verbs() | Where-Object {$_.Name -like "*タスク バーからピン留めを外す*"} | ForEach-Object{$_.DoIt()}
#ps1ファイルの自己削除
Remove-Item -Path $ScriptPath -Force
通常のデスクトップアプリケーションであれば、ショートカットがあるフォルダのNameSpaceを指定すれば良かったがUWPアプリの場合は「shell:::{4234d49b-0245-4df3-b780-3893943456e1}」等で指定するようだ。
※呼び出し方法はこれだけではないようだが。
後はアプリケーション名と合致するオブジェクトを「$wshell」変数に代入して、そこからVerbメソッドを使用してタスクバーからピン留めを外している。
ちょっと躓いたところとして、「メール」アプリが日本語で登録されているところである。
※海外のサイトを参考に作成していたので、最初「Mail」と指定して失敗していた
アプリケーションとして登録されている名前を確認したい時には
「$wshell = (New-Object -Com Shell.Application).NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').Items() | Select-Object Name」で確認出来る。
最後にこのスクリプト自体を削除するコマンドを入れているが、これは不要であればコメントアウトしてもらえばOK。
検証環境だとバッチリ動作したので今回の検証はここで終了(^o^)
以前、「コマンド(VBS)でタスクバーにピン留め出来るか検証してみた」をやってみました。
結果としてはWindows10では、コマンドでタスクバーからアプリのピン留めを外すことは出来ても、ピン留めすることは出来ないという検証結果でした。
この時は通常のアプリをVBSコマンドで外すコマンドを検証していました。
今回はWIndow10で初めてログインすると初期でタスクバーにピン留めされている「Microsoft Edge」・「Microsoft Store」・「メール」の3つをタスクバーから削除するPowershellコマンドを検証してみました。
検証環境は以下の通り
PC:Windows10 Pro 1809
完成したスクリプトがこちら↓↓↓
〜Delete-TaskbarUWPApps.ps1〜
#スクリプトパス取得
$ScriptPath = $MyInvocation.MyCommand.Path
#「Microsoft Edge」タスクバーからピン留めを外す
$AppName = "Microsoft Edge"
$wshell = (New-Object -Com Shell.Application).NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').Items() | Where-Object {$_.Name -eq $AppName}
$wshell.Verbs() | Where-Object {$_.Name -like "*タスク バーからピン留めを外す*"} | ForEach-Object{$_.DoIt()}
#「Microsoft Store」タスクバーからピン留めを外す
$AppName = "Microsoft Store"
$wshell = (New-Object -Com Shell.Application).NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').Items() | Where-Object {$_.Name -eq $AppName}
$wshell.Verbs() | Where-Object {$_.Name -like "*タスク バーからピン留めを外す*"} | ForEach-Object{$_.DoIt()}
#「メール」タスクバーからピン留めを外す
$AppName = "メール"
$wshell = (New-Object -Com Shell.Application).NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').Items() | Where-Object {$_.Name -eq $AppName}
$wshell.Verbs() | Where-Object {$_.Name -like "*タスク バーからピン留めを外す*"} | ForEach-Object{$_.DoIt()}
#ps1ファイルの自己削除
Remove-Item -Path $ScriptPath -Force
〜解説〜
以前VBSスクリプトで使用していたshellオブジェクトを呼び出して使用している。通常のデスクトップアプリケーションであれば、ショートカットがあるフォルダのNameSpaceを指定すれば良かったがUWPアプリの場合は「shell:::{4234d49b-0245-4df3-b780-3893943456e1}」等で指定するようだ。
※呼び出し方法はこれだけではないようだが。
後はアプリケーション名と合致するオブジェクトを「$wshell」変数に代入して、そこからVerbメソッドを使用してタスクバーからピン留めを外している。
ちょっと躓いたところとして、「メール」アプリが日本語で登録されているところである。
※海外のサイトを参考に作成していたので、最初「Mail」と指定して失敗していた
アプリケーションとして登録されている名前を確認したい時には
「$wshell = (New-Object -Com Shell.Application).NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').Items() | Select-Object Name」で確認出来る。
最後にこのスクリプト自体を削除するコマンドを入れているが、これは不要であればコメントアウトしてもらえばOK。
検証環境だとバッチリ動作したので今回の検証はここで終了(^o^)
スポンサードリンク
コメント