使用Powershell和Visio获得错误

时间:2012-08-02 20:29:54

标签: powershell automation visio

您好我正在尝试使用PowerShell生成visio drwaings,但收到以下错误;

PS C:\Users\XXXX\Desktop\Scripts> C:\Users\XXXX\Desktop\Scripts\tempv.ps1 您无法在空值表达式上调用方法。 在C:\Users\XXXX\Desktop\Scripts\tempv.ps1:14 char:1 + $pc = $ComputerStencil.Masters.Page("PC") + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : InvokeMethodOnNull

PS C:\Users\XXXX\Desktop\Scripts>

请告诉我这里有什么不对;我尝试了很多,但不知道什么是错的;

$application = New-Object -ComObject Visio.Application
#$application.visible = $false
$documents = $application.Documents
$document = $documents.Add("Basic Network Diagram.vst")
$pages = $application.ActiveDocument.Pages
$page = $pages.Item(1)

$NetworkStencil = $documents.Add("periph_m.vss")
$ComputerStencil = $documents.Add("Computers and Monitors.vss")
$ConnectorStencil = $documents.Add("Connectors.vss")
$pcinfo = Get-ComputerSystem -computer $computer

#***********************WORKS UNTILL HERE**************
#*****ERROR PART***************
$pc = $ComputerStencil.Masters.Page("PC")
$shape1 = $page.Drop($pc, 2.2, 6.8) 
$shape1.Text = "$($pcinfo.DNSHostName)`r`n$($pcinfo.Domain)"

2 个答案:

答案 0 :(得分:1)

Page不是Masters的属性。您需要使用Item属性从集合中获取PC Master:

$pc = $ComputerStencil.Masters.Item("PC")

答案 1 :(得分:0)

$ComputerStencil$ComputerStencil.Masters$null。你可以点源脚本并在命令行中查看变量和对象(有时比在ISE中使用调试器更容易)。