インターネット環境を整える(2)

賃貸物件のネットワーク整備は難しい

在宅勤務も早2年になろうとしていますが、ネットワーク環境を整えるのに手間も費用も随分かかったという話です。

賃貸マンションの光配線工事

築年数が古くて光配線されておらず、VDSLしか使えない状態でした。前に書いたとおりモデムの設置位置やケーブル・ノイズフィルタを色々工夫しましたが37Mbps程度が限界でした。

agyay.hatenablog.com

なのでやっぱり光回線にしようとしたのですが、これが一筋縄ではありませんでした。WEBを探せば先人の苦労の記録が既にたくさんありますが、私はそれを見てもやっぱり色々と回り道をすることになったので続く人のために記録を残します。

正解は、管理会社経由で大家さんと交渉する、から始めることです
  • 管理会社・大家さんに必要な手続きを説明する
  • 管理会社からNTTの営業に連絡してもらう
  • NTTにマンションの上層階まで配線するための工事を調査してもらう
  • 管理会社に新規配管の工事をしてもらう
  • 該当マンションが光配線工事が可能になった状態だとNTTに登録してもらう
  • プロバイダに光配線への切り替えを申し込む
  • NTTと工事日を調整する
  • 光配線工事を行う
  • 工事担当の人がいる間にルータを繋いで開通確認する
  • VDSLモデムをNTTに返却する
  • 手持ちのルータの性能が足りない場合は買い換える
管理会社と大家さんに必要な手続きを説明する

管理会社も大家さんもネットワークに詳しくなかったので、なかなか理解してもらえません。NTTやプロバイダに自分で交渉するように言われ続けました。それで自分であちこち問い合わせたのですが、結局全部無駄でした。なのでなんとか管理会社に納得して頂く必要があります。

管理会社からNTTの営業に連絡してもらう

管理会社に下記のページから連絡してもらいました(というか代理で入力しました)。するとその日のうちにNTTの営業から管理会社に折り返し電話が来たそうです。

business.ntt-east.co.jp

NTTにマンションの上層階まで配線するための工事を調査してもらう

できるだけ既存の配管を利用して光ファイバーを通してもらうのですが、配管が細すぎたり、曲がりが急すぎたりして既存の配管が使えないことがあるので調査が必要です。

flets.com

管理会社に新規配管の工事をしてもらう

エレベータ横に配管シャフトに光配線用の配管を追加してもらいました。防火のために各階が仕切られているので穴開けが必要になります。

後から写真を撮ったのでどれが光配線用か曖昧なのですが。

該当マンションが光配線工事が可能になった状態だとNTTに登録してもらう

共用部分の工事が終わったことをNTTに管理会社から連絡してもらいます。

プロバイダに光配線への切り替えを申し込む

1Gbpsの回線タイプに変更することをプロバイダの会員ページから申し込みます。問題なければ、プロバイダがNTTに光配線工事を手配します。

NTTと工事日を調整する

NTTから電話が来るので、工事日を決めます。

光配線工事を行う

既存の電話専用の配管に光ファイバを通してもらいました。配管の曲げ方が急になっていたので結構時間がかかりました。光ファイバを通すことを最初から配慮した配管は光ファイバが折れないように緩やかに曲げてあるそうです。電話線のモジュラージャックが3箇所あったうちの一つにルータを置くことにしていたのですが、そこまでうまく光ファイバを通せなかったので急遽場所を変更しました。場所が変わったときのことも予め予想しておいた方がいいです。

工事担当の人がいる間に光モデムとルータを繋いで開通確認する

工事の人も手持ちの機材で開通確認してくれますが、やはり自分の機材でも確認したほうがいいでしょう。

VDSLモデムをNTTに返却する

工事の人が返却用の封筒をくれますので、使わなくなったVDSLモデムをNTTに郵送します。

手持ちのルータの性能が足りない場合は買い換える

無線LAN兼のルータが不安定だったこともあり、ヤマハのRTX810を中古で買いました。この設定は別の記事で書きます。

工事費について

プロバイダは工事費が必要だと言っていましたが、結局請求されませんでした。

internet.watch.impress.co.jp

回り道について

楽天ひかりの対応

