windows10でIMEが無効になった場合の対処
windows10で割りと頻繁にIMEが無効になってしまって、
そのたびリブートしたりして相当なストレスだったが、下記で有効化出来ることが分かった。
「ファイル名を指定して実行」 > ctfmon.exe
Windows10のPowerShellコンソールでaliasを設定する方法
- Windowsでちょいちょいgitを使う際にpowershellを利用していたのだけど、いい加減
git diff
とか素直に打つのが嫌になった。g d
で済ませたい。 d
のようなgitコマンドのaliasは、linux同様.gitconfig
に設定すればOK。g
の部分をどうすればいいか調べたところ、ちょっとハマったのでメモ。
powershellプロファイル作成
powershellにも.bashrc
的な設定ファイルがあるとのことなので、まずはそれを作る。
New-item –type file –force $profile
上記コマンドを実行すると、下記にプロファイルが作成される。 これがpowershellコンソール起動時に毎回読み込まれる。
%USERPROFILE%\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
プロファイルにaliasを登録
作成後は中身は空なので、Set-Alias
コマンドを記載し、起動時にaliasが設定されるようにする。
Set-Alias g git
とりあえずこれでOK、意気揚々とpowershellを起動してみると…
Windows PowerShell Copyright (C) 2015 Microsoft Corporation. All rights reserved. . : このシステムではスクリプトの実行が無効になっているため、ファイル C:\Users\***\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 を読み込む ことができません。詳細については、「about_Execution_Policies」(http://go.microsoft.com/fwlink/?LinkID=135170) を参照してください。 発生場所 行:1 文字:3 + . 'C:\Users\***\Documents\WindowsPowerShell\Microsoft.PowerShel ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : セキュリティ エラー: (: ) []、PSSecurityException + FullyQualifiedErrorId : UnauthorizedAccess PS C:\Users\***>
ダメ。どうも Powershell には実行ポリシーというものがあるらしく、デフォルトではRestricted
というpowershellスクリプトの実行許可が無い状態になっているらしい。
> Get-ExecutionPolicy Restricted
Powershell 実行ポリシー変更
仕方が無いので、実行ポリシーを変更する。管理者権限でpowershellを実行してコマンド実行。
> Set-ExecutionPolicy RemoteSigned 実行ポリシーの変更 実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies のヘルプ トピック (http://go.microsoft.com/fwlink/?LinkID=135170) で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか? [Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "N"): Y > Get-ExecutionPolicy RemoteSigned
そして再度実行…
Windows PowerShell Copyright (C) 2015 Microsoft Corporation. All rights reserved. . : このシステムではスクリプトの実行が無効になっているため、ファイル C:\Users\***\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 を読み込む ことができません。詳細については、「about_Execution_Policies」(http://go.microsoft.com/fwlink/?LinkID=135170) を参照してください。 発生場所 行:1 文字:3 + . 'C:\Users\***\Documents\WindowsPowerShell\Microsoft.PowerShel ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : セキュリティ エラー: (: ) []、PSSecurityException + FullyQualifiedErrorId : UnauthorizedAccess PS C:\Users\***>
まだダメ。powershell開き直すとダメになる。どうも Windows10 の場合はレジストリを変更する必要があるらしい(2016/06/27現在)。
参考: windows 10 - Cannot set Powershell ExecutionPolicy for CurrentUser - Server Fault
レジストリ作成
- キー:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell
- 値: ExecutionPolicy(文字列)
- 値のデータ: RemoteSigned
これを設定すると晴れて、
PS C:\WINDOWS\system32> g usage: git [--version] [--help] [-C <path>] [-c name=value] [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path] [-p | --paginate | --no-pager] [--no-replace-objects] [--bare] [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>] <command> [<args>]
ようやく alias が設定された! 中々大変だった…
まとめ
- PowerShellプロファイル作成
New-item –type file –force $profile ⇒ %USERPROFILE%\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
- プロファイルにaliasを登録
Set-Alias g git
- レジストリ作成
- キー:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell
- 値: ExecutionPolicy(文字列)
- 値のデータ: RemoteSigned
- キー:
おしまい。
opensslを用いてWebサーバのSSLプロトコルバージョンとかを確認する
SSLを設定するにあたって、特定プロトコルの特定暗号スイートで通信出来ているか確認する必要があった。 opensslを用いて確認出来るらしいので、めちゃ簡単なスクリプトを書いて動作確認してみた。
TARGET_HOST
,PORT
,SSL_PROOTCOLS
,SSL_CIPHERS
の部分をお好みで変えてどうぞ。
#!/bin/bash TARGET_HOST="hogehoge.hoge" PORT=443 SSL_PROTOCOLS="tls1_2 tls1_1 tls1 ssl3" SSL_CIPHERS="AES128-GCM-SHA256 AES128-SHA256 AES128-SHA AES256-GCM-SHA384 AES256-SHA256 AES256-SHA" for PROTOCOL in `echo ${SSL_PROTOCOLS}`; do for CIPHER in `echo ${SSL_CIPHERS}`; do echo "==============================================================================" echo " Protocol: ${PROTOCOL} Cipher: ${CIPHER} " echo "==============================================================================" openssl s_client -connect ${TARGET_HOST}:${PORT} -${PROTOCOL} -cipher ${CIPHER} done done