我想将用 PowerShell 5.1 编写的现有 PowerShell 脚本移植到 PowerShell 7.1。但是,由于找不到类型,我似乎无法创建 [Windows.Security.Credentials.PasswordCredential] 类型的对象。
查看注册表告诉我这个类存储在以下位置:
- C:\Windows\System32\vaultcli.dll
- C:\Windows\SysWOW64\vaultcli.dll
但是在 PS 7.1 中将这些 DLL 添加到我的脚本中失败了:
PS C:\Users\xxx> Add-Type -Path "C:\Windows\System32\vaultcli.dll"
Add-Type: Bad IL format. The format of the file 'C:\Windows\System32\vaultcli.dll' is invalid.
PS C:\Users\xxx> Add-Type -Path "C:\Windows\SysWOW64\vaultcli.dll"
Add-Type: Bad IL format. The format of the file 'C:\Windows\SysWOW64\vaultcli.dll' is invalid.
在 PowerShell 5.1 中检查相关的代码库参数会返回以下内容:
PS C:\Users\xxx> [Windows.Security.Credentials.PasswordVault].Assembly.CodeBase
file:///C:/WINDOWS/system32/WinMetadata/Windows.Security.winmd
如何正确添加对此类型的引用?