2018年3月12日月曜日
2018年3月11日日曜日
【PowerShell】batから管理者権限で実行ポリシー(ExecutionPolicy)変更
【PowerShell】PC起動時にメール送信
と言っても、タスクスケジューラーを使う。zip内のinstall.batを実行して
メールやタスクスケジューラー登録を行う。使用しているのは、bat、PowerShell、タスクスケジューラーなので、動かない場合は適切に書き換える。
BootMail_v0.1.zip
■ソース(Bootメール送信.ps1)
■ソース(設定ファイル作成.ps1)
BootMail_v0.1.zip
■ソース(Bootメール送信.ps1)
# 設定ファイルのパス
$MyInvocation.MyCommand.Path | Split-Path -Parent | sv path
Join-Path $path setting.json | sv setting_path
# 設定ファイル読み込み
cat $setting_path | ConvertFrom-Json | sv conf
# 認証情報生成
ConvertTo-SecureString $conf.pass | sv pass
New-Object System.Management.Automation.PSCredential $conf.user, $pass | sv cred
# ホスト名取得
hostname | sv hst
# メール送信
Send-MailMessage `
-To $conf.to `
-From $conf.from `
-SmtpServer $conf.server `
-Port $conf.port `
-Subject "PC Boot" `
-Credential $cred `
-UseSsl `
-Body $hst
# スクリプトのパスと設定ファイルのパス
$MyInvocation.MyCommand.Path | Split-Path -Parent | sv current_path
Join-Path $current_path setting.json | sv setting_path
Read-Host "送信先(to)メールアドレスを入力してください。" | sv to
Read-Host "送信元(from)メールアドレスを入力してください。" | sv from
Read-Host "SMTPサーバアドレスを入力してください。" | sv server
Read-Host "SMTPサーバポート番号を入力してください。" | sv port
Get-Credential -m "【メールアカウント】と【パスワード】を入力して下さい。" | sv cred
# ユーザ入力情報から設定ファイルを作成。
@{
to = $to
from = $from
server = $server
port = $port
user = $cred.UserName
pass = ConvertFrom-SecureString $cred.Password
} | sv setting
ConvertTo-Json $setting | Set-Content $setting_path
【PowerShell】タスクスケジューラー登録はWin7とWin8以降で別
- Windows7
- schtasks
- Window8やWindow10は、以下が使用可能
- New-ScheduledTaskPrincipal
- New-JobTrigger
- New-ScheduledTaskAction
- Register-ScheduledTask
schtasksよりRegister-ScheduledTaskの方が色々できそうだが、残念ながらWin7では使えない。
2018年3月9日金曜日
【PowerShell】記事一覧
2018年3月8日木曜日
【Linux】コマンドのプログレス表示(リアルタイム表示)を加工する
■CentOSの場合
./progress.sh | xargs -n 1 -d '¥x0D' | sed -u "s/copied/【copy progress report】/g" | awk -v ORS="¥r" '{print;}'
■Ubuntuの場合(CentOSでもできるかも)
./progress.sh | xargs -n 1 -d '\x0D' | sed -u "s/copied/【copy progress report】/g" | ruby -pe 'sub("\n", "\r")'
■Ubuntuの場合(CentOSでもできるかも)
./progress.sh | xargs -n 1 -d '\x0D' | sed -u "s/copied/【copy progress report】/g" | ruby -pe 'sub("\n", "\r")'
■加工内容の変更
sedの引数を変更すると加工内容を変更できる。 -eで正規表現使用可能。
上記では、copiedを【copy progress report】に変換している。
■補足
・sedだけいけると思いきや、プログレス表示は、CRしか来ないのでsedが実行されない。sedはLFを待ってから実行されるみたい。そのため、xargsでCRが来る度にパイプ先に渡すようにする。次にsedで加工。xargsでLN改行したので、最後にawkやrubyでCRに戻す。
・awkやrubyのバージョン、Linuxの種類によって、できたりできなかったりする。
■補足
・sedだけいけると思いきや、プログレス表示は、CRしか来ないのでsedが実行されない。sedはLFを待ってから実行されるみたい。そのため、xargsでCRが来る度にパイプ先に渡すようにする。次にsedで加工。xargsでLN改行したので、最後にawkやrubyでCRに戻す。
・awkやrubyのバージョン、Linuxの種類によって、できたりできなかったりする。
◆例)
以下のようなprogress.sh(中身はかなりテキトー)があったとする。
※Ubuntuでしかもsudo apt install sleepenhが必要。CentOSの場合はusleepに読み替えること。
このprogress.shを実行すると、以下のように表示される。
加工コマンドをかますと、以下となる。
#!/bin/bash
for i in `seq 1 100`; do
complete=`expr ${i} \* 10`
echo -en "copied $complete/1000KB (${i})%\r"
sleepenh 0.1 > /dev/null
done
echo
このprogress.shを実行すると、以下のように表示される。
加工コマンドをかますと、以下となる。
登録:
投稿 (Atom)
-
1.Ctrl+End。 2.Enter。※ 3.Ctrl+A。 4.Alt+A。 5.Alt+M。 ※手順1~2を抜かすと漏れるケースがあるので注意。手順1~2の詳細は後述。 また、手順2で改行が追加されるので注意。 ◆画像付き手順 以下のようなデータがある。...
-
◆メニュー 【SQL Server】開発環境構築(ER図作成にSSMSを使用) ◆DDL文をエクスポート(SQL Server Management Studio)手順 1. Winボタン押下&「SSMS」と入力し、Enter。 2. 認証方法を選択し、接続...
-
■簡易手順 ①Win+R ②gpedit.msc ③[ユーザーの構成]-[Windowsの設定]-[スクリプト(ログオン/ログオフ)]-[ログオフ] ④(Win10)[ユーザの構成-管理用テンプレート]-[システム]-[スクリプト]-[実行中のログオフ スクリプトの命令を...