- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 PowerShell 脚本,它导航到我们 Intranet 上的(大概)经典 ASP 页面,以停止在我们的服务器上运行的 Windows 服务,作为该服务部署过程的一部分(并在部署新文件后重新启动它)。它运行良好,直到我们最近升级到 IE9。这是脚本。
# Open service page in IE
$ie = new-object -comobject InternetExplorer.Application
$ie.visible = $true
$ie.navigate($serviceUrl)
while($ie.busy) { start-sleep 1 }
# Stop service
$ie.Document.getElementById("dropDownActionList").value = "Stop"
$ie.Document.getElementById("buttonTakeAction").click()
while($ie.busy) { start-sleep 1 }
You cannot call a method on a null-valued expression.
At C:\Projects\ABC\Scripts\Deploy.ps1:85 char:28
+ $ie.Document.getElementById <<<< ("dropDownActionList").value = "Stop"
+ CategoryInfo : InvalidOperation: (getElementById:String) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
HWND
之前属性具有有效值,但现在为空(
$ie.hwnd -eq $null
返回 true)。当我导航到该页面时,PowerShell 中未显示任何错误。
Document
属性为空),对于后一个,IE9 默认为 Intranet 站点的兼容模式。我保存了 ASP 页面并通过
w3c validator 运行它并且它抛出了一些错误(尽管与我要处理的元素无关)。不幸的是,我无法修复这些。其他网站好像没有这个问题。对问题可能是什么的任何怀疑以及关于变通方法的建议?
最佳答案
我刚刚解决了这个......有点。在我关闭 IE 中的保护模式之前,我看到了相同的行为。这似乎与从一个安全区域提交到下一个安全区域有关。所以.. 假设您的原始页面位于 Internet 区域中,并启用了保护模式,您提交到受信任区域或 Intranet 或其他任何内容中的页面,似乎 COM 上下文丢失了。大概是故意的。我将尝试修复区域,并保持保护模式。
希望这可以帮助。
编辑:如果您在提升模式下运行 powershell(以管理员身份运行),这也不是问题
关于导航到网页后,PowerShell IE9 ComObject 具有所有空属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13869518/
我正在尝试使用 PowerShell 提取有关 Windows 2003 Server 上事件计划任务的信息。 我在网上找到了一个有用的脚本,用于通过更新版本的 Windows 连接到计划任务: $s
我正在尝试(不走运)为我在 Office 类型库中访问的对象实现“对象转储程序”。 这一定是可能的,因为 VS 的调试窗口有一个 System.__ComObject 对象的“动态 View ”,可以
这是我的一些示例代码,用于查找 OU 中的所有计算机对象。当我打印出属性字段时,我得到一个 System.__ComObject 用于多个值,例如 lastLogon、lastLogonTimesta
这可能吗? 内容如下: import win32com.client ProgID = "someProgramID" com_object = win32com.client.Dispatch(Pr
假设我正在尝试编写一个将结果集打印到 Excel 工作表的 Powershell 函数,如下所示: function Write-ToWorksheet { param ( [Parame
我有一个 PowerShell 脚本,它导航到我们 Intranet 上的(大概)经典 ASP 页面,以停止在我们的服务器上运行的 Windows 服务,作为该服务部署过程的一部分(并在部署新文件后重
我在 Powershell Excel ComObject 上遇到问题,无法接受逗号 , 以外的分隔符。收到的一些外部 .csv 文件使用不同的分隔符,例如分号 ;、管道 | 等。 那么,有什么解决方
我想做的是将在服务器端创建的对象传输到客户端。当我在服务器端和客户端使用 C++ 时,我已经让它工作得很好,但是我没有让我的服务器与其他语言(如 .Net)一起工作,它可能不喜欢这些指针! 这个服务器
我正在尝试自动化 Outlook Web Access 网站,填写一些文本框并单击按钮, 我可以在第一页(登录)和提交按钮中找到相关元素,所以我通过了登录阶段,我的问题是在一些带有屏蔽文本框的页面中找
我一直试图编写一个程序来访问第三方OLE DLL的属性和方法。 下面的代码运行正常。 [System.__ComObject].InvokeMember("AppName", [System.Refl
我正在使用以下代码: Object projObj = htProjects[selectedNode]; // htProjects is a Hashtable:key-project Name,
我正在使用以下代码: Object projObj = htProjects[selectedNode]; // htProjects is a Hashtable:key-project Name,
我正在使用 (Excel.Application)Marshal.GetActiveObject("Excel.Application") 它返回一个 _ComObject 类型,但我想知道我如何才能
我有以下通过 SSIS 执行调用的 SQL 语句: SELECT DISTINCT [ICDM_Log_Paths] = STUFF((SELECT ' ' + [ICDM_Log_Paths]+
我需要从 Powershell 读取 Excel 文件。 我正在使用这个对象: $objExcel=New-Object -ComObject Excel.Application 它在安装了 Offi
我无法将 Word 2010 (14.0.x) 文档发送到 SaveAs或 Close使用 Powershell。从网上的所有 tuts 看来,它应该可以与 2.0 一起使用,但我不再拥有它了。 简单
这是我在这里的第一篇文章,因为实际上我通常用真棒解决我所有的问题 您可以在此处找到发布数据库。但我现在实际上被困住了: 我正在开发一个遵循 MVVM 的项目,包括一个 COM 对象。 正如我在研究期间
我有一个包含不同 ComObject 的列表。如果我执行 myList.Clear() 是否就足够了,还是应该遍历它并执行此操作。 for (int i = 0; i < myList.Count;
我正在编写一个脚本,该脚本应该从 Internet Explorer 中的链接安装一些软件,不幸的是,该站点需要 32 位 Internet Explorer 才能工作。有没有办法强制 32 位 In
我正在尝试使用 PowerShell Core for Mac 加载 Excel 文件,但我遇到了 New-Object 的问题.它在第一行失败了 $Excel = New-Object -ComOb
我是一名优秀的程序员,十分优秀!