某PCショップ店員の覚書

勤務中に作成したプログラムやスクリプトのまとめ

f5.si へPowershellからHTTP GETリクエストを投げる方法

身内にDDNSの「f5.si」を利用している人が居るので、その人向けにPowershell上からf5.siへHTTP GETリクエストを投げ、ホスト名を変更する方法を書きます。

# f5.si へHTTP GETリクエストを投げる
# グローバルIPアドレスの取得
$address = (Invoke-WebRequest -Uri "inet-ip.info/ip").Content

# 投げるGETリクエスト先
$url = "https://f5.si/update.php?domain=USERNAME&password=PASSWORD&ip=$address" # ipv4 address

# レスポンス Write-Host $res 等で詳細を表示可能
$res = Invoke-WebRequest $url

# ループさせないのでswitch caseではなくif elseifを利用
if ($res.Content -ne "OK:SUCCESS (good)"){
    if($res.Content -eq "ERROR:100"){
        Write-Warning "パスワードまたはトークンが間違っています"
    }elseif($res.Content -eq "ERROR:110"){
        Write-Warning "ユーザー名が間違っています"
    }elseif($res.Content -eq "ERROR:120"){
        Write-Warning "IPアドレスの形式が不正です"
    }elseif($res.Content -eq "ERROR:200"){
        Write-Warning "[システムエラー]DBサーバーに接続不能です"
    }elseif($res.Content -eq "ERROR:210"){
        Write-Warning "[システムエラー]DNSサーバーに接続不能です"
    }elseif($res.Content -eq "ERROR:300"){
        Write-Warning "[システムエラー]更新確認ができませんでした"
    }elseif($res.Content -eq "ERROR:400"){
        Write-Warning "詳細設定でCNAMEが設定中のためAレコードが利用不可です"
    }else{
        Write-Warning "不明なエラー"
    }
    Write-Warning "エラーが発生しているため、更新ができませんでした。"
    Write-Warning "エラー内容にしたがって該当箇所を修正し、再度スクリプトを実行してください"
}
pause
exit

USERNAMEとPASSWORDを自分の登録情報へ変更すれば問題なく変更できるはずです。
※ f5.siを利用していないのでテストもデバッグもしてません。

DiCE等を利用しないメリットとしては

  • タスクスケジューラに登録すればDiCEより短い間隔で更新の手続きを行える
  • DiCEとf5.si用追加batをダウンロードする必要がない

以上です。

Google Chromeの自動ダウンロードとインストール

Google Chromeの自動ダウンロードとインストールを行うスクリプトを見つけましたので共有します。
参照したサイト:

log.noid11.com

$Path = $env:TEMP
$Installer = "chrome_installer.exe"
Invoke-WebRequest "https://dl.google.com/tag/s/appguid%3D%7B8A69D345-D564-463C-AFF1-A69D9E530F96%7D%26browser%3D0%26usagestats%3D1%26appname%3DGoogle%2520Chrome%26needsadmin%3Dprefers%26brand%3DGTPM/update2/installers/ChromeSetup.exe" -OutFile $Path\$Installer
Start-Process -FilePath $Path\$Installer -Args "/silent /install" -Verb RunAs -Wait
Remove-Item $Path\$Installer
Write-Host "Google Chromeのダウンロードとインストール処理が完了しました"
pause

※アドレスが途中で切れていますが、スクリプト全てをコピーすれば正しいアドレスが出ます。

自動でダウンロードとインストールを行い、インストーラーは自動で削除してくれるので大変便利です。
外部ストレージなどにスクリプトを保存し、パソコンを新規購入した際や初期化を行った際に実行してください。

Windows パソコンの設定を変えてゲームのパフォーマンスを上げよう

皆さん、ゲーミングパソコンを購入あるいは自作してからパソコンの設定は変えていますか?
例えば電源プランの変更やマウス加速のOFFなど、ゲームのパフォーマンスを上げる設定はいくつかあります。
今回はPowershellから変更できる項目を自動で変更してくれるスクリプトを組んだので紹介します。

###########################################################################
# オートゲーミングセッター(Auto Gaming Setter) 
# 設定する項目
# ・マウス加速のOFF
# ・電源プランの変更 -高パフォーマンス
# ・高速スタートアップの無効化
# ・高速シャットダウンの無効化 
# Author   : saica
#  blog    : https://saica94.hatenablog.com/
#  Twitter : https://twitter.com/daikiy6111
#  Discord : agumon#1648
###########################################################################

