我正在尝试在PoSh脚本的后台运行一些函数。该作业永远不会完成,但在正常情况下工作正常。我把问题缩小到以下几行:
这条线很好用:
$ws = New-WebServiceProxy "http://host/Service?wsdl" -UseDefaultCredential
但这条线永远阻挡
start-job { New-WebServiceProxy "same url" -UseDefaultCredential } `
| wait-job | Receive-Job
一些细节:该服务是本地的,需要Windows身份验证。客户端是XP& server 2003。
为什么呢?我如何让它工作?
答案 0 :(得分: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
答案 1 :(得分: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
答案 2 :(得分:0)
我没有任何ASMX网络服务来测试这个,但是如果你看看Start-Job的帮助,你会看到'-Authentication-和'-Credential'。第一个指定Default,Basic,Credssp,Digest,Kerberos,Negotiate和NegotiateWithImplicitCredential。第二个可用于提供运行作业的实际凭据。
希望有所帮助。