光配線工事が可能だとNTTが登録する前に回線タイプ変更を申し込むと連絡なしにキャンセルされてしまいました。どうなったのか問い合わせようにも、新規申し込み者への案内ばかりが目立ちます。やっと見つけた場所に問い合わせを書いたりメールしたり電話したりしても反応なし、あるいはこの窓口は違うとの回答ばかりで本当にイライラしました。楽天では直接対応できないのは仕方が無いとしても、ここに書いたようなことを教えてくれればお互いに幸せだったのにと思います。

NTT東日本の対応

光コラボを利用しないで直接フレッツ光を使っていれば、個人用の問い合わせ窓口から回線タイプ変更の相談ができたようです。しかし光コラボを使っている場合は対応窓口が各プロバイダになってしまいます。
法人用の窓口は、マンションの管理会社が詳しくないので事前に話を聞かせて欲しいと頼んでも管理会社経由でとの一点張りです。まあ、仕方がないとは思いますが。

 

Shokz OpenRun Mini Review

Shokz OpenRun Mini を買いました

結論:とても良いです。

自転車で音楽を聞くなら骨伝導ヘッドホンかネックスピーカー

イヤホンを付けて自転車に乗ると道路交通法第71条第6号の違反です。しかし耳を塞がない骨伝導ヘッドホンかネックスピーカーなら(都道府県によってはこれらも条例で禁止されていますが、幸い私が住んでいる首都圏では)「安全な運転に必要な交通に関する音又は声が聞こえないような状態」でなければ違反になりません。

今ならLinkBudsも使えそうですが、穴あきイヤホンを知らない人からは普通のイヤホンにしか見えず、誤解を受けそうです。

Aftershokz Titanium が壊れました

Titaniumを3年ほど愛用していました。音楽だけでなく電話や音声ナビにも使えるので自転車に乗るときの必須品です。雑に扱っても壊れなかったので丈夫だと思っていたのですが、ついに付け根のところがひび割れてしまいました。むき出しでリュックの中に入れたときに無理な力が加わったようです。

OpenMove / OpenRun / OpenRun Mini / OpenRun Pro のどれを選ぶ?

Titaniumは長時間付けていると耳の上が痛くなること、後ろが長すぎて襟に当たることが不満でした。色々なモデルが出たところなので迷いますがOpenRun Miniが良さそうです。

OpenRun Miniのサイズ

https://cdn.shopify.com/s/files/1/0271/5389/1376/files/Find_your_size_JP.pdf?v=1651052884

にサイズガイドがあります。私は耳から耳まで21センチだったのでミニサイズが推奨です。とはいえ、もし小さすぎたらどうしようと購入前にかなり迷いましたが、結果はミニで正解でした。

OpenRunMini は Titanium よりかなり小さいです。

ケースが欲しい

OpenRunProはハードケースが付属しているのですが、OpenRunはポーチしか付いていません。再び壊さないようにハードケースが欲しいところです。サードパーティのOpenRun用ケースは物は良いが大きすぎるというレビューですし、Miniには窪みが合わない可能性もあります。

とりあえず包装箱に入っていたプラスチックの緩衝材を切り取り、ポーチに入れて使います。耳のアーチ部分が足りないのでポリスチレンフォームを追加しましたが、工作が下手で見た目がいまいちなので、早く良いものを見つけたいところです。

 

ドルツ ジェットウォッシャー EW-DJ52 電池交換 + 水没修理

ジェットウォッシャーは早く買うべきだが、壊れやすい

歯周ポケットが治りました

定期検診で毎回、歯周ポケットが深いと歯医者に指摘されていました。そこで歯ブラシや糸ようじで丁寧に磨くようにしたら、今度は磨き過ぎで歯茎が後退しているとのこと。値段が高いので買うのを躊躇していたジェットウォッシャーを使うようにしたらやっと歯周ポケットが浅くなりました。

水流が弱くなった

ところがジェットウォッシャーを購入して1年経つと水の勢いが弱くなってきました。検索すると電池交換で治るとの情報があり交換することにしました。

電池はシェーバー用と共通です。少し前まで青色かオレンジのニッケル電池だったらしいのですが、最新版は白のリチウム電池です。

電池を交換したけれどやっぱりまだ弱い

真の原因は水の吸い上げ口のフィルタ詰まりでした。下は糸ゴミを途中まで取り除いた写真です。先にこれを直していたら電池を交換する必要は無かったかもしれません。

