技術

2022年06月27日
Excel のマクロがあるのですが、担当者が退職してしまったそうです。
そしてマクロを修正しようにも、パスワードが不明で、それができないということなのです。

以下の方法でパスワードが解除できるようでした。
※シート保護の解除も必要だったのですが、マクロにパスワードが記載されていたので、こちらは不要でした。

【EXCEL】VBA-マクロのパスワード解除方法【コード有】

私のメインで利用している Excel ではなぜか強制終了になってしまいました。
別のPCで試してみると、そちらでは問題ありませんでした。※バージョンなどは同じなので、原因は不明でした。

なかなか独特な感じで、パスワードの付与されているExcelを開き、それとは別の新規Excelも同時に開きます。
新しいExcelで標準モジュールを追加して、パスワード解析のコードを入力・実行するようです。

本当はどのようなパスワードが設定されているのか表示されるのが希望でしたが、マクロを実行すると、パスワードが解除された状態となるようです。
大変に助かりました。



stock_value at 18:46|この記事のURLComments(0)
2022年05月30日
一般的な SoftEther の利用では、VPNに接続すると、同じセグメントのIPアドレスが利用可能になり、さもそのセグメントに自身のPCが所属しているようになります。
しかしAWSの環境では、そのような利用方法ができないようです。promiscuous mode が禁止されているため。

そこで SecureNAT という機能を利用します。
SecureNATを利用すると、SoftEtherがインストールされているEC2のIPアドレスを、VPN接続しているユーザーたちで使い回すことが可能です。
ルーターが設置されているようになります。

インストールも比較的簡単でした。
yum で gcc のインストールを行った後に make をします。
パスの通っている場所に作成されたディレクトリを移動させて、コマンドが利用可能になるようにしました。

また systemd に登録し、サービスとして起動時に実行されるように設定しました。

stock_value at 14:20|この記事のURLComments(12)
2022年05月27日
お客さんが既存で QNAP を利用していました。
様々な理由からクラウドを検討していたのですが、ここでも QNAP を利用できるととてもいいと思いました。

ということで以下の構成で構築しました。

AWS EC2
t3.small

ボリューム
ブートストレージとして、 50G ※ブート用に50Gは必要なようでした。
データストレージとして 1T

常時100%利用で、
20 USD *ec2
6 USD *ブート
19 USD *データ(sc)

45USD ・・・おおむね 5,700円/月 ぐらいでした。

QuTScloud ライセンス 1年で、約100 USD ・・・おおむね 12,600円/年、1,050円/月です。

1Tの利用であれば、約7,000円/月ぐらいのコストで利用可能なようです。2Tの場合には、1万/月ぐらいでしょうか。
ちなみに QuTScloud のライセンスは、vCPUなどに応じて価格が変化するので注意が必要です。
お試しライセンスは無さそうでした。

今回のPC及びライセンスは、2Coreまで可能なので、もうすこし上位の ec2 でも利用可能です。
目安としては、2Coreで、6-10 Users 、10-20接続 ということのようです。

構築してテストで利用してみた感じでは、ローカルにある QNAP と使い勝手は変わりませんでした。

ただし、ストレージを作成するときにローカルの場合には、RAIDにしますが、今回のような構成の場合、RAIDにするべきなのかはわかりません。
また複数のディスクで容量を確保することが多いですが、AWSの場合、ディスクの自由度があるので、シングルディスク構成にしてしまってもいいのかもしれません。

あと、SMBはむき出しにせずに VPN などを別途検討する必要があります。
今回はバックアップとして利用だったので、SMBの解放はせずに、バックアップに関係する箇所だけを開放していました。

stock_value at 11:54|この記事のURLComments(0)
2022年05月05日
サーバーのメンテナンスをしていました。
マニュアルでは、ローカルのサーバーに接続するには、 127.0.0.1 を利用してください。
そのように記載されていました。

たしかにそのIPは自身のことを指しているので、特に問題無いと思いました。
しかしそれではアクセスできないのです。

プログラムに原因があるのかと思って、SQL Server Management Studio でIPアドレスで接続を試してみました。
しかし同様にエラーになってしまうことがわかりました。

過去にも色々試行錯誤しているようでした。
2007年06月28日: SQL Server 2005 Express Edition

今回も同じような感じでした。
SQL Server 構成マネージャーを起動
SQL Server ネットワークの構成から、TCP/IPのプロパティ
有効をはいに変更。
「IPアドレス」タブの、IPAll のTCPポートを1433に変更。またTCP動的ポートは空欄に変更。
これで SQL Server を再起動することで 1433 が Listen していました。

FWも適切に設定します。

