Powershell | Com对象Excel |是否打开outlook?

Powershell | Com对象Excel |是否打开outlook?,excel,powershell,com,Excel,Powershell,Com,只有在未配置邮件帐户时才会出现问题-但我仍希望有一个解决方案 我需要一些帮助。我发现这个小剧本有一个很奇怪的习惯。我完全不知道为什么会这样。 如果我运行下面发布的代码,Microsoft Outlook将启动。只要我不终止Outlook进程,脚本就会被卡住!为什么这段代码会启动Outlook? 我迷路了 $Path = "C:\test.xls" #Excelvar: $Row = [int] 2 $Excel = New-Ob

只有在未配置邮件帐户时才会出现问题-但我仍希望有一个解决方案

我需要一些帮助。我发现这个小剧本有一个很奇怪的习惯。我完全不知道为什么会这样。 如果我运行下面发布的代码,Microsoft Outlook将启动。只要我不终止Outlook进程,脚本就会被卡住!为什么这段代码会启动Outlook? 我迷路了

$Path     = "C:\test.xls"
#Excelvar:
$Row                 = [int] 2
$Excel               = New-Object -ComObject Excel.Application
$Excel.Visible       = $true
$Excel.DisplayAlerts = $false
        #Sheets:
        $ADUsers     = "Active Directory Users"
        $Groups      = "Create Groups"
        $UsertoGroup = "User to groups"
        $DNS         = "DNS"
#$Worksheet = $Workbook.Sheets.Add()
$checkxls = test-path -pathtype Any $Path
if ($checkxls -eq $false) {  
    $wb = $Excel.Workbooks.Add()

         $wb.Worksheets.add()

$wb.SaveAs($Path)
    $wb.Close()
    $Excel.Quit()
提前谢谢

Outlook终止后的Powershell输出:

Application                       : Microsoft.Office.Interop.Excel.ApplicationClass
Creator                           : 1480803660
Parent                            : System.__ComObject
CodeName                          : 
_CodeName                         : 
Index                             : 1
Name                              : Tabelle4
Next                              : System.__ComObject
OnDoubleClick                     : 
OnSheetActivate                   : 
OnSheetDeactivate                 : 
PageSetup                         : System.__ComObject
Previous                          : 
ProtectContents                   : False
ProtectDrawingObjects             : False
ProtectionMode                    : False
ProtectScenarios                  : False
Visible                           : -1
Shapes                            : System.__ComObject
TransitionExpEval                 : False
AutoFilterMode                    : False
EnableCalculation                 : True
Cells                             : System.__ComObject
CircularReference                 : 
Columns                           : System.__ComObject
ConsolidationFunction             : -4157
ConsolidationOptions              : {False, False, False}
ConsolidationSources              : 
DisplayAutomaticPageBreaks        : False
EnableAutoFilter                  : False
EnableSelection                   : 0
EnableOutlining                   : False
EnablePivotTable                  : False
FilterMode                        : False
Names                             : System.__ComObject
OnCalculate                       : 
OnData                            : 
OnEntry                           : 
Outline                           : System.__ComObject
Rows                              : System.__ComObject
ScrollArea                        : 
StandardHeight                    : 15
StandardWidth                     : 10,71
TransitionFormEntry               : False
Type                              : -4167
UsedRange                         : System.__ComObject
HPageBreaks                       : System.__ComObject
VPageBreaks                       : System.__ComObject
QueryTables                       : System.__ComObject
DisplayPageBreaks                 : False
Comments                          : System.__ComObject
Hyperlinks                        : System.__ComObject
_DisplayRightToLeft               : False
AutoFilter                        : 
DisplayRightToLeft                : False
Scripts                           : System.__ComObject
Tab                               : System.__ComObject
MailEnvelope                      : 
CustomProperties                  : System.__ComObject
SmartTags                         : System.__ComObject
Protection                        : System.__ComObject
ListObjects                       : System.__ComObject
EnableFormatConditionsCalculation : True
Sort                              : System.__ComObject
PrintedCommentPages               : 0

您可以尝试在“安全模式”下运行Excel:


这里的问题是,当您运行
$wb.Worksheets.add()
时,它会将新工作表返回到管道中(这就是为什么在关闭Outlook时会显示工作表属性)

我相信工作表的MailEnvelope属性是导致Outlook打开的原因(如果存储工作表并返回MailEnvelope属性,则会发生相同的行为)

要解决此问题,您可以存储返回的工作表,使用Out-Null cmdlet或将工作表强制转换为void:
$ws=$wb.Worksheets.add()

$wb.Worksheets.add()| Out Null
[void]$wb.Worksheets.add()

谢谢您的建议,但我如何将其转换为powershell?无法在powershell中执行此操作。你能给我一个在powershell中以“安全模式”运行Excel的代码示例吗?不。如果没有帮助,我会删除答案。我也经历过同样的行为。我有,你有没有得到任何反馈?