###########################################################################
# 管理者権限でなければ昇格してから実行
###########################################################################
if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole("Administrators")){
    Start-Process powershell.exe "-File `"$PSCommandPath`"" -Verb RunAs
    exit
}

###########################################################################
# ポリシーの変更
###########################################################################
Set-ExecutionPolicy RemoteSigned -Scope Process -Force

###########################################################################
# メイン処理
###########################################################################
# マウス加速をoffにするためのレジストリパスの指定
$reg_path = "HKCU:\Control Panel\Mouse"
$reg_key1 = "MouseSpeed"
$reg_key2 = "MouseThreshold1"
$reg_key3 = "MouseThreshold2"

# キーを更新する
Write-Host "マウス加速をOFFにします"
Set-ItemProperty $reg_path -name $reg_key1 -value "0"
Set-ItemProperty $reg_path -name $reg_key2 -value "0"
Set-ItemProperty $reg_path -name $reg_key3 -value "0"
Write-Host "マウス加速をOFFにしました。"

# 電源プランの変更
Write-Host "-----------------------------------------------------------------"
# Ryzen 5000シリーズは電源プランを変更すると逆にパフォーマンスが落ちるのでRyzen 5000シリーズCPUを使っている場合は変更しない
# CPU名の取得
$ReturnData = New-Object PSObject | Select-Object CPUName
$Win32_Processor = Get-WmiObject Win32_Processor
$ReturnData.CPUName = @($Win32_Processor.Name)[0]

if ($ReturnData.CPUName -Like "AMD Ryzen * 5**0*") {
    Write-Host "Ryzen 5000シリーズはバランスプランが推奨されているため、電源プラン設定を変更せずスキップします。" -BackgroundColor Yello -ForegroundColor Red
    # 休止状態を無効にし、高速スタートアップを自動的に無効化させる
    powercfg /hibernate off
    powercfg -setacvalueindex scheme_balanced sub_buttons pbuttonaction 3
} else {
    Write-Host "電源プラン設定を変更中..."
    # 電源プランを高パフォーマンスに変更
    powercfg /setactive scheme_min
    Write-Host "電源プランの設定 高パフォーマンス化が完了しました。"
    powercfg /hibernate off
    powercfg -setacvalueindex scheme_min sub_buttons pbuttonaction 3
    Write-Host "高速スタートアップを無効化しました。"
}
Write-Host "電源プランの設定が完了しました。"
Write-Host "-----------------------------------------------------------------"
Write-Host "全ての処理が完了しました。"
Write-Host "念のため、パソコンを再起動させてください。"
Write-Host "プログラムを終了します。"
pause
exit

上記のスクリプトPowershell ISEで実行するか、.ps1形式で保存して実行すれば自動で設定を行ってくれます。
変更する項目は
・マウス加速のOFF
・電源プランの変更
・高速スタートアップの無効化
です。
私が使っているスクリプトにはさらにGPUドライバのインストールも自動化の対象となっていますが
RadeonGeForceかで別れますし、この記事を見る方にとってはGPUドライバのダウンロードも若干難易度が高いかもしれないので
このスクリプトからは除外しています。

念のため、GPUドライバの自動アップデートも知りたい!という方のためにスクリプトを続きに書いておきますので
気になる方は続きをどうぞ。

続きを読む

Powershellにインストールされているモジュールを一括でアップデートする

暇つぶしにPowershellにインストールされているモジュールを一括でアップデートするスクリプトを書いたので共有します。

# 管理者権限へ昇格させる
if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole("Administrators")){
    Start-Process powershell.exe "-File `"$PSCommandPath`"" -Verb RunAs
    exit
}
# ポリシーの変更
Set-ExecutionPolicy RemoteSigned -Scope Process -Force

# インストールされたモジュールを表示
Write-Host "インストールされたモジュールを表示します。"
Get-InstalledModule

# ModulesのUpdate処理
Get-InstalledModule | ForEach-Object {
$Module_name = $_.Name
Write-Host $Module_name "をアップデート中です"
Update-Module -Name $Module_name
}

Write-Host "全てのアップデート処理が完了しました"
pause
exit

うまくいけば

こんな感じに。


たったこれだけでインストールされたモジュールの一括アップデートができます。
使ってみてね。

予算別オススメBTOパソコン

