這是為清晰起見而進(jìn)行的主要編輯??磥砦倚枰π纬伤枷搿R韵率俏矣龅降拇_切代碼。簡要說明:我正在嘗試設(shè)置一個Powershell類,該類將容納不同類型的對象以便于訪問。我在C#中已經(jīng)做過很多次了,所以我認(rèn)為這很簡單。所需的類型是[System.Printing]和WMI對象。最初,我曾嘗試將類直接寫入Powershell配置文件以方便使用,但是當(dāng)我必須在其中對代碼進(jìn)行分類時,我的配置文件無法加載。說它找不到類型名稱“ System.Printing.PrintServer”或任何其他明確列出的類型。失敗之后,我將其移至它自己的特定模塊,然后設(shè)置我的配置文件以在打開時導(dǎo)入該模塊。但是,即使存儲在其自己的模塊中,如果我為任何屬性明確列出.Net類型,整個模塊也無法加載。不管我是否添加或?qū)肓祟愋? dll。特定的問題區(qū)域是這樣的:[string] $ Name [System.Printing.PrintServer] $ Server [System.Printing.PrintQueue] $ Queue [System.Printing.PrintTicket] $ Ticket [System.Management.ManagementObject] $ Unit [bool ] $ IsDefault將其設(shè)置為此時,所有“種類”都可以使用,但是然后我的所有屬性都具有_Object類型,這沒有幫助。[string] $ Name $ Server $ Queue $ Ticket $ Unit $ IsDefaultAdd-Type -AssemblyName System.PrintingAdd-Type -AssemblyName ReachFrameworkClass PrinterObject{ [string]$Name [System.Printing.PrintServer]$Server [System.Printing.PrintQueue]$Queue [System.Printing.PrintTicket]$Ticket [System.Management.ManagementObject]$Unit [bool]$IsDefault PrinterObject([string]$Name) { #Add-Type -AssemblyName System.Printing #Add-Type -AssemblyName ReachFramework $this.Server = New-Object System.Printing.PrintServer -ArgumentList [System.Printing.PrintSystemDesiredAccess]::AdministrateServer $this.Queue = New-Object System.Printing.PrintQueue (($this.Server), ($this.Server.GetPrintQueues() | Where-Object {$_.Name -match $Name} | Select-Object -ExpandProperty Name)) $this.Ticket = $this.Queue.UserPrintTicket $this.Unit = Get-WmiObject -Query "SELECT * FROM Win32_Printer WHERE Name LIKE `"%$Name%`"" } PrinterObject([string]$Name, [bool]$IsNetwork) { #Add-Type -AssemblyName System.Printing #Add-Type -AssemblyName ReachFramework if($IsNetwork -eq $true) { $this.Server = New-Object System.Printing.PrintServer ("\\Server") $this.Queue = New-Object System.Printing.PrintQueue (($this.Server), ($this.Server.GetPrintQueues() |
3 回答

斯蒂芬大帝
TA貢獻(xiàn)1827條經(jīng)驗 獲得超8個贊
為了補充 PetSerAl的有用答案:
using assembly 應(yīng)該是正確的解決方案,但是從Windows PowerShell v5.1 / PowerShell Core v6.1開始,尚未在解析時使用它,因為它需要額外的工作來避免在匯編時可能會不希望地執(zhí)行任意代碼已加載。
該問題的實現(xiàn)已在本GitHub問題中得到了開綠燈,并且作為此問題的一部分正在跟蹤必要的工作。
- 3 回答
- 0 關(guān)注
- 550 瀏覽
添加回答
舉報
0/150
提交
取消