Я пишу решение для пользователей, чтобы открыть файл, и этот файл должен перейти на определенный сайт и вставить имя пользователя в форму для входа в систему. Этот файл должен быть доступен пользователям, которые находятся на сессии 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
Это отлично работает - она открывает веб-страницу, и вставляет имя пользователя (адрес электронной почты).
Однако, когда пользователь запускает это со своей машины, кажется невозможным скрыть окно CMD (если оно работает от .cmd
или .bat
), а также окно Powershell. -WindowStyle Hidden
просто уменьшил время, в течение которого появляется окно, что не является приемлемым решением.
Итак, мой следующий план действий состоял в том, чтобы воссоздать вышеприведенный код в C# и распространить его как exe (так как это вряд ли отобразит какие-либо окна консоли). Тем не менее, я не могу найти какой-либо способ сделать это в C#, который не зависит от внешних библиотек (например, Selenium, который также требует установки драйвера, который не является допустимым вариантом для меня).
Я думаю, мой вопрос в том, может ли приведенный выше сценарий Powershell воссоздаваться на C#? Является ли -comobject
из этого сценария объектом .NET, и если да, то как я могу использовать это на C#?
Для справки - я в настоящее время вызова файла .ps1
следующим образом (в виде файла CMD):
START Powershell.exe -WindowStyle Hidden -File \\file\Folder\SK\scripts\powershell\opensite.ps1
И я не нашел способ на самом деле скрывается консольные окна, которые появляются. Мне нужно либо найти решение этого, либо простой способ реализовать одно и то же в C#.
Вы можете преобразовать свой код в vbscript или jscript и запустить его с помощью 'wscript.exe'. Вуаля! Нет консольного окна. – rojo
@rojo ugh как наркоман из командной оболочки, это кажется таким обратным, но я должен признать, что это просто, хорошо поддерживается и легко. Достойный ответа, я думаю. – briantist