グループポリシーオブジェクト内で定義されたネットワークドライブのパスを変更したい時

ドライブマップの変更でPowerShellを使って楽をしようと思い、試してみました(net use部分の一括変更です)。

手順

  1. ドメイン管理者権限でログインしているクライアント上で、管理者権限でPowerShellを起動します

  2. Group Policy Management Consoleをインストールします
    Add-WindowsFeature GPMC
  3. グループポリシーモジュールをインストールします
    Import-Module -Name grouppolicy
  4. グループポリシーオブジェクトをバックアップします
    Backup-GPO -Name グループポリシー名① -Path 出力先パス
    Backup-GPO -Name グループポリシー名② -Path 出力先パス
    Backup-GPO -Name グループポリシー名③ -Path 出力先パス
    #︙
    #(変換したい数だけ列挙)
  5. グループポリシーオブジェクト内のドライブマップパスを変更します
    出力された
    {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}\DomainSysvol\GPO\User\Preferences\Drives\Drives.xml
    内の、
    path=”~~~”  を書き換えて保存します
    (変換したいポリシー数ぶん、Drives.xmlを書き換え)

  6. グループポリシーオブジェクトをインポートします
    Import-GPO -BackupGpoName グループポリシー名① -TargetName グループポリシー名① -Path ポリシーを保存したパス
    Import-GPO -BackupGpoName グループポリシー名② -TargetName グループポリシー名② -Path ポリシーを保存したパス
    Import-GPO -BackupGpoName グループポリシー名③ -TargetName グループポリシー名③ -Path ポリシーを保存したパス
    #︙
    #(変換したい数だけ列挙)

以上です。

CentOS6から7にユーザを移行してみる

CentOS6からCentOS7にユーザを移行する作業があり、方法を調べてみました。

CentOS6 6.10
CentOS7 7.7.1908
にて確認しています。

作業は全てrootユーザにて行っています。

CentOS6側

# テスト用グループ作成
groupadd -g 19999 test-group
# テスト用ユーザ作成
useradd  -g 19999 -u 19999 foo
passwd foo
bar
bar

# ユーザ追加確認
cat /etc/passwd | grep foo
# パスワード確認(ハッシュ方式確認)
#   先頭が$1ならmd5
#         $5ならsha256
#         $6ならsha512
#   ※受け側のglibcが2.7以降であれば、どの形式でもそのままコピペ可のようです
cat /etc/shadow | grep foo
# グループ追加確認
cat /etc/group | grep test

# ユーザ変更
su - foo
# テストファイル作成
touch test
# rootに戻る
exit

# ホームディレクトリのバックアップ
tar cvf foohome.tar /home/foo
# 固めたアーカイブは手元に置いておきます(あとでCentOS7側に転送します)

Centos7側

# ホームディレクトリの内容を予めCentOS7側に転送しておきます

# ホームディレクトリの内容を展開
cd /
tar xvf ~/foohome.tar
ls -al /home

# ユーザ定義のインポート
# ※データが画面上で2行に見えている場合がありますが、そのまま1行として貼り付け下さい
#

# /etc/passwd  に CentOS6側の /etc/passwd  内の foo        の行をそのまま貼り込んで保存
vipw -p

# /etc/shadow  に CentOS6側の /etc/shadow  内の foo        の行をそのまま貼り込んで保存
vipw -s

# /etc/group   に CentOS6側の /etc/group   内の test-group の行をそのまま貼り込んで保存
vigr -g

# /etc/gshadow に CentOS6側の /etc/gshadow 内の test-group の行をそのまま貼り込んで保存
vigr -s

# 移行結果確認
ls -al /home

ユーザfooでCentOS7にログインして確認ください。

以上です

Robocopyのログのサマリー部分を整形してみる

Robocopyのログのサマリー部分が見づらいので、整形してみました。

スクリプト名は、logreport.sh です(適当に直して下さい)。

#!/bin/sh

<< COMMENTOUT

2019/09/04作成

robocopyログファイル(Windows2016版)のサマリー部分の整形スクリプト
フォルダ"log"内のrobocopy*.logをUTF-8に変換し、"report"フォルダにサマリー部分を出力します
要 nkf

処理前のlogの最終部分
  ------------------------------------------------------------------------------

                       合計        コピー済み       スキップ       不一致        失敗    Extras
     ディレクトリ:        18571            0      18571         0         0         0
       ファイル:       157425       152728       4697         0         0         0
        バイト: 299399096023 292980525070 6418570953         0         0         0
         時刻:      0:15:20      0:10:48                        0:00:00   0:04:32


         速度:              451855700 バイト/秒
         速度:              25855.390 MB/分
     終了: 2019年xx月xx日 xx:xx:xx

