1

我正在尝试在 PoSh 脚本的后台运行一些函数。这项工作永远不会完成,但在正常情况下工作正常。我已将问题缩小到以下行:

这条线工作正常:

$ws = New-WebServiceProxy  "http://host/Service?wsdl" -UseDefaultCredential

但是这条线永远阻塞

start-job { New-WebServiceProxy "same url" -UseDefaultCredential } `
 | wait-job | Receive-Job

一些细节:该服务是本地的,并且需要 Windows 身份验证。客户端是 XP & server 2003。

为什么?我如何让它工作?

4

3 回答 3

1

您可以使用 ConvertFrom-SecureString 和 ConvertTo-SecureString cmdlet

一旦运行

$securestring = read-host -assecurestring
convertfrom-securestring $securestring | out-file c:\securestring

之后它将在磁盘上创建一个安全文件,您可以使用

$pass = Get-Content c:\securestring | convertto-securestring
$cred = new-object -typename System.Management.Automation.PSCredential -argumentlist “domain\administrator”,$pass

start-job { New-WebServiceProxy "same url" -Credential $cred } | wait-job | Receive-Job
于 2010-04-22T12:24:04.710 回答
0

我没有任何 ASMX Web 服务可以对此进行测试,但是如果您查看 Start-Job 的帮助,您会看到“-Authentication-”和“-Credential”。第一个指定 Default、Basic、Credssp、Digest、Kerberos、Negotiate 和 NegotiateWithImplicitCredential。第二个可用于提供实际凭据以运行作业。

希望有帮助。

于 2010-04-21T16:49:51.167 回答
0

得到这个工作。你在运行什么操作系统?XP 或 2003 可能有问题。

start-job { 
        $zip = New-WebServiceProxy "http://www.webservicex.net/uszip.asmx?WSDL"  -UseDefaultCredential 
} | Wait-Job | Receive-Job

$zip | get-member -type method
于 2010-04-20T21:55:14.677 回答