AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 473072
Accepted
SeanKilleen
SeanKilleen
Asked: 2013-01-29 06:45:53 +0800 CST2013-01-29 06:45:53 +0800 CST 2013-01-29 06:45:53 +0800 CST

Powershell VMWare 脚本未从计划任务运行

  • 772

背景/目标

我正在尝试创建一个计划任务,它将:

  • 在指定时间运行(一次)
  • 运行一个 PowerShell 脚本:
    • 将其所有输出记录为成绩单
    • 使用加密的存储凭据连接到我的 vCenter 服务器
    • 关闭特定文件夹中所有虚拟机的来宾操作系统

问题

该脚本从控制台完美执行,但甚至没有开始作为任务执行。

编码

#Stop an error from occurring when a transcript is already stopped
$ErrorActionPreference="SilentlyContinue"
Stop-Transcript | out-null

#Reset the error level before starting the transcript
$ErrorActionPreference="Continue"
Start-Transcript -path C:\temp\Shutdown_NonProductionVMs.log -append

#Add the VMWare Snap-in
Add-PSSnapin -Name VMWare.VimAutomation.Core

#Get the Credentials
$creds = Get-VICredentialStoreItem -file  C:\temp\pscreds.creds

#Connect to the server using the credentials file
Connect-VIServer -Server $creds.host -User $creds.User -Password $creds.Password

#Get all VMs within the non-production VMs folder and then shut them down
#NOTE the -WhatIf tag, which will stop it from shutting down the VMs until we're sure the script is good.

Get-Folder -Name "03. Non-Production VMs" | Get-VM | Shutdown-VMGuest -WhatIf

#Clean Up
Disconnect-VIServer -Force -Confirm:$false
Remove-PSSnapin -Name VMWare.VimAutomation.Core
Stop-Transcript

到目前为止我检查/尝试过的内容和其他线索

  • 同样,当以管理员身份打开控制台时,此脚本在控制台中运行得非常好。
  • 我已经设置了“无限制”的机器级执行策略,看看是否有帮助。
  • 我正在以创建凭据文件的同一用户身份运行任务
  • 我正在以最高权限运行任务。
  • 我正在使用存储的凭据(我的用户凭据——与控制台中的凭据相同)运行任务。
  • 我试着注释掉与成绩单相关的代码,看看是否能做到;没有骰子。
  • 该任务只是继续永久运行。我没有得到任何结果,也没有终止。

有任何想法吗?在此先感谢您提供的任何帮助!

windows-7
  • 1 1 个回答
  • 1994 Views

1 个回答

  • Voted
  1. Best Answer
    Ryan Ries
    2013-01-29T07:20:17+08:002013-01-29T07:20:17+08:00

    如果您在交互式“控制台”会话中启动 Powershell,您很可能会启动 64 位版本的 Powershell。(可执行文件将驻留在 Windows\System32 中。)您还可以通过执行驻留在 Windows\SysWOW64 中的版本从 64 位 Windows 启动 32 位 Powershell。确保您知道正在启动哪个版本的任务计划程序。

    请记住,每个版本的 Powershell 都有一个完全独立的执行策略。所以你需要设置两次执行策略来覆盖32位和64位版本的Powershell。

    您尝试加载的管理单元也可能很关键。某些管理单元和 COM 对象只能在 32 位或 64 位环境中加载。但是,我刚刚在安装了 PowerCLI 的 Server 2008 R2 服务器上进行了测试,加载您在两种环境中引用的管理单元都没有问题。所以我认为这不是这里的问题。但这仍然是需要考虑的事情。这可能取决于您安装的 PowerCLI 版本。确保管理单元从 32 位和 64 位 PS shell 加载。

    最后,您能否准确告诉我们计划任务中的操作屏幕显示的内容?您正在运行什么确切的命令行(带参数)?如果你运行类似的东西,你可能会得到更多的调试信息cmd /c powershell.exe c:\yourscript.ps1 2>&1> C:\debug.txt

    它也可能有助于为我们提供Get-ExecutionPolicy -List来自 32 位和 64 位环境的输出。

    在你的帖子中你还提到:

    该任务只是继续永久运行。我没有得到任何结果,也没有终止。

    这通常表示它正在等待用户输入。

    编辑:错别字,错别字无处不在

    • 3

相关问题

  • Windows 7 总是附加 VHD

  • Windows 7 上的虚拟 PC 和网络共享

  • 在 Windows XP 上安装 Windows 7 引导加载程序

  • 如何在 Windows 中自定义管道?

  • IIS 7.5 (Windows 7) - HTTP 错误 401.3 - 未经授权

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve