首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PSSessionStateBroken与计划任务中的启动作业-credential

PSSessionStateBroken与计划任务中的启动作业-credential
EN

Stack Overflow用户
提问于 2013-03-14 21:44:14
回答 1查看 4.1K关注 0票数 2

下面的行可以从Powershell提示符中很好地工作,但是从计划的任务中失败。

代码语言:javascript
复制
$pass = gc C:\secrets\shhh.txt | convertTo-secureString
$Cred = new-object -typeName System.management.automation.psCredential -argumentlist "domain\domainUser",$pass

$path = "\\server\share\folder"
$j = start-job {gci -path $args[0]} -cred $Cred -argumentList $path | wait-job | receive-job

$body = $j | out-string
$error | out-file C:\temp\err.txt
send-mailMessage -to me@domain.tld -from server@domain.tld -subject halp -smtpserver mailserver.domain.tld -body $body

在c:\temp\err.txt中,Windows2008R2计划的任务留下一个面包屑:

代码语言:javascript
复制
[localhost] The background process exited abnormally.
    + CategoryInfo          : OpenError: (localhost:String) [], PSRemotingTransportException
    + FullyQualifiedErrorId : 2101,PSSessionStateBroken

...which把我们带到了这个Microsoft bug报告。报告提到了本地主机回送远程处理的解决方法,这听起来有点脏。我应该去那里吗?

有没有更好的解决办法?可能是使用*会话cmdlet之一还是调用-命令?已设置了计划任务的Start in值,但可能后台进程以某种糟糕的方式使用了一些变量,如所以

还没有用–version 2-command "& {bigKlugeyScriptblock}"语法调用-command "& {bigKlugeyScriptblock}"

编辑:我试图避免创建一个新的域帐户来运行任务。任务不能从domainUser$cred的形式运行,因为该帐户不应该具有本地主机的权限。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-14 22:48:15

当一些可能的工作围绕在一起时,不如:

  1. 在计划任务本身上放置备用凭据
  2. 使用鲁纳斯命令以不同用户的身份启动powershell.exe
  3. 使用净使用 /user参数验证对网络路径的访问 [/USER:dotted域名]用户名/用户:用户名@虚线域名
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15420769

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档