所以我有一个相当简单的powershell脚本,其中包含以下内容:
import-module activedirectory
Get-ADUser -Filter *
remove-module activedirectory
如果我从powershell运行它运行正常,但是当我尝试从CMD调用它时没有任何反应,它只是打开PowerShell,就是这样。我正在使用以下命令来运行它:
powershell.exe -file "D:\test.ps1"
我还注意到以下内容,执行此操作后会运行2个powershell.exe进程。如果我从一个PowerShell退出CMD,那么我开始看到这个PS查询应该返回的列表。有没有办法让这个工作,因为我试图运行ps脚本作为预定的工作。这里的关键部分是导入模块,当我在cmd上运行它时,由于某种原因没有发生。
它是在Windows 2008R2上运行的powershell 2.0。我在win 2012r2上尝试过这个脚本,从CMD可以正常工作......看起来像ps 2.0限制?
答案 0 :(得分:0)
可能会发生一些事情。由于您的窗口打开和关闭,您将无法看到可能发生的任何错误。您的ExecutionPolicy设置为什么? Get-ExecutionPolicy
当我制作我的脚本的预定任务时,我通常会设置我的动作
节目/剧本= %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe
参数= -ExecutionPolicy Unrestricted -NoProfile -File C:\data\script.ps1
开始于= %SystemRoot%\system32\WindowsPowerShell\v1.0
另外,在这种情况下,我不相信这很重要,但请确保您拥有脚本"以最高权限运行"如果需要。