f:id:agyay:20220213172303j:plain

フィルタに糸ゴミ

今度は充電できない

それから一ヶ月位は順調だったのですが、今度は充電を始めて数秒で充電ランプが消えるようになりました。電池交換のときに接触が悪くなったのかと思い、もう一度分解して内部の電池ボックスの接点の形を整えてから電池を入れ直しました。また、充電用のピンと充電器の接点が錆びていたので磨きました。これで一旦復活しました。

f:id:agyay:20220213173328j:plain

分解

分解は下記の手順です。

  • 底の部品をネジを外してから、Oリングを傷つけないように注意して外す
  • 上部のキャップをドライバー等でこじて外す
  • ノズルを取り外すときに押す小さなボタンを、抜けどめの爪を押さえながら外す
  • 上の部品を止めている3本のネジを外す
  • 上の部品をOリングを傷つけないように注意して外す
  • 基板を上からゆっくりと抜き取る

電源ランプが付かない

一週間後にまた電源が入らなくなりました。再び開けてみると基板に水滴が付いています。前回組み立てのときも気を付けていたつもりなのですが、きちんと密閉できなかったようです。基板やICの端子部分をよく見ると水滴だけでなく何か灰色の粉が付着しています。専用の洗浄剤がすぐに手に入らなかったので代わりに車の水抜き剤で基板を洗浄しました。イソプロピルアルコール99%なのでまあ使えるかなと。ただしイソプロピルアルコールIPA)は安全な液体ではないので、私の真似をされる場合は自己責任でお願いします。

f:id:agyay:20220213175452j:plain

f:id:agyay:20220213175719j:plain

ジャブ漬けで洗浄するのに基板に付いているポンプが邪魔なので外そうとしたのですがどうしても基板の中央が外れません。よく見ると電池の端子になる銅版がポンプに完全に固定されているようです。ポンプを外すのは諦めて綿棒で拭くようにしました。

f:id:agyay:20220213174931j:plain

完全に固定されている?

基板をドライヤーでよく乾かしてから電池を入れると無事動きました。しかしこのまま組み立てるといつかまた水漏れしそうです。Oリングを新品に取り替えたいのですが、サイズがピッタリ合うものを揃えられるでしょうか。ネジ・充電端子用にはこんなものを買えばどれかが合いそうですが、、、

Oリングは再利用することにして、Oリングにグリスを塗り込みました。手持ちの鉱油系グリスはOリングに攻撃性を持つので使えないとわかり、新たにシリコングリスを購入しました。CPU用のグリスではなく、Oリングや水栓用のグリスです。

今回買ったのはこちらです。これをOリングに塗り込みましたが、摺動箇所に使うものだったのかシール用にはやや粘性が足りない気がします。

こちらの方が良かったかもしれません。

さらに基板上の見える場所にあるICを100均で買ったグルーガンを使ってグルーで覆いました。基板が外せなくて見えにくいところ、カバーに干渉する場所、放熱が気になる電源チップなどはそのままなので気休めです。また水が入り込んだときに乾かなくて余計にひどいことになるかもしれませんが、とりあえずこれで使ってみます。

f:id:agyay:20220213211810j:plain

f:id:agyay:20220213211824j:plain

こういう水濡れがありそうな場所で使う基板は製造段階で耐湿コーティングしておいて欲しいものですが、しないのはコストの問題でしょうか? それとも中途半端な対策は別の問題を引き起こすので筐体の防水に頼るのが正解なのかな?

(追記)再び敗北

数日後にまた水没しました。もう一度分解して基板を乾燥させます。

どこから浸水しているのか組み立てる前にもう一度よく見てみました。空気抜きのパイプと蓋の間が怪しそうです。紛失してしまったのか、元からなのか、Oリングがありません。

f:id:agyay:20220219141140j:plain

怪しい隙間が空いています。

f:id:agyay:20220219141520j:plain

その他のOリングもヘタっていてグリスを塗るだけでは心もとない気がしたので、シールテープで補強しました。この写真ではOリングの下にテープを巻いていますが、これだと各部品をはめ込んだときにリングがずれて縒れてしまったのでOリングの上からテープを一回だけ巻くようにやり直しています。これで直ればよいのだけど、、、

f:id:agyay:20220219142045j:plain

[rakuten:shinki1:10005446:detail]

