【发布时间】:2015-05-12 21:15:44
【问题描述】:
我正在使用 powershell 来自动执行日常任务。它本质上是一个宏,用于刷新链接到外部源的数据,然后发送电子邮件。问题是 Excel 在尝试刷新数据时会自动提示输入用户名/密码。我做了一些挖掘,它不能通过设置 DisplayAlert = False 来绕过,也不能从 Excel 的设置中更改。我的凭据已保存,所以我真正需要做的是有一个脚本来按“Enter”。
我目前有以下设置:使用 Windows 调度程序,我首先启动一个 Powershell 脚本,该脚本将打开 Excel 并运行宏以刷新数据。当 Excel 提示输入凭据时,宏将被卡住。我有第二个任务,它计划在第一个任务后 2 分钟运行,其目的是按“Enter”以摆脱提示。
我已经为第二个任务尝试了几个脚本,但我似乎无法正确完成。 我尝试过的如下:
[void] [System.Reflection.Assembly]::LoadWithPartialName("'Microsoft.VisualBasic")
[void] [System.Reflection.Assembly]::LoadWithPartialName("'System.Windows.Forms")
$wshell = New-Object -ComObject wscript.shell;
$wshell.AppActivate("Windows Security")
[System.Windows.Forms.SendKeys]::SendWait("{ENTER}")
和
$excel = [Runtime.Interopservices.Marshal]::GetActiveObject('Excel.Application')
[void] [System.Reflection.Assembly]::LoadWithPartialName("'Microsoft.VisualBasic")
[void] [System.Reflection.Assembly]::LoadWithPartialName("'System.Windows.Forms")
[System.Windows.Forms.SendKeys]::SendWait("{ENTER}")
知道如何绕过/接受提示吗?
提前致谢。
【问题讨论】:
-
也许这个link 可以帮助你。它告诉您编辑
.odc文件以确保密码已保存...
标签: excel powershell