自動化厨のプログラミングメモブログ │ CODE:LIFE

Python/ExcelVBA/JavaScript/Raspberry Piなどで色んなことを自動化

TeamViewerが突然商用利用として5分で切断されてしまったが5日ほどで解除された

以前までChromeリモートデスクトップを利用していたが、ふとTeamViewerのことを思い出して利用を再開してみたところこれが超便利だった。

ことの発端はスマートフォンにBluetoothキーボードを接続した状態でChromeリモートデスクトップを使ってみたときのこと。 キーボードから入力した文字が全く別の文字として入力されてしまい、文章なんて書けたものではなかった。

他のリモートツールはどうかと言うことでTeamViewerを試してみたら完璧な動作でした!

  • キー入力をそのまま伝達される
  • 操作対象PCの解像度を自由に再設定できる
  • ワンボタンでWOLできる
  • マウスカーソルが大きめで見やすい

これに加えて一番驚いたのがPCからスマートフォンを遠隔操作できるということ。

スマートフォン側にHostアプリをインストールして接続しておくとスマホを完全に遠隔操作できてしまう。ちょっと怖くもありますが超便利です。

8/25突然PCの遠隔操作開始時に商用利用判定をくらう

会社に居たときに接続するのがマズイのかわかりませんが、スマートフォンから自宅PCに遠隔で接続しようとしたら「商用利用の疑いがあります・・・あと5分で切断されます」的なメッセージが表示された。

Google Playのレビューにも同様のメッセージが表示されて使えなくなってしまった最悪といった内容の声が多く寄せられていた。

商用利用の判定基準

TeamViewerのQ&Aページを参照したところ以下のように記載がある。 PC環境依存とのことなのでシェアウェアが入っているとかWindowsのエディションはHomeじゃないとかそういうことなんだろうか・・・。

Q: 商業利用とは何ですか?

A: 当社は、直接的または間接的に支払いが発生している商用目的である環境にてTeamViewerを使用するものと定義しています。これには以下のユースケースが含まれます。

  • ご自宅から会社のコンピューターへ遠隔操作をした場合、会社のコンピューターは商用環境にある為、そこに直接支払いが生じていなくても商用利用と判断されます。
  • お客様や同僚にサポートを提供する場合、そこに直接費用が発生していない場合でも、商用利用が適用されます。
  • TeamViewerを使用してクライアントまたは顧客のデバイスに接続する場合、TeamViewerは商用利用となります。

Q: ホームオフィスは商用利用が適用されますか?

A: はい。ご自宅でTeamViewerを使用している場合、ご自宅にある業務用コンピューターに、ほんの短期間でも接続してメールの内容をチェックしても、商用利用が適用されます。これはTeamViewerをアカウントが個人のものか会社のメールアドレスかに依存するわけではなく、あくまで使用環境に依存しています。 しかし、問い合わせメールフォームから商用利用ではないので解除してくれるようにお願いすればあっさり数日後に解除してくれたっぽいです!

全文はこちら

community.teamviewer.com

個人利用再開の申請方法

以下のメールフォームから申請する。

https://www.teamviewer.com/en/support/commercial-use-suspected/

Q&Aではログファイルを提出するようにと記載があるが、現時点ではファイルの添付ができないようなので省略して多分OK。

Affected TeamViewer IDは「使用中のID」に表示されている9桁の数字です。 f:id:maru0014:20180902220414p:plain

本文についてはこちらの例文を参考に英語で連絡すれば数日で解除されると思います。 miyamedia.net

”Using TeamViewer to help family and friends without receiving any financial compensation is considered personal use.”

I only wish to control my sub computer with my home devices. Please check my Device ID and unlock limit.

Chrome拡張機能「stylish」が使えなくなった代わりに「Stylus」を使ってみた

以下の記事にもあるようにChrome拡張機能の中でも定番といっても過言ではない「Stylish」が利用不可能に。

代替品として完璧な「Stylus」を使ってみました。

forest.watch.impress.co.jp

Stylishとは

カスタマイズCSSを任意のページに反映させる拡張機能。 例えば文字サイズが小さく見づらいサイトがあれば文字サイズが大きくなるようにfont-size: 120%;としたり、メインコンテンツ以外のバナーなどが多く見づらければそれを非表示にしたりなどが可能。

ようは見づらいサイトを自分専用に見やすくカスタマイズできる拡張機能である。

続きを読む

スマホアプリで外出先から自宅のPCを遠隔起動してみる「Wol Wake on Lan Wan」

最近はありえないくらい暑い日が続きますね。

そんな中我が家のメインPCは誰も使ってないのに常時稼働しています。何故かと言うと「出先からリモートデスクトップで遠隔操作したいから」。 以前はマイニングPCとしても稼働させていたのでまだ良かったですが、今はいつ遠隔操作するかも分からないけど念のためにつけっぱなししているだけ状態。 すごくもったいないですよね。そして排熱のせいで部屋が暑い暑い・・・。

そこで、外出中はスリープ状態にしておいてリモートで作業したくなったときだけ電源をONにする方法はないか探していたところWake-on-LANという方法に行き着きました。

Wake-on-LAN(ウェイク・オン・ラン、略称WoLあるいはWOL)は、コンピュータネットワーク(主にLAN)に繋がっているコンピュータの電源を遠隔で投入するAMDが開発した技術あるいはその行為を指す。

引用元: Wake-on-LAN - Wikipedia

これは良い!と思いましたがLanということはローカルネットワーク。つまり外出先では使えないということ。

それでは駄目なのでさらに調べていたらWanから起動する方法が見つかったのでメモしておきます。

