【发布时间】:2016-08-31 08:33:58
【问题描述】:
我正在为用户编写一个打开文件的解决方案,该文件应该导航到某个网站并将用户的用户名插入到他们的登录表单中。 此文件需要由 citrix 会话中的用户访问。
这应该非常简单,我发现了一种通过 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 呃,作为一个 powershell 瘾君子,这看起来很落后,但我不得不承认它很简单,得到很好的支持,而且很容易。我认为值得回答。
标签: c# powershell batch-file jscript citrix