有两个我从XP编辑的PowerShell脚本在Win Server 2k8 R2中运行。
它们在powershell中手动执行时运行正常,但如果按照域管理员的身份进行调度和运行,它们将执行他们应该执行的所有文件操作;除了他们没有做一个启动过程,将文件发送到它需要去的SFTP站点。
通过运行带有参数的powershell.exe来启动它们:
-noprofile -ExecutionPolicy Bypass -file C:\Users\administrator\Documents\script1.ps1
同样,正如我之前提到的,如果你手动运行它们,它们运行正常并按要求启动start-process
,只有在它们被安排并且跳过启动过程时才运行文件操作。
start-process
如下:
start-process -FilePath "c:\Program Files (x86)\Tumbleweed\STClient\stclient.exe" -ArgumentList "httpsu://www.securesiteexample.org/incoming/ $filename /prefNoAskSched /hidden /log /Remote-Site return /quitWhenDone"
我错过了什么?
答案 0 :(得分:0)
添加一些代码以检查以确保该过程正在启动。
$FileName = 'c:\test\test.txt';
$ArgumentList = "httpsu://www.securesiteexample.org/incoming/ $filename /prefNoAskSched /hidden /log /Remote-Site return /quitWhenDone";
$ExePath = 'c:\Program Files (x86)\Tumbleweed\STClient\stclient.exe';
$Process = Start-Process -FilePath $ExePath -ArgumentList $ArgumentList -PassThru;
# If $Process variable is null, then something went wrong ...
if (!$Process) {
# Process did not start correctly! Write the most recent error to a file
Add-Content -Path $env:windir\temp\sftp.log -Value $Error[0];
}
答案 1 :(得分:0)
在您的任务中,转到操作窗格,编辑并删除 start in 字段中的所有内容。