stock_value at 16:29|この記事のURLComments(0)
2022年05月04日
いつからだったか不明ですが、 SQL Server Agent が起動しません。
ログを見た限りでは、エラーになっておらず、サービスを開始させると、起動してすぐに停止しているようです。
なぜかエラーにはなっていません。

SQL Server Management Studio からサーバーに接続し、
管理-SQL Server ログという場所があるので、それを確認してみました。
「現在」となっているところを開くと、ログの選択画面が出てきて、SQL Server エージェントという項目がありました。

しかしここにもエラーはでていませんでした。

今回の件は結構対応が難しいと思いました。だってエラー出てないんだもの。
でもAgentを利用した、バックアップなどの処理はすべて失敗していました。

サービスから SQLAgentの起動権限を変更してみました。
まずはデフォルトの Network Service アカウントからローカルシステムアカウントに変更しました。
サービスの起動終了の症状には変化がありませんでした。

しかし SQL Server Management Studio から確認できるログには変化がありました。
以下のエラーが出ていました。
[298] SQLServer エラー: 229, EXECUTE 権限がオブジェクト 'sp_sqlagent_update_agent_xps'、データベース 'msdb'、スキーマ 'dbo' で拒否されました。 [SQLSTATE 42000] (DisableAgentXPs)

このエラーが出ていたので、サービス起動時のローカルシステムアカウントでは権限がないと思われました。
再度サービスを起動するアカウントに Admin 権限を有するアカウントを設定しました。

そしてサービスを起動すると無事に起動し、停止しませんでした。またエラーログも出なくなりました。

stock_value at 16:51|この記事のURLComments(0)
2022年05月02日
初めて Docker を利用します。
練習する材料として、ちょうどよさそうなので、 group session を Docker 環境で動かしてみたいと思います。
GroupSession

※構成方法が全然わかっていないので、ベストプラクティスに沿っていないと思います。
こういう例で動作した環境があるという程度の参考にしてください。

docker のインストール等については標準的な方法で行いました。

groupsession の変更点が保持されるように webapps はローカルにマウントしています。
groupsession のバージョンなどが勝手に変更されないように、 war ファイルはローカルに保持しています。
tomcat のバージョンは本日時点の最新を選択しました。
例えばこの docker 環境で tomcat のバージョンを変えれば、tomcat アップデートのテストが簡単にできそうな気がします。
java についても、ローカルに保存しているものを利用しています。

以下のディレクトリを作成します。
/root/my-gsession-test
/root/my-gsession-test/tomcat9
/root/my-gsession-test/webapps

Temurin の java ファイルをダウンロードし、以下のフォルダに保存します。(Temurin 11)
/root/my-gsession-test/tomcat9 に保存します。

groupsession の war ファイルを/root/my-gsession-test/webappsに保存します。

以下の通り yml ファイルを作成します。
# vi /root/my-gsession-test/docker-compose.yml
version: '3'

services:
tomcat:
container_name: my-gsession-test
build: ./tomcat9
ports:
- "8080:8080"
volumes:
- ./webapps:/usr/local/tomcat/webapps

Dockerfile を作成します。
# vi /root/my-gsession-test/tomcat9/Dockerfile
FROM tomcat:9.0.58
ADD OpenJDK11U-jdk_x64_linux_hotspot_11.0.15_10.tar.gz /usr/local/java

ENV JAVA_HOME="/usr/local/java/jdk-11.0.15+10"
ENV PATH="$JAVA_HOME/bin:$PATH"

※ADD に tar.gz ファイルを指定することで解凍してくれるようです。※ただし解凍するときに少しだけ時間がかかっています。
環境変数を追加しています。

これで以下のコマンドで docker を実行します。
# docker-compose up -d --build

起動状況を確認します。
# docker-compose ps
NAME COMMAND SERVICE STATUS PORTS
my-gsession-test "catalina.sh run" tomcat running 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp


次にやりたいこと
apache との連携
group session のメモリ調整


stock_value at 10:27|この記事のURLComments(0)
2022年04月25日
iPerf を検索すると、以下のサイトが出てきます。
https://iperf.fr/

そしてここでは、2016年更新の3.1.3が最新版となっているようです。
ところが、 GitHub を確認すると、本日時点では 3.11 までバージョンが上がっているようです。
しかしここからダウンロードできるのは、どうも linux 等のもののよう・・・。

Windows用には自身でビルドしなければならないようです。それは敷居が高い・・。

ということで色々調べてみたところ、以下の情報がありました。
※野良ビルドかもしれないので、取り扱いには注意してください。
Iperf for Windows - where to find newer versions?
Iperf 3.11 Windows build
※野良ビルドかもしれないので、取り扱いには注意してください。

上記サイトのリンクからファイルをダウンロードすることができました。

stock_value at 11:20|この記事のURLComments(0)