ユピテルGPSマップASG-CM14のルートをGoogleマップで作成する

サイクリングは道選びが重要

走りのレベルによって最適なルートが異なる

自転車で走るときのルート選びは気を使います。初心者のときは車の通行量が少ない裏道・生活道路を選んでいました。しかし裏道は見通しが悪く「止まれ」がたくさんあるので早く走るには不適です。そこで幹線道路・表通りを走るようになるのですが、車を気にしないですむ道は限られています。車が高速で流れているのに路側帯が無い道は厳しいです。そこそこの速度で流れている細い道では車と同じペースで邪魔にならないように走ります。それでも自転車と見ると対向車がいるのにギリギリで追い越して前に割り込んでくる車が多いです。

スマホのナビ

幹線道路は真っすぐで標識も多いのですが、裏道は迷いやすいです。スマホで地図を見ることができるようになってからは楽になりました。しかしスマホをサイクルナビとして使うには、路面からの衝撃でスマホを吹き飛ばさないようなしっかりしたホルダーが必要ですし、常時画面を付けておくと電池を大量に消費します。アプリも問題ですね。Stravaが無料だったときは使いやすかったのですが、有料になってからは私が使う頻度だと勿体ないので使っていません。ナビタイムはまだ課金したいほどの完成度では無いと感じました。Goole Mapは画面を見ている分には使えるのですが、音声案内はダメダメです。

やっぱりサイクルコンピューターが欲しい

国内メーカーはすべてサイクルナビから撤退してしまいました。今買うならGarmin、Wahoo、Xplovaあたりでしょうか。お金があればGaminが欲しいですが、地図表示付きのものは一番安いEdge 530でも本体価格は¥40,000を超えます。

ユピテルGPSマップASG-CM14

2014年にユピテルから発売されたASG-CM14を今でも使っています。スマホよりもコンパクトでハンドル周りの場所を取りませんし、電池も長持ちします。スマホとの連携機能はありません。

ルート作成難民化

ASG-CM14では事前にルートをPCで作ってインポートしておく必要があります。そのためにATRASTOUR Plannerという専用のソフトが有ったのですが、Google MapのAPIが有料化されたせいか2019年にサポート終了してしまいました。代わりに使ったルートラボもサービスが終了、Strava、Ride with GPSは有料化してたまに使うだけの人間にはもったいなくなってしまいました。

Google Map + Maps to GPX + Script

現在はGoogle Mapでルートを作成し、Maps to GPXでGPXをダウンロードし、スクリプトで不要なタグを消す方法に落ち着いています。

まず、Google Mapでルートを作成します。出発地と目的地を決めるとGoogle Mapが自動でルートを作成してくれますが、思い通りのルートにならないときは適当に修正します。

www.google.co.jp

次にルートを作った状態のGoogle MapのURLをMaps to GPXに貼り付けます。

mapstogpx.com

オプションはTrack Pointsのままです。Route Pointsにするとポイント数を間引きして減らしてくれますが、アルゴリズムが悪いのか、思ったようなルートになりません。「LET'S GO」ボタンを押すとGPXがダウンロードできます。できたGPXはASG-CM14で使うには不要なタグが多数含まれているのでスクリプトで取り除きます。最低限必要なタグは下記の通りです。各タグごとに改行が必要です。文法的には間違いになりますがASG-CM14では</trkpt>終了タグを省略可能です。

<?xml version="1.0" encoding="UTF-8"?>
<gpx>
<wpt lat="35.584279705" lon="139.543485042">
<name>nameの前は改行が必須</name><desc></desc></wpt>
<trk>
<name>UTF-BOM付き</name>
<trkseg>
<trkpt lat="35.707637" lon="139.482492"></trkpt>
<trkpt lat="35.704972" lon="139.482260"></trkpt>
<trkpt lat="35.705079" lon="139.477334"></trkpt>
<trkpt lat="35.705325" lon="139.473952"></trkpt>
<trkpt lat="35.704508" lon="139.471016"></trkpt>
<trkpt lat="35.704300" lon="139.468403">
<name>恋ヶ窪</name><desc></desc></trkpt>
</trkseg></trk></gpx>
Windowsスクリプト

PowerShellを使います。まず、下記のスクリプトファイルをメモ帳で作ります。

GPX.ps1