続きを読む

いつのまにかAmazon Driveのプランが1TBになり13800円請求されていた話

現在マネーフォワードを使って家計簿管理をしているmaruです。 いつものように利用履歴を確認していると見慣れないクレジットカード利用履歴を発見。

JCB海外利用 AMAZON SERVICES INTE -13,800

海外利用・・・?しかもそこそこ高額・・・!? びっくりしていろいろ調べていたところ記事タイトルに行き着きました。

Amazon Driveは容量超過していると自動でプランアップ

JCB海外利用 AMAZON SERVICES INTE の内訳はAmazon Driveの1TBプランでした。

そんなの契約した憶えないんですけど・・・。

というか写真の保管は容量無制限のはずでは・・・?

写真以外は容量カウントされる

プライム・フォトはプライム会員なら無制限に写真を保存できるからと安心していたところ、動画やRAWファイルはその対象外のため容量がカウントされており自動的にサブスクリプション契約となっていたようだ。

ちなみにプライム会員が追加料金なしで使える容量は5GBまで。

これを知らないうちに動画で消費していたようです。

2ヶ月以内の解約なら全額返金

1TBも絶対使わないのでなんとか返金してもらえないか調べてみたところAmazonのヘルプページを発見。

https://www.amazon.co.jp/gp/help/customer/display.html?nodeId=201376520

有料プランに移行してからでも解約すれば残った契約期間相当の金額が返金される。

さらに、最後の支払いから60日以内の解約なら全額返金されるとのこと。

Amazon Drive → ストレージの管理 からプランを解約すれば返金が開始されました。

絶対1TBなんて使わないしめっちゃ焦りましたがなんとか全額返ってくるようなので一安心です。

バックアップの設定を見直してというかPCからAmazon Driveをアンインストールしました。

1TBはOffice 365 SoloについてくるOneDriveの分で十分ですねー。

Python×Seleniumでswitch_to.frameが効かずハマったがchromedriver.exeを更新したら直った

朝のルーチンワークを少しでも減らそうとPythonで売上・アクセスデータの集計報告ツールを作って動作させているのですが、ある日正常に動かなくなった話。

売上・アクセスデータ集計報告ツール

  1. タスクスケジューラからPythonファイルを実行
  2. SeleniumでGoogle Analyticsへログイン
  3. Google AnalyticsからCSVデータをダウンロード
  4. pandasで過去のCSVデータと統合
  5. Excelで集計・分析
  6. 対目標・対前年で比較したデータをSlack BotにPOST

こいつが7月に入ってある日突然CSVデータがダウンロードされなくなった。 Google Analyticsにログインすることはできている。でもCSVはダウンロードされない。

いや、まぁ、手でやっても2分もかからない作業ではあるんですが、やっぱり単純作業はやらなくていいならやりたくないですよね。

chromedriver.exeが古かった

結論から言うと原因はchromedriver.exeが2018年3月時点のものだったこと。 そんなに頻繁に更新があるものと思っていなかったため最初はGoogle Analytics側のDOMが変わったのだろうと疑っていた。

しかし実際のところは以下から最新のchromedriver.exeをダウンロードして以前のexeファイルに上書き保存すれば済む話でした・・・。 2018年6月のバージョンを使うことで改善。

ChromeDriver - WebDriver for Chrome http://chromedriver.chromium.org/downloads

見てもしょうがないかもしれませんが、色々試した経緯を残しておきます。

Google AnalyticsのDOMが変わった・・・?

CSVダウロードに必要な箇所は変わっていませんでした。 ちなみにログインからCSVダウンロードまでのプログラムは以下のようなもの

download_directory = 'ダウンロード先ディレクトリ'
user_id = 'ユーザー名'
user_pass = 'パスワード'
  
driver = init_selenium(download_path=download_directory) # デフォルトダウンロードフォルダ変更
driver.implicitly_wait(10) # 要素表示までの最大待機秒数
driver.get('カスタムレポートのURL')
  
driver.find_element_by_css_selector('#identifierId').send_keys(user_id)
driver.find_element_by_css_selector('#identifierNext > content > span').click()
driver.find_element_by_name('password').send_keys(user_pass)
time.sleep(2)
  
driver.find_element_by_css_selector('#passwordNext span').click()
time.sleep(10)
  
# 操作対象をインラインフレームに移す
iframe = driver.find_element_by_css_selector('#galaxyIframe')
driver.switch_to.frame(iframe)
  
driver.find_element_by_css_selector('.ACTION-exportMenu').click()
driver.find_element_by_css_selector('.TARGET-CSV').click()
time.sleep(10)

Google Analyticsの画面はレポート表示領域がインラインフレームで形成されています。

故に操作対象をiframeに移す処理switch_to.frameが必要になるわけです。

途中からブラウザ接続が切断されていた

find_element_by_css_selectorの指定がおかしいのか? でもエラーで止まってるのはフレームに移動する前段階・・・。

driver.switch_to.frame(iframe)がおかしいのか・・・? でも推奨されている記述どおりで、driver.switch_to_frame(iframe)は使っていないし・・・。

まずdriver.find_element_by_css_selector('#galaxyIframe')が正常に動作しているのか・・・?

と思い検証したところAnalyticsにログインした直後からブラウザーとの接続自体が切れており、何の操作も受け付けられていなかったことが判明。

これは明らかにwebdriver自体がおかしいと思い、冒頭の「chromedriver.exe」の更新にたどり着いたということです。

すごい遠回りでしたねー。次からはまず最初にバージョン確認してみることにします!