【问题标题】:Batch script/PowerShell advanced conditionals implementation批处理脚本/PowerShell 高级条件实现
【发布时间】:2013-10-17 03:25:04
【问题描述】:

我的问题是关于我应该如何在 Windows 上实现执行以下操作的批处理脚本/PowerShell cmdlet:

当打开一个窗口/页面标题为“空白”的浏览器窗口时,发送“tab”键,将登录凭据发送到网页上的文本框,然后发送“enter”键。

我发现这篇文章 (Automatic login to a website on windows 7/Chrome via batch file) 关于在 Web 浏览器中发送登录凭据,这与我想要做的非常相似,但是我希望脚本仅在浏览器已经打开并且具有特定的窗口标题中的值。这是针对在我的服务器上运行的网络的身份验证系统,它要求我每 30 天重新登录一次,并在需要我登录时自动打开一个浏览器窗口。因此,当它打开窗口时,我希望脚本能够自动为我登录。由于服务器是无人值守的(GUI 方面),我希望自动进行重新身份验证。我的计划是将这个设置为计划任务并让它每晚运行,以验证系统是否仍然经过身份验证。如果系统未通过身份验证,我希望批处理文件/cmdlet 为我登录。

我做了一些研究并找到了有关使用批处理文件条件的信息,但我找不到任何有关如何使用窗口标题或任何其他程序属性来作为我的条件关闭的信息。

人们建议使用 PowerShell,因此如果您有通过该途径实施的建议,我也完全愿意接受。

如果您需要更多信息或有任何问题,请告诉我。

【问题讨论】:

  • 最好的方法是使用 PowerShell。
  • 换句话说,不要为此使用 BATCH!
  • 好的!我没想过要看看 PowerShell。这是一个很好的建议。但是我一点也不了解 PowerShell。关于如何在 PowerShell 上实现此功能的任何提示?
  • 谷歌?我自己对 PowerShell 不太熟悉,我更喜欢 C#
  • 网站登录也可以在 VBScript 中使用XMLHttpRequests 完成。但是,根据此登录的实际目的,您可能需要更高级的内容(例如Selenium)。

标签: windows authentication powershell batch-file vbscript


【解决方案1】:

你可以用 Powershell 做到这一点。

这是一个获取窗口名称的例子,应该可以用它来检测Internet Explorer。

$selectedWindows = get-process | Where-Object { $_.MainWindowTitle -match "Editor"}

在 $selectedWindows 中有标题匹配“编辑器”的所有窗口

现在您可以在前面获取 $selectedWindows 并使用 sendKeys 来处理 Window。

为了激活窗口,在前面我有一个简短的例子:

http://pastecode.org/index.php/view/22992037

【讨论】:

    猜你喜欢
    • 2023-03-30
    • 2018-04-13
    • 1970-01-01
    • 2017-02-03
    • 2013-07-30
    • 2018-11-15
    • 2014-10-14
    • 2023-03-30
    • 1970-01-01
    相关资源
    最近更新 更多