私は、ユーザーがファイルを開くためのソリューションを作成しています。このファイルは特定のWebサイトに移動し、ユーザーのユーザー名をログインフォームに挿入する必要があります。 このファイルには、Citrixセッションにアクセスしているユーザーがアクセスする必要があります。コンソールウィンドウや依存関係を持たない単純なDOM操作
これは非常に簡単であるべき、と私はPowerShellの経由でそれを行う方法を発見した:
$aduser = Get-ADUser $env:USERNAME -Properties EmailAddress
$emailaddress = $aduser.EmailAddress
$url = "https://website.org/loginpage.asp"
$ie = New-Object -comobject "InternetExplorer.Application"
$ie.visible = $true
$ie.Navigate($url)
WaitForPage 10
$ie.Document.GetElementById("USERID").Value = $emailaddress
これは完璧に動作します - それは、Webページを開き、ユーザー名(メールアドレス)を挿入します。
ただし、ユーザーがマシンからこれを実行すると、CMDウィンドウ(実行中の場合は.cmd
または.bat
)とPowershellウィンドウのどちらも非表示にすることはできないようです。 -WindowStyle Hidden
は、ウィンドウが表示される時間を短くしました。これは許容される解決策ではありません。
私の次の行動計画は、上記のコードをc#で作り直してexeとして配布することでした(これはコンソールウィンドウを表示しにくいためです)。しかし、C#で外部ライブラリに依存しない方法を見つけることはできません(Seleniumなど)。これは、ドライバをインストールする必要があります。これは、私にとって有効なオプションではありません。
私の質問は次のようなものです - 上記PowershellスクリプトはC#で再作成できますか?そのスクリプトの-comobject
は.NETオブジェクトですか、もしそうならC#でどのように活用できますか?
は、参考のために - (CMDファイルに)次のように私は現在.ps1
ファイルを呼び出しています:
START Powershell.exe -WindowStyle Hidden -File \\file\Folder\SK\scripts\powershell\opensite.ps1
そして、私は実際に表示されるコンソールウィンドウを隠すのいずれかの方法を発見していません。私はこれに対する解決法、またはC#で同じことを実装する簡単な方法を見つける必要があります。
コードをvbscriptまたはjscriptに変換して、 'wscript.exe'で実行することができます。 Voila!コンソールウィンドウはありません。 – rojo
@rojo powershell junkieとして、これは後ろ向きに見えますが、私はそれが簡単で、よくサポートされ、簡単だと認めなければなりません。私が考える答えの価値がある。 – briantist