サーバーで実行されているすべてのドメインユーザーコンピューターに.NETFramework4を展開する必要があります。ユーザーがドメインにログオンしたときに開始されるログインスクリプトから自動的に実行されるコンソールアプリケーションを作成しました。
私が持っている現在のコードは、サーバー上にあるインストールファイルにリンクして自動的に実行することができます。ただし、クワイエットモード、つまり/qを使用して実行することはできません。インストールファイルが実行されるたびに、ユーザーにインストールを促すメッセージが表示されます。つまり、[次へ]をクリックして[インストール]をクリックします。
私の現在のコードは次のようになります(セキュリティ上の理由からログインの詳細とファイルパスを変更しました。ただし、ファイルはサーバー上にあり、ログインの詳細はメインの管理者アカウントです)-
Function ConvertToSecureString(ByVal str As String)
Dim password As New SecureString
For Each c As Char In str.ToCharArray
password.AppendChar(c)
Next
Return password
End Function
Sub Main()
Dim securePass As New Security.SecureString()
Dim password As SecureString = ConvertToSecureString("password")
Dim myProcess As New Process()
myProcess.StartInfo.Arguments = "/q"
myProcess.Start("C:\dotNetFx40_Full_x86_x64.exe", "user", password, Nothing)
myProcess.StartInfo.CreateNoWindow = True
End Sub
調査で理解したところ、行:myProcess.StartInfo.Arguments = "/q"
は、ユーザープロンプトなしでバックグラウンドでサイレントにインストールを実行することを意味します。ただし、動作しません。