2012-08-02 74 views
2

嗨,我想使用powershell生成visio drwaings,但得到以下錯誤;獲取Powershell和Visio錯誤

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)" 

回答

1

Page不是Masters的財產。您需要使用Item屬性獲取PC主集合:

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

要麼$ComputerStencil$ComputerStencil.Masters$null。您可以點擊源代碼並在命令行中查找變量和對象(有時比在ISE中使用調試器更容易)。