gc -Encoding UTF8 $args[0]|
%{$_ -replace '.*</trkpt>', ''}|
%{$_ -replace '<\?xml.*\?>', '<?xml version="1.0" encoding="UTF-8"?>'}|
%{$_ -replace '<gpx.*>', '<gpx>'}|
%{$_ -replace '.*<metadata>', ''}|
%{$_ -replace '.*</metadata>', ''}|
%{$_ -replace '.*<link.*>', ''}|
%{$_ -replace '.*</link>', ''}|
%{$_ -replace '.*<text.*text>', ''}|
%{$_ -replace '.*<!--desc.*desc-->', ''}|
%{$_ -replace '.*<!--copyright.*>', ''}|
%{$_ -replace '.*</copyright-->', ''}|
%{$_ -replace '.*<year.*year>', ''}|
%{$_ -replace '.*<license.*license>', ''}|
%{$_ -replace '.*<!--url.*url-->', ''}|
%{$_ -replace '.*<year.*year>', ''}|
%{$_ -replace '.*<time.*time>', ''}|
%{$_ -replace '.*<number.*number>', ''}|
%{$_ -replace '.*<name>TP.*</name>', ''}|
%{$_ -replace '.*<desc>', ''}|
%{$_ -replace '.*</desc>', ''}|
%{$_ -replace '.*<author>', ''}|
%{$_ -replace '.*</author>', ''}|
%{$_ -replace '.*<keywords>', ''}|
%{$_ -replace '.*</keywords>', ''}|
%{$_ -replace '.*<bounds.*/>', ''}|
%{$_ -replace '.*<!\[CDATA\[.*\]\]>', ''}|
%{$_ -replace '.*<ele.*ele>', ''}|
%{$_.trimstart()}|
Out-String -Stream | ?{$_ -ne ""}|
Out-File -Encoding UTF8 result.gpx

ただしPowerShellスクリプトファイル自体にGPXファイルをドラッグ・アンド・ドロップすることはできないので、ショートカット経由でスクリプトを実行するようにします。

4thsight.xyz

Macスクリプト

Automatorを使います。

support.apple.com

入力の引き渡し方法は「引数として」を選びます。

GPXforCM14

cd '/Users/xxxx/Documents/自転車/results'
cat $@ |
sed -e 's/.*<\/trkpt>//g' |
sed -e 's/<\?xml.*\?>/<?xml version="1\.0" encoding\="UTF\-8"?>/g' |
sed -e 's/<gpx.*>/<gpx>/g' |
sed -e 's/.*<metadata>//g' |
sed -e 's/.*<\/metadata>//g' |
sed -e 's/.*<ele.*ele>//g' |
sed -e 's/.*<link.*>//g' |
sed -e 's/.*<\/link>//g' |
sed -e 's/.*<text.*text>//g' |
sed -e 's/.*<desc>//g' |
sed -e 's/.*<\/desc>//g' |
sed -e 's/.*<time.*time>//g' |
sed -e 's/.*<year.*year>//g' |
sed -e 's/.*<author>//g' |
sed -e 's/.*<\/author>//g' |
sed -e 's/.*<license.*license>//g' |
sed -e 's/.*<number.*number>//g' |
sed -e 's/.*<name>TP.*<\/name>//g' |
sed -e 's/.*<keywords>//g' |
sed -e 's/.*<\/keywords>//g' |
sed -e 's/.*<bounds.*>//g' |
sed -e 's/000"//g' |
sed -e 's/.*<\!\-\-desc.*desc\-\->//g' |
sed -e 's/.*<\!\-\-copyright.*>//g' |
sed -e 's/.*<\/copyright\-\->//g' |
sed -e 's/.*<\!\-\-url.*url\-\->//g' |
sed -e 's/.*<\!\[CDATA\[.*\]\]>//g' |
grep -v '^\s*$' >result.gpx
exit

このファイルにMaps to GPXからダウンロードしたGPXファイルをドラッグ・アンド・ドロップします。

ASG-CM14にGPXファイルをダウンロード

USBケーブルでPCに繋いでからASG-CM14の電源を入れるとUSBストレージとして認識されるので、trackフォルダにGPXファイルの名前を好きなものに変えてからをダウンロードします。

Macの場合は ._ で始まる隠しファイルも自動的に作られてしまいASG-CM14でマップを選択するときに余計な選択肢ができてしまうので削除しておきます。Finderに隠しファイルを表示させるには「command」+「shift」+「.」を押します。

 