処理後のlog
  ------------------------------------------------------------------------------

                    Total       Copied    Skipped  Mismatch    FAILED    Extras
     Dirs :         18571            0      18571         0         0         0
    Files :        157425       152728       4697         0         0         0
    Bytes :  299399096023 292980525070 6418570953         0         0         0
    Times :       0:15:20      0:10:48                        0:00:00   0:04:32


         速度:              451855700 バイト/秒
         速度:              25855.390 MB/分
     終了: 2019年xx月xx日 xx:xx6:xx

使い方
 カレントディレクトリに"log"というフォルダを作り、robocopyのログファイルを格納します
 カレントディレクトリに"report"というフォルダを作っておきます
 WSLを起動し、カレントディレクトリに移動します
 ./logreport.sh をキックします


※もともとは Powershell で作りましたが、
 処理ファイル数が多いと不安定になるようなので、
 シェルスクリプトで作り直しました

※事前に、WSLにnkfをインストールしておいて下さい

COMMENTOUT

tmpfile=$(mktemp)
tmpfile2=$(mktemp)
tmpfile3=$(mktemp)

# ログファイルの文字コードを UTF-8 にする
cd log
echo ログファイルをUTF-8化しています...
find . -name 'robocopy*.log' -type f -print0 | xargs -0 nkf -u -Lu --overwrite -w 

# ログファイルの最後の15行目を取り出し、
# ----------で始まる行以降を取り出し(ファイルが短くて-----が2行入ってしまった場合は2番目以降)
# サマリー行の全角文字を半角文字に変換する
echo ログファイルを整形出力します
for fname in `find ./robocopy*.log`
do
        echo $fname
        # 各ログファイルの末尾15行を取り出す
        tail -15 $fname > $tmpfile
        if [ `grep -c '^----------' $tmpfile` -eq 2 ] ; then
                # ^---------- が2行ある場合は、最初の行を潰す
                sed '0,/^----------/ s/^----------/xxx/' $tmpfile > $tmpfile3
                # ^---------- 以降を出力
                fname1=${fname#.\/robocopy_}
                echo ${fname1%.log} > $tmpfile2
                sed -n '/^----------/,$p' $tmpfile3 >> $tmpfile2
                rm $tmpfile3
        else
                # ^---------- 以降を出力
                fname1=${fname#.\/robocopy_}
                echo ${fname1%.log} > $tmpfile2
                sed -n '/^----------/,$p' $tmpfile >> $tmpfile2
        fi
        # サマリーの全角を半角に変換
        sed -e 's/^   ディレクトリ:/   Dirs : /g' \
            -e 's/^     ファイル:/  Files : /g' \
            -e 's/^      バイト:/  Bytes : /g' \
            -e 's/^       時刻:/  Times : /g' \
            -e 's/   合計/Total/g' \
            -e 's/ コピー済み/Copied/g' \
            -e 's/   スキップ/Skipped/g' \
            -e 's/     不一致/Mismatch/g' \
            -e 's/    失敗/FAILED/g' \
            $tmpfile2  > ../report/$fname
        done
rm $tmpfile
rm $tmpfile2

以上です。

ブラウンシェーバーのアルコール洗浄カートリッジについて

ブラウンのシェーバーのクリーン&リニューシステム用カートリッジですが、アルコール洗浄液がすぐに飛んでしまって頻繁に交換するようですよね。また、このカートリッジのお値段が…。

純正カートリッジ

そこで次のものを試してみたら、結構いい感じだったので、載せてみます。

取り敢えず1個でお試し

お得な2個セット

今お使いのカートリッジの交換ランプが点灯したら、適当にこの液を足すだけです。

FortiGate 6.0.x vm版のライセンス切れ対策

Hyper-V版のFortiGate 6.0.6 build0272(GA)を建ててみたところ、いきなりライセンス切れで蹴り出されてしまいました。

ということで対策してみます。

# 一旦vmを停止
execute shutdown

# vm停止を確認
# ハイパーバイザー側でvmに割り付けているNICを切断
# 切断を確認してからvmを起動

# admin でログイン
# ライセンスと設定を削除
execute factoryreset
# 再起動されます

# 再起動後、adminでログイン
# ntpの設定を削除
config system ntp
set ntpsync disable
set type custom
end
# vm停止
execute shutdown

# vm停止を確認
# ハイパーバイザー側でvmにNICを接続
# 接続を確認してからvmを起動

# adminでログイン
# IPアドレスを192.168.0.2/24 デフォルトゲートウェイを192.168.0.1にしてみる例
config system interface
edit port1
set mode static
set ip 192.168.0.2 255.255.255.0
set allowaccess [必要なサービスを半角スペースで区切って列記]
# サービスを上書きではなく追加する場合は、
# set allowaccess ではなく、
# append allowaccess [必要なサービスを半角スペースで区切って列記]
end
config router static
edit 1
set device port1
set gateway 192.168.0.1
end

これで2週間くらい遊べますね。