まずはオススメのBTOパソコンを紹介する前に、どうして今のパソコンは高いのか。
その理由についてご説明いたします。

パソコンの値段が高くなったのは半導体が不足している為

コロナが大流行してから半導体が不足しているといったニュースを目にした方も多いと思います。
この「半導体」とは誤解を恐れずに説明するのであれば
トランジスタダイオード、ICチップなどが当てはまります。
電化製品には「半導体」が多量に使われており、この半導体が不足しているためにパソコンの値段が高騰してしまっています。

では、どうして半導体が不足しているのでしょうか?
また、なぜ不足しているのなら生産数を増やさないのでしょうか?

理由は簡単、コロナ禍だからです。
コロナ禍により半導体生産工場の生産数が激減 -> 船や航空機などの本数が減り、半導体を作るための材料が入手しづらい状態
といった具合です。
人員も材料も減っているので、生産数を増やすことができません。
更にコロナ禍前には潤沢にあったと思われる余剰分も全て使い切ってしまい、半導体を使いたいメーカーが半導体メーカーに受注依頼をかけているのですが、どうやら2023年までは受注分の生産で手一杯で
半導体の中でもとりわけ「サブストレート」と呼ばれる部品が足りないようです。
この「サブストレート」は作るのに数か月もかかる代物で、おいそれと生産数を増やすことも難しいとか。

なので、パソコンの値段の高騰も少なくとも2023年の夏までは現状維持になると私は予想しています。

パソコンを買う際、時期が良いのか悪いのか気にされる方も多いですが、現状は「買い時」です。
価格が高騰する可能性は大いにありますが、大きく値下がりすることはまずありません。
なのでパソコンが欲しいと思ったら即買ってしまいましょう。

Intel製CPUの末尾についてるアルファベットの意味

F
K
KF
CPUから映像を出すことができません オーバークロック対応です CPUから映像を出力することができない、オーバークロック対応CPUです


そしてここからが本題。
パソコンをこれから買う方に向けて予算と目的別にオススメBTOパソコンを紹介します。
※全てデスクトップパソコン

ゲーミングパソコン

ゲーミングパソコンについてはプレイするゲームによりオススメするものが大きく変わりますが、予算別にこれを買っておけば間違いないものをご紹介します。


予算

製品名

価格

CPU

GPU

RAM

SSD

~10万円

無し

~15万円

RM5C-G60S

¥139,980

Intel Core i5 12th

GTX1660S

16GB

500GB

~20万円

RM5C-R36T

¥199,980

RTX3060Ti

~25万円

XA7C-R36T

¥244,979

Intel Core i7 12th

1TB

XA7C-R37

¥259,980

RTX3070

~30万円

ZA9C-R38

¥339,980

Intel Core i9 12th

RTX3080

全てドスパラサイトの物で、特にオススメな物に関しては赤文字にしてあります。
ある程度画質を高くしつつ、快適にゲームをしたいのなら「XA7C-R37」、画質は気にせずプロゲーマーの競技用設定にする予定であれば「RM5C-R36T」が特にオススメです。
また、Ryzen搭載モデルもいくつかありますが12世代Intel CPUと比べるとコスパ”最悪”なので買わないほうが良いです。相性問題もあるし。

クリエイティブ(動画編集など)

このサイトを見て予算から選べば問題ないと思います。
ただし、4K60FPSの動画を編集したいです!でも予算は15万円以内です!といった無茶はできません。
4K動画を編集するなら少なくともRTX3070はほしいですし、搭載RAMを考えてもRTX3080レベルも視野に入れたほうが良いです。

ビジネス or 動画視聴等のデイユース

ミドルタワー、ミニタワー、スリムなど色々ありますがとりあえず
Magnate IMを買っておけば間違いないです。

Ryzen 5000シリーズが良くない理由

単純に性能に対しての価格が高すぎます。
Ryzen 5600XとCore i5 12400を比べた際、Core i5 12400のほうが19%ほど性能が高く、価格はRyzen 5600Xより40%ほど安く買う事が可能です。
5600Xと12400です。12400Fで値段を比べるとさらに安く購入できます。
Core i5 12600Kと比べた場合は目を覆いたくなるほど性能差があり、価格も安いです。


ゲーミングパソコン以外は簡単な紹介でしたが、概ねここに記載のあるものを買えば間違いありません。
この記事が見ている方のパソコン購入の一助になれば幸いです。
それでは。