インターネット環境を整える(1)

宅内の機器について

引っ越しのタイミングでインターネット環境を色々変えてきましたが、現在は 楽天ひかり マンションプラン VDSL方式 を使っています。速度が遅かったり頻繁に切れるなどの問題があるのですが、だましだまし使っていました。しかし、完全に在宅勤務になりインターネット環境が作業効率に大きく影響するので改善を続けています。

VDSLモデム

そうそう壊れるものではないと思っていたのですが、モデムが古くなると回線が切れやすくなります。NTTに相談するとすぐに代替品を送ってくれます。

コンセントからのノイズ

コンセントとモデムの電源の間に入れます。これは回線が切れにくくなる効果があったような気がします。

モジュラーケーブル

ケーブルをできるだけ短くしろという記事がよくありますが、私の場合は効果がありませんでした。

無線LANルーター

無線LANルータにはまだ良いものに出会っていません。ルータ機能をRTX810に分離するまでは、頻繁にインターネットに接続できなくなっていました。ルータではなくモデムが通信エラーになっている、ルータ機能が止まる、無線が止まる(有線なら繋がる)、通信サービス会社の障害などいろいろな原因が混じっていたようですが、家庭用の製品はログが貧弱で何が起こったのかわからないのが非常にストレスです。機種名を覚えているものだけレビューしておきます。

バッファロー
  • WSR-2533DHP
    V6プラス・クロスパスが使えないことに気が付かずに買ってしまったのですぐに売ってしまいました。後でファームウェアアップデートで対応したらしいです。
  • WXR-1900DHP3
    毎日のようにハングアップしていました。「BIG -hammer!!!」という全く役に立たないログが出ます。
NEC
  • PA-WG600HP
  • PA-WG1800HP4
    簡便性を追求しているせいか、設定できる項目、ログが少ないです。エラーによっては自動再起動します。復帰の手間がかからない反面、原因調査ができません。
TP-Link
  • AC2600
    無線LANがよく止まります。ログレベルを変更しても、エラーのログが出ないので原因を解析できません。

電源タイマー

無線LANルーターが頻繁に調子が悪くなるので毎日リセットしたいのですが、上記のルータは再起動を自分自身でスケジュール化できません。そこで、タイマー付きコンセントで電源を落として無理やり再起動します。

 

(2)に続きます。

PowerShell のスクリプトレットでエラーを無視して処理したい

 

継承されていないアクセス権があるフォルダを一覧にするスクリプトレット

いきなり結論

Get-ChildItem -path ¥¥foo.bar.com¥baz -Force -Recurse -Depth 6 | Where {$_.mode -match "d"} | %{Get-Acl -LiteralPath $_.FullName | Where {$_.Access.IsInherited -like "False"} | Select-Object @{Label="Path"; Expression={Convert-Path $_.Path}}, AccessToString | Export-CSV acl.csv -Append -Encording Default}

部のシステム管理者という存在

私の会社では全社のシステムはシステム管理部門が管理してくれるのですが、部内で使っているファイルサーバの運用は部の担当者に任されています。素人が雑用として管理するので、質は推して知るべしです。

引き継いだ部内ファイルサーバの中のフォルダのアクセス権がめちゃくちゃでした

部内ファイルサーバの管理が私に回ってきました。このファイルサーバは部全員がフルアクセス権限を持っています、というか特に気にしていなかったのです。それでちょっと知っている人が各フォルダのアクセス権を適当に変更していたので、「xx限定フォルダ」「外部署との共有フォルダ」が乱立していました。代謝した人や、無効なセキュリティグループのアクセス権も大量に残っていました。なにはともあれ各フォルダのアクセス権の一覧表が必要ですが、私もITは本業ではないので、手抜きで済ませたいところです。

「フォルダ アクセス権 一覧」でググります

「フォルダ−アクセス権マップツール」でフォルダのアクセス権一覧を取得する − @IT

トップに出たのは2007年の記事です。マイクロソフトが「フォルダーアクセス権マップツール」を無償提供しているとありますがリンク切れです。他の検索結果を見たら今はPowerShellを使うようだと気が付きました

Windows Serverでフォルダのアクセス権一覧を出力する方法 | LifeKeyNotes

