チャブーンです。
この件ですが、文字列をSecureStringで暗号化して保存していると理解してます。
でこれですが、仕様上「暗号キーはローカルコンピューター上にのみ存在する」という制約があります。つまり、他のマシンで実行する場合、復号はできない制約がある、理解です。
ちなみに別コンピューターのアカウントは、セキュリティ的には別物となります。Windowsの「パススルー認証」という機能で、SMBアクセス(Windows認証)の便宜上、アカウント名とパスワード文字が同じなら同じユーザーとして扱う、というルールになっているだけです。
こちらはユーザーマジックで何とかする、とはムリだと思いますので、別のやり方が必要だと思います。
- PC1からPC2にSMBセッションを開く(SMB3.0の暗号セッションを使います)
- PC1でパスワードを復号して、PC2のSMBに平文パスワードが書かれたファイルを生成
- PC2で生成されたファイルをリアルタイムに「検出」して以下の動作を自動実行させる
- 生成ファイルから平文パスワードを読み込む
- SecureString化して別のファイルを生成する
- 元の生成ファイルを削除する
そうすれば、パスワード文字列を見られることなく、対応が可能なのではないでしょうか?特定フォルダー内で「(コピー・移動等も含め)ファイルが生成された」を検出するにはWMIの
__InstanceCreationEventクラスを使うと可能です。これを実際に使ったファイル検出とそのアクション(検出後に何をさせるのか)について、サンプルがあるようですので、以下を見ていただくといいかと思います。
https://ravichaganti.com/blog/monitoring-file-creation-using-wmi-and-powerevents-module/