Windows ExtractAssociatedIcon-在PowerShell ISE工作中';这很好,但在控制台中没有';行不通

Windows ExtractAssociatedIcon-在PowerShell ISE工作中';这很好,但在控制台中没有';行不通,windows,powershell,Windows,Powershell,我有一个Powershell脚本,其中包含: $Path = 'c:\windows\system32\notepad.exe' $Icon = [System.Drawing.Icon]::ExtractAssociatedIcon($Path) $Icon.ToBitmap().Save('C:\icon.png') 我在'PwerShell ISE中编写这些脚本,当我运行时,它工作正常,不会出现问题。 但是在保存这些脚本时,右键单击“图标运行。ps1”,然后“使用PowerShell

我有一个Powershell脚本,其中包含:

$Path = 'c:\windows\system32\notepad.exe'
$Icon = [System.Drawing.Icon]::ExtractAssociatedIcon($Path)

$Icon.ToBitmap().Save('C:\icon.png')
我在'PwerShell ISE中编写这些脚本,当我运行时,它工作正常,不会出现问题。


但是在保存这些脚本时,右键单击“图标运行。ps1”,然后“使用PowerShell运行””,将出现以下错误:

PS D:\My PowerShell\tmp> .\icon.ps1
Unable to find type [System.Drawing.Icon].
At D:\My PowerShell\tmp\icon.ps1:2 char:9
+ $Icon = [System.Drawing.Icon]::ExtractAssociatedIcon($Path)
+         ~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (System.Drawing.Icon:TypeName) [], RuntimeException
    + FullyQualifiedErrorId : TypeNotFound

You cannot call a method on a null-valued expression.
At D:\My PowerShell\tmp\icon.ps1:4 char:1
+ $Icon.ToBitmap().Save('C:\icon.png')
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull

在运行脚本的其余部分之前,需要加载System.Drawing程序集。在脚本的开头,放置以下行:

Add-Type -AssemblyName System.Drawing
这将首先加载程序集,允许脚本的其余部分访问该程序集的方法和成员


添加类型-AssemblyName System.Drawing
@PetSerAl,将其放在何处?@Aso:在尝试使用
System.Drawing.Icon
之前,是否清楚?想想看。