SecureStringというものがあるらしいことを知る。これを使って、パスワードが渡せるらしい。
これと、Process.Start を組み合わせることで、RunAs のようなことができる。
Dim pw As New System.Security.SecureString For Each ch In "pass".ToCharArray() pw.AppendChar(ch) Next Dim p = System.Diagnostics.Process.Start("c:test.exe", "user", pw, "")
RunAs コマンドと違うところは、パスワードもスクリプト内に仕込めてしまうところ。ある意味便利。危険だが…
あと、この手を使って、Windowsアカウントそのものをユーザーリストにした、認証サーバーもどきが作れるなあと思うなど。ダミーの exe を用意して、実行権限を設定しておき、その exe が起動できるかどうかで、入力されたユーザー/パスワードが正当な権限を持っているかどうかが判断できる、的な。
パスワードリストを自前で管理したくないときはいいかもしれないな… # まっとうな方法で認証すべきでしょうが、そのやり方がいまだに分からないので…(汗
[VB.NET] Windowsアカウントの検証 | オールトの雲
[...] Windows のユーザーとパスワードの検証。 以前、SecureString で怪しげなことを書いていますが、ユーザーとパスワードの検証だけであれば、PrincipalContext を使用することで検証できるよ [...]
Link | 2013年1月29日 22:49