PowerShell脚本无法在服务器上运行

时间:2016-09-15 12:54:15

标签: asp.net powershell

我有一个简单的PowerShell脚本,我尝试编写一些日志数据。 脚本不起作用:

Add-Content -Path C:\temp\logg.txt -Value $file.FullName 

这行我放在脚本的中间,我从来没有在logg.txt中得到任何文本。脚本执行正常,除此之外,它将一些文件编译为zip文件。 这是在Windows服务器上。

但是,如果我在本地计算机Win7上运行相同的脚本,它确实有效!?

所以我认为它必须与服务器有关,但我无法弄明白。我在运行脚本时使用-ExecutionPolicy Bypass

编辑:更多信息。

从ASP.NET网页调用脚本:

Process.Start("Powershell.exe", "-ExecutionPolicy Bypass -Command ""& {" & destinationFolderRoot.Replace("\\", "\") & "\scriptParameters.ps1}""")

BaseZipScript:

function New-Zip
{
    param([string]$zipfilename)
    Set-Content $zipfilename ("PK" + [char]5 + [char]6 + ("$([char]0)" * 18))
    (dir $zipfilename).IsReadOnly = $false
}

function Add-Zip
{
    param([string]$zipfilename)

    if(-not (Test-Path($zipfilename)))
    {
        Set-Content $zipfilename ("PK" + [char]5 + [char]6 + ("$([char]0)" * 18))
        (dir $zipfilename).IsReadOnly = $false
    }

    $shellApplication = New-Object -COM Shell.Application
    $zipPackage = $shellApplication.NameSpace($zipfilename)

    foreach($file in $input) 
    { 
        $zipPackage.CopyHere($file.FullName)
        Add-Content -Path "C:\temp\logg.txt" -Value $file.FullName
        Start-Sleep -Milliseconds 750
    }
}

scriptParameters1:

. "C:\temp\multiDownload\baseZipScript.ps1"

New-Zip c:\temp\multiDownload\user379\2016-09-15_14.39\files_2016-09-15_14.39.zip
dir c:\temp\multiDownload\user379\2016-09-15_14.39\tempCopy\*.* -Recurse |
    Add-Zip c:\temp\multiDownload\user379\2016-09-15_14.39\files_2016-09-15_14.39.zip
Start-sleep -milliseconds 250

exit

正如我之前所说,该脚本适用于本地机器以及服务器,例如:这些文件正在压缩,但在服务器上没有记录logg.txt。

虽然logg.txt工作并存在于服务器上,因为网页还记录了一些信息并且正在编写。

更新: 正如评论所猜测的那样简单到对文件的写访问权限。虽然,它有点奇怪,因为所有文件都是从webservice创建的,如果它们不存在的话?如何,它现在有效。谢谢! :)

0 个答案:

没有答案