到目前为止的故事:我正在编写'Create-New-user'Posh脚本,其中包括:
- Create WeberviceProxy 对象作为变量(因为Cisco UCM,我们使用使用的肥皂请求与IT进行交互)
- 在我们的Intranet网站上拉一个PHP脚本,将其与Active Directory同步后,最简单的方法是AFAIR Indoke-webrequest commandlet。
所以现在看起来像这样:
$ mycreds = get -credential -message"指定您的密码" -USERNAME $($ env:username)$ axl = new -webserviceproxy -uri $(" \ server smbshare axlapi.wsdl")-credential $ mycreds...Invoke -webrequest -uri" https://intranet.company.com/ad_sync.php" -method get
我发现的是,在之前调用WebRequest >创建WeberviceCiceProxy对象成功,但是随时调用WebRequest 失败了以下错误:
Invoke-webrequest:基础连接已关闭:发送时发生了意外错误。
我对.net,课堂和这些东西没有经验,所以也许我的假设是错误的,但是现在我正在尝试(失败)找出是否期望这种行为?基本逻辑表明,创建变量不应影响调用简单请求,但仍然可以。因此,我很感激链接来解释如何解释fon-it-works。
还有一个,主要问题 - 是否有解决方案或至少解决方法?我的理论建议就像删除WebServiceProxy对象(不知道如何)或使用替代方法拉动PHP脚本。
一些其他信息:
- PowerShell版本:4.0
- WeberviceProxy部分由同事提供
- 我们不能因脚本逻辑而更改命令的顺序,必须以此特定的顺序完成
对此的任何建议都非常感谢!
,但是用 Invoke-WebRequest
的 New-WebServiceProxy
mucks可能仅在当前过程中。因此,解决方法是从当前过程中运行。
所以更改
Invoke-WebRequest -Uri "https://intranet.company.com/ad_sync.php" -Method Get
to
Start-Job -ScriptBlock { Invoke-WebRequest -Uri "https://intranet.company.com/ad_sync.php" -Method Get} | Receive-Job -Wait
这将在另一个过程中运行并等待结果。