共有フォルダのNTFSアクセス権一覧をPowerShellで取得 - 雑記+備忘録

【PowerShell】フォルダアクセス権一覧を出力する方法

しかしこれらの記事にあったスクリプトレットは自分にアクセス権がないフォルダが一つでもあるとGet-Aclのエラーで止まってしまい、結果が全く出力されません。どのフォルダでエラーになっているのかもコンソールに表示されません。

エラー 回避 無視 継続 PowerShell Get-Acl error ignore skip continue handling access Error-Action ...

など単語を変えてググっても解決策が見つかりません。スクリプトを組んで try ... catch することも考えました。しかしスクリプトだと管理をさらに別の人に押し付けるときに実行ポリシーの設定などで苦労しそうです。

PowerShellスクリプトレットの途中でエラーが出ても処理を続ける

パイプの途中で ForEach-Object を使うことで解決しました。

Get-ChildItem | Get-Acl | Export-CSV

一つでもアクセスできないフォルダがあると全体が止まる。どのフォルダがアクセスできなかったのかはわからない。

Get-ChildItem ... | %{Get-Acl -LiteralPath | Export-CSV -Append}

アクセスできないフォルダがあっても処理は止まらない。コンソールにどのフォルダがアクセスできなかったのか、エラーが表示される。

アクセスできなかったフォルダがわかれば下記でなんとかできそうです。

PowerShell で ACE (ファイルの所有者) がないファイルを操作する - tech.guitarrapc.cóm

やっぱりアクセス権がないと所有者を変えられませんね。当たり前でしたが。

最後にスクリプトレットのパイプを一つずつ解説しておきます(備忘録)

Get-ChildItem -path ¥¥foo.bar.com¥baz -Force -Recurse -Depth 6

-path ¥¥foo.bar.com¥baz 以下にあるファイル・フォルダを取得する

-Force 隠しファイルを含む

-Recurse サブフォルダを含む

-Depth 6 6階層に制限する

| Where {$_.mode -match "d"}

$_ パイプラインに渡されたオブジェクトを表す変数。

modeプロパティを使ってフォルダだけを選択する。

| %{Get-Acl -LiteralPath $_.FullName

% ForEach-Objectのエイリアス。以降のパイプ全体を {} で囲んでおく

-LiteralPath Get-ChildItemをGet-Aclにパイプするとき、ForEach-Objectを使う場合は引数にパスを渡す必要がある。PowerShellを正規表現として使える反面、ファイル名にが入っているときに問題を生じるので、LiteralPathを使ってワイルドカードを無効にしておく

| Where {$_.Access.IsInherited -like "False"}

継承されていないアクセス権を持つACLAccess Control List)を選ぶ

| Select-Object @{Label="Path"; Expression={Convert-Path $_.Path}}, AccessToString

Select-Object CSVに書き出すオブジェクトを選択する 

@{ 連想配列

Convert-Path $_.Pathを相対パスから絶対パスに変換する

AccessToString ACLからアクセス情報を取得するスクリプトプロパティ。

| Export-CSV acl.csv -Append -Encording Default}

-Append ForEach-Object を使うので、一行ずつ追加するようにする

 

古いスマホをwi-fi子機にして、さらにモバイルデータ通信をバックアップ回線にする

以前、古いスマホをスマートスピーカ化しました。

agyay.hatenablog.com

さらにこの古いスマホwi-fi子機にします

このスマホは今のデスクトップの横に置いています。このデスクトップは無線LANを内蔵していません。以前はここにwi-fiルータも置いていて、デスクトップは有線LANで繋いでいました。居間は住居の端なのでwi-fiルータから電波が届かない部屋があり、対策として住居の真ん中にある洗濯機の上のコンセントに中継器(RE200)を挿していました。

これで全部屋をカバーしていたのですが、無線LANはやはり不安定です。在宅勤務を始めた時にwi-fiルータを移動して仕事用のPCを有線で繋ぐことにしました。居間のデスクトップの方はRE200を有線LANで繫いでwi-fi子機代わりにしました。これで1年間運用してきましたが、RE200は中継器として使っていなくても2.4、5GHzの両方のチャネルを占有してしまうこと、かなり発熱していることが気になっていました。そこで前にスマートスピーカ化したスマホwi-fi子機兼用にしてRE200には引退してもらうことにしました。

