WORKSPACESでPsEXECを使う
はい皆さんこんにちは
結論から言うとこの記事は
Microsoftが無料提供しているPsEXECツールを使ってAmazonWorkSpacesの間でコマンドを実行する話です。
・WORKSPACESのFW穴あけ
・ログを取得するための共有設定
・PsEXECの実行
について語ります
詳細
環境:AmazonWorkSpaces
OS:WIN10
サーバーA・・・PsEXEC実行
IP:192.168.10.11
user:serverA
pass:passwordA
サーバーB・・・処理専用サーバ
IP:192.168.10.12
user:servserB
pass:passwordB
注意事項:
WORKDOCSを利用してPsEXECツールをサーバーAに格納します。
PsEXECツールをWorkSpacesに配置します
PsEXEC:
https://docs.microsoft.com/en-us/sysinternals/downloads/psexec
WORKDOCS:
https://amazonworkdocs.com/ja/clients
転送ツールはWORKDOCSを利用する想定で、私はブラウザ経由で配置しました。
(AWSコンソール>WORKDOCS>利用中のURLをクリック)
PsEXECツールのFW穴あけをします
デフォルトではWorkSpaces同士の通信は塞がっているため、以下の対応をします。
AWSのコンソール>EC2>セキュリティグループ>説明が「Amazon WorkSpaces Security Group」のグループを選択します。
右下ペインのインバンドを選択し、編集から以下の3つを登録します。
・TCP 135番
・TCP 445番
・TCP 1025~65535番
サーバーBでバッチファイルの準備
今回は以下のファイルを作ります。
C:\ASD\ASD.bat
デフォルトではDドライブが見えているかと思いますが、どこでも良いです。
バッチファイルのサンプル:
echo %COMPUTERNAME% %DATE% %TIME% >>C:\ASD\ASD.txt
共有フォルダ設定
今回はサーバーBのC:\ASDに対して共有フォルダを作ります。
フォルダ右クリック>プロパティの共有タブから設定してください。

続いて、アクセス権限(読み取り/書き込み)も付与します。
この画像の例ではローカルにバッチユーザーを作っていますが、
[ディレクトリ名¥接続元のユーザー名] を使ってもいいです。
では試してみましょう
PsEXECを配置したサーバーAにログインします。
今回はコマンドプロンプトで行いますが、管理者権限で起動してください。
サーバーBのIPとアカウント情報を指定して、サーバーBのC:\ASD\ASD.batを起動します。
PsExec.exe -u "bachuser" -p "passwordB" \\192.168.10.12 C:\ASD\ASD.bat
ドメインアカウントで実行する場合はこうなります。
PsExec.exe -u "workspace.local\serverB" -p "passwordB" \\192.168.10.12 C:\ASD\ASD.bat
※ドメイン部分はご利用の「ディレクトリのDNS名」を確認してください。
無事完了するとexited on IP ADDRESS with error code 0と表示されます。
結果ファイルをサーバーAから開きます
先ほどの共有フォルダに繋ぎます。
サーバーAでエクスプローラーを立ち上げて
\\192.168.10.12\asd
を入力し、認証を済ませると利用できます。
感想
やってる事一つ一つは大した事無いんですが、記事にすると結構大変で
自分の中で風化する前に書けて良かった。
ありがとうございました。