我正在Windows 8.1机器上编写PowerShell脚本.尝试使用New-Object cmdlet创建PSCredential对象时,出现此错误:
New-Object:找不到"PSCredential"的重载和参数count:"2".
在另一台Windows 8.1机器上运行完全相同的脚本对我来说很好.我还验证了两台机器都运行相同版本的PowerShell 4.0
两台计算机都安装了相同的.NET Framework 4.0.
知道为什么会这样,以及如何解决这个问题?
$userPassword = ConvertTo-SecureString -String "MyPassword" -AsPlainText -Force
$userCredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList "myUserName", $userPassword
Run Code Online (Sandbox Code Playgroud)
经过一些测试后,我发现了问题所在.对于我的功能,我打算从用户那里获取用户名和密码,但如果用户决定跳过这些输入参数,也会提供默认值.
为此我通过在参数部分添加以下行来实现它
[string][ValidateNotNullOrEmpty()] $userPassword = "myPassword",
Run Code Online (Sandbox Code Playgroud)
似乎问题是我在参数中将它定义为[String]但后来试图成为SecureString,这导致了问题.
删除参数中的[String]属性解决了问题.
我正在使用 Microsoft 计算机视觉 API 进行 OCR 处理,我注意到它们在我的账单中作为 S3 交易而不是 S2 进行收费。

我正在使用 .NET SDK,我使用的 API 就是这个。 https://learn.microsoft.com/en-us/dotnet/api/microsoft.azure.cognitiveservices.vision.computervision.computervisionclientextensions.readasync?view=azure-dotnet
我还确认 SDK 调用的实际 REST API 是以下 POST /vision/v3.2/read/analyze https://centraluseuap.dev.cognitive.microsoft.com/docs/services/computer-vision-v3- 2/操作/5d986960601faab4bf452005
根据文档,这应该是 OCR Read API,对吗? https://learn.microsoft.com/en-us/azure/cognitive-services/computer-vision/vision-api-how-to-topics/call-read-api
我很困惑为什么我的通话按 S3 而不是 S2 收费。这对我来说很重要,因为 S3 比 S2 贵 50%。使用定价计算器,1000 个 S2 交易为 1 美元,而 1000 个 S3 交易为 1.5 美元。 https://azure.microsoft.com/en-us/pricing/calculator/?service=cognitive-services
OCR 和“描述和识别文本”有什么区别?OCR(光学字符识别)根据定义必须识别文本。我调用 Read API 时没有任何可选参数,因此我没有要求“描述”,因此我认为调用应该是 S2 功能而不是 S3 功能。

我已经在 Microsoft 问答中发布了这个问题,但我认为这样可能会获得更多流量,从而帮助我更快地获得答案。 https://learn.microsoft.com/en-us/answers/questions/689767/computer-vision-api-charged-as-s3-transaction-inst.html