USBテザリングを使います

f:id:agyay:20210606220600p:plain

PCとスマホをUSBケーブルで繫いで、スマホ側でUSBテザリングを有効にします。

 

f:id:agyay:20210606222331p:plain

PCの方はWindows10なら何もしなくても自動的にNDISネットワーク接続がインストールされるはずです。

PCのUSBポートの電源を常時ONにします

PCをシャットダウンしたりスリープさせると、通常はUSBポートの電源が切れてスマホのUSBテザリングが無効になります。PCの電源を入れなおした時にまたスマホを操作してUSBテザリングを有効にする必要があり、面倒です。またスマホスマートスピーカーとして使うために常時ONにしているので、充電し続けないと電池が無くなってしまう恐れがあります。そこで次のどちらかの方法でPCをスリープにしてもUSBの電源が切れないように設定します。

  1. USBセレクティブサスペンドを無効にする
  2. 関係するUSBハブのプロパティで電源をオフにできないようにする
USBセレクティブサスペンドを無効にする方法

Windowsの設定 -> システム -> 電源とスリープ -> 電源の追加設定 -> プラン設定の変更 -> 詳細な電源設定の変更 -> USB設定 -> USBのセレクティブサスペンドの設定

を無効にします。

f:id:agyay:20210606223426p:plain

関係するUSBハブのプロパティで電源をオフにできないようにする

バイスマネージャーでRemote NDIS Compatible Device を探し、デバイス(接続別)で表示します。

f:id:agyay:20210606224305p:plain

 Remote NDIS Compatible Deviceの上位にあるUSBハブ、この例だとUSBルートハブ(USB 3.0)と汎用USBハブのそれぞれのプロパティの「電源の管理」タブにある、「電力の節約のために、コンピュータでこのデバイスの電源をオフにできるようにする」のチェックを外す。

f:id:agyay:20210606224755p:plain

 マザーボードのジャンパーピン

上の2つでUSBポートの電源が常時ONになるはずだったのですが、PCをスリープさせるとOFFになってしまいます。ASUSマザーボードにはジャンパーピン(写真のJUSB_PW1)があり、これを挿し替えたら解決しました。

f:id:agyay:20210606230114p:plain

 すみません、ホコリを取る前の写真なので少し見苦しいです。

モバイルデータ通信をバックアップ回線にします

どうせスマホを使うならということで、インターネットをモバイル回線でバックアップします。今住んでいるマンションはVDSL回線しか使えず、その上、日に数回接続が途切れます。下記に引用したようにネットワーク全体をモバイル回線でバックアップするにはヤマハなどの法人用ルータが必要らしいです。

www.farend.co.jp

しかし、スマホをUSBテザリングで1台のデスクトップに繋ぐ場合はスマホを「常にモバイルデータ通信を有効にする」だけで済みます。

f:id:agyay:20210610214528j:plain

SIMはRukten UN-LIMIT VI にしたので、もし通信量が増えても上限は3278円/月で済みますが、実際にどれくらいWi-Fiではなくモバイル通信になってしまうかはしばらく運用して確認します。

そして挫折

ここまで引っ張っておきながらなんですが、現在は運用を止めています。USBテザリングがなんらかの拍子に無効になった時に自動的に有効に戻す方法が見つからなかったためです。結局、スマホではなく普通のUSBのwi-fi子機を買いました。子機は安いものなら1000円以下で買えるので、さっさとそうしろという話ではあるのですが。少しだけ挑戦編を続けます。

スマホにUSBテザリングのショートカットを作る

f:id:agyay:20210612214904j:plain

スマホのホーム画面を長押しして、ウィジェット→設定→テザリングとポータブルアクセスへのショートカットを作れます。ここでUSBテザリングを押すだけなのですが、妻は面倒だと言って却下しました。

Macrodroid

f:id:agyay:20210612220204j:plain

以前はMacrodroidというAndroidの操作の自動化アプリでUSBテザリングも切り替えられたらしいのですが、現在はAndroidのセキュリティが厳しくなったせいでRoot化しないと不可になっています。回避策として自動クリックでなんとかしようとしましたが、テザリングの接続台数が0になったときというトリガーがうまく働きません。台数自体は検出できるので定期的に確認して自動クリックさせてみると最初はうまく動くのですが、時間が経つと反応しなくなってしまいます。