マウスやトラックパッド不要！PowerShellでパソコンからウェブページを開く方法

# 1.はじめに
新生活が始まり、業務パソコンを使う人も増えているかもしれません。しかし、業務パソコンの中にはトラックパッドの操作が非常に難しいものもあります。（私のパソコンもその一つです😢）そのため、勤務管理や交通費申請などのためにウェブページにアクセスするのに時間がかかり、非効率的な状況になってしまいます。

そこで、この記事では、マウスやトラックパッドを使用せずに、PowerShellのコマンドだけで指定したURLを開く方法を紹介します！

# 2.PowerShellとは

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/648527/7c9f4b46-e18b-0959-bf6b-8912b3168e32.png)
PowerShell（パワーシェル）は、現在のWindowsのオペレーティングシステム（OS）に標準搭載されている、拡張可能なコマンドラインインターフェース（CLI:command line interface）です。CLIとは、マウスを使わずにキーボードのみで操作する手段のことです。PowerShellは、ひとことで言うとコマンドプロンプトの機能強化版です。

# 3.PowerShellからwebサイトを直接開く設定
## 3.1Profileとは
profileとは、PowerShell の開始時に実行されるスクリプトです。proが「前に」という意味を持つことを踏まえると、profileが「事前に(読み込こまれる)ファイル」として理解しやすいのではないでしょうか。
このprofileにwebページを開くためのショートカットキーを登録することで、Powershellから簡単にwebサイトを開くことを実現させます。このショートカットの実装にはaliasと呼ばれるコマンドを利用します。[(aliasの説明)](https://eng-entrance.com/linux-command-alias)


## profileの作成
profileはユーザーやOSごとに異なる場所に作られることになっています。
![スクリーンショット 2023-06-21 23.13.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/648527/045e4f63-0b99-1800-7230-92735fda1fdd.png)
(引用：[about_Profiles](https://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.core/about/about_profiles?view=powershell-7.3))

OSやユーザーごとにパスの参照を考えることは非常に負担ですね。便利なことに、 $PROFILE 変数には、現在のセッションで使用できるPowerShellプロファイルへのパスが自動で格納されます！!
そのためこれを用いてprofileを作成していきます。

PowerShellのデフォルト設定ではスクリプト実行が許可れさています。しかし、企業利用の場合、管理者がスクリプト実行を許可していないことも想定されます。そのため、スクリプト実行許可が無い場合は CurrentUser で実行許可するようにしています。
```powershell:スクリプトの実行許可
if((Get-ExecutionPolicy -Scope LocalMachine) -ne "RemoteSigned"){Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force}
```
次にprofileを作成します。以下のコードでprofileが無ければ新規作成します。
```powershell:Profileが無ければ作成する。
if(-not (Test-Path $PROFILE)){New-Item $PROFILE -Type File -Force}
```
次に、profileをメモ帳で開き亜mす。
```powershell:# メモ帳で Profile を開く
notepad $PROFILE
```
上手くいけばメモ帳が開かれるはずです。ここにAliasを登録していきます。


## 3.2Alias登録
Linuxにはファイルを作成するコマンドにtouchがありましたが、PowerShellではNew-Itemが代替しています。touchコマンドが使用できるように以下をメモ帳に追加します。
```powershell:touchの登録
Set-Alias touch New-Item
```
メモ帳を保存し、PowerShellを再起動するとtouchコマンドが使用できるはずです！

しかし同じ要領で以下のalias登録の場合はどうでしょうか。
```powershell:引数込みのalias登録(chでchromeを開く)
set-Alias ch start ‘https://www.google.com/’
```
このコマンドはエラーをはいてしまいます。
実はこのような引数込みのalias登録はpowershellではできないのです😢

## 3.3引数込みのショートカットを登録する方法
この問題には、ショートカットの登録にaliasを使用せず、関数を利用することで解決します。
```powershell:引数込みのalias登録を行う関数
function エイリアス名() {
    コマンド名 引数1 引数2 ... 引数N
}
alias 
```
具体的にChromeを開くエイリアスは以下の通りです。
```powershell:Chromeを開くエイリアス
function ch() {
    start "https://www.google.com/"
}
```
メモ帳を保存し、Powershellを再起動したあとにchと入力してみてください。自動でChromeが起動されたはずです！！

# 4.おわりに

この方法を使えば、マウスやトラックパッドの操作が難しい業務パソコンでも効率的にウェブページにアクセスすることができます。

また、この方法は他にも応用することができます。例えば、chに引数を与えた時にChromeでの検索結果を返すこともできます！自分のニーズに合わせてさまざまなURLやコマンドの登録をぜひ試してみてください！


ご利用いただきありがとうございました。お仕事もはかどりますように！



# 参考
https://qiita.com/smicle/items/0ca4e6ae14ea92000d18

https://www.vwnet.jp/windows/PowerShell/2020100601/PsAlias.htm

https://qiita.com/kakekakemiya/items/6bf62819730f9a3bcd3e

https://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.core/about/about_profiles?view=powershell-7.3

https://qiita.com/karakuri-t910/items/d751987065d4c52b3af4