Debugging Powershell调试输出

Debugging Powershell调试输出,debugging,powershell,Debugging,Powershell,我有一个powershell脚本,它在多台服务器上的持久连接上创建一些DotNetZip ZIP文件,然后使用Start BitsTransfer将ZIP文件从远程服务器移动到本地服务器 我在两台不同的服务器上运行几乎相同的脚本,在其中一台服务器上,它几乎不会在屏幕上打印任何内容。另一方面,它输出很多看起来像二进制的东西。这是因为在输出所有这些信息的服务器上打开了某种调试设置吗?有没有办法把它关掉?我更希望它像第一个运行脚本的服务器一样干净 谢谢大家! -吉姆 下面是几乎整个脚本(在$webSe

我有一个powershell脚本,它在多台服务器上的持久连接上创建一些DotNetZip ZIP文件,然后使用Start BitsTransfer将ZIP文件从远程服务器移动到本地服务器

我在两台不同的服务器上运行几乎相同的脚本,在其中一台服务器上,它几乎不会在屏幕上打印任何内容。另一方面,它输出很多看起来像二进制的东西。这是因为在输出所有这些信息的服务器上打开了某种调试设置吗?有没有办法把它关掉?我更希望它像第一个运行脚本的服务器一样干净

谢谢大家!

-吉姆

下面是几乎整个脚本(在$webServers数组中没有my ServerName):

Import-Module BitsTransfer

        foreach($i in $webServers) {

                if (!(Test-Path -path \\$i\d$\newDeploy)) {
                    New-Item \\$i\d$\newDeploy -type directory
                }
                if (!(Test-Path -path \\$i\d$\newDeploy\backup)) {
                    New-Item \\$i\d$\newDeploy\backup -type directory
                }   
                if(!(Test-Path \\$i\d$\newDeploy\Ionic.Zip.dll)) {
                    Start-BitsTransfer -Source \\$webDeployServer\d$\newDeploy\Ionic.Zip.dll -Destination \\$i\d$\newDeploy
                }

        }

        foreach($i in $webServers) {

            $sessionForI = New-PSSession -computername $i
            Invoke-Command -Session $sessionForI -ScriptBlock {

                if ((Test-Path D:\\newDeploy\\backup\\OffM.zip)) {
                    Remove-Item D:\\newDeploy\\backup\\OffM.zip
                }
                [System.Reflection.Assembly]::LoadFrom("D:\\newDeploy\\Ionic.Zip.dll");
                $zipfile = new-object Ionic.Zip.ZipFile
                $e = $zipfile.AddSelectedFiles("name != '*.e2e'","D:\inetpub\wwwroot\OffM", "OffM",1)
                $e = $zipfile.AddSelectedFiles("name != '*.e2e'","D:\inetpub\wwwroot\PaEnterprise", "PaEnterprise",1)
                $zipfile.Save("D:\\newDeploy\\backup\\OffM.zip")
                $zipfile.Dispose()

                if ((Test-Path D:\\newDeploy\\backup\\Others.zip)) {
                    Remove-Item D:\\newDeploy\\backup\\Others.zip
                }
                [System.Reflection.Assembly]::LoadFrom("D:\\newDeploy\\Ionic.Zip.dll");
                $zipfile = new-object Ionic.Zip.ZipFile
                $e = $zipfile.AddSelectedFiles("name != '*.e2e'","D:\inetpub\wwwroot\MstrInt-PO", "MstrInt-PO",1)
                $e = $zipfile.AddSelectedFiles("name != '*.e2e'","D:\inetpub\wwwroot\Maint", "Maint",1)
                $zipfile.Save("D:\\newDeploy\\backup\\Others.zip")
                $zipfile.Dispose()

                if ((Test-Path D:\\newDeploy\\backup\\PPO.zip)) {
                    Remove-Item D:\\newDeploy\\backup\\PPO.zip
                }
                [System.Reflection.Assembly]::LoadFrom("D:\\newDeploy\\Ionic.Zip.dll");
                $zipfile = new-object Ionic.Zip.ZipFile
                $e = $zipfile.AddSelectedFiles("name != '*.e2e'","D:\inetpub\wwwroot\HC", "HC",1)
                $e = $zipfile.AddSelectedFiles("name != '*.e2e'","D:\inetpub\wwwroot\PaOn", "PaOn",1)
                if($i -eq 'PYRALNWSP02V') {
                    $e = $zipfile.AddSelectedFiles("name != '*.e2e'","D:\inetpub\wwwroot\HearPl", "HearPl",1)
                } else {
                    $e = $zipfile.AddSelectedFiles("name != '*.e2e'","D:\inetpub\wwwroot\HearPaPlu", "HearPaPlu",1)
                }
                $zipfile.Save("D:\\newDeploy\\backup\\PPO.zip")
                $zipfile.Dispose()

                if ((Test-Path D:\\newDeploy\\backup\\TiMan.zip)) {
                    Remove-Item D:\\newDeploy\\backup\\TiMan.zip
                }
                [System.Reflection.Assembly]::LoadFrom("D:\\newDeploy\\Ionic.Zip.dll");
                $zipfile = new-object Ionic.Zip.ZipFile
                $e = $zipfile.AddSelectedFiles("name != '*.e2e'","D:\inetpub\wwwroot\TiManView", "TiManView",1)
                $e = $zipfile.AddSelectedFiles("name != '*.e2e'","D:\inetpub\wwwroot\TiManOnline", "TiManOnline",1)
                $e = $zipfile.AddSelectedFiles("name != '*.e2e'","D:\inetpub\wwwroot\TiManPOne", "TiManPOne",1)
                $zipfile.Save("D:\\newDeploy\\backup\\TiMan.zip")
                $zipfile.Dispose()

            }
            remove-PSSession -session $sessionForI

        }
        foreach($i in $webServers) {
            if(!(Test-Path -path D:\newDeploy\backup\$i)) {
                New-Item D:\newDeploy\backup\$i -type directory
            }
            Start-BitsTransfer -Source \\$i\d$\newDeploy\backup\OffM.zip -Destination D:\newDeploy\backup\$i
            Start-BitsTransfer -Source \\$i\d$\newDeploy\backup\Others.zip -Destination D:\newDeploy\backup\$i
            Start-BitsTransfer -Source \\$i\d$\newDeploy\backup\PPO.zip -Destination D:\newDeploy\backup\$i
            Start-BitsTransfer -Source \\$i\d$\newDeploy\backup\TiMan.zip -Destination D:\newDeploy\backup\$i
        }
        foreach($i in $webServers) {
            Remove-Item \\$i\d$\newDeploy\backup\OffM.zip
            Remove-Item \\$i\d$\newDeploy\backup\Others.zip
            Remove-Item \\$i\d$\newDeploy\backup\PPO.zip
            Remove-Item \\$i\d$\newDeploy\backup\TiMan.zip
        }
        [System.Reflection.Assembly]::LoadFrom("D:\\newDeploy\\Ionic.Zip.dll");
        $directoryToZip = "D:\newDeploy\backup"
        $date = get-date -format "M-d-yyyy"
        $zipfile = new-object Ionic.Zip.ZipFile
        $e = $zipfile.AddSelectedFiles("name != '*.e2e'",$directoryToZip, "",1)
        $zipfile.Save("D:\\newDeploy\\backup\\"+$date+"_WEBbackup.zip")
        $zipfile.Dispose()

有这样的调试消息设置-
$DebugPreference

它的默认值是
SilentlyContinue
。请查看它是否设置为其他值

如果您还显示了输出的差异,这将有所帮助。它也可以是由
$verboseproference

看看这里,了解您对varibales的偏好-

更新:


[System.Reflection.Assembly]之前添加一个
[void]
:LoadFrom
语句,这样输出就不会污染脚本输出。

有这样的调试消息设置-
$DebugPreference

它的默认值是
SilentlyContinue
。请查看它是否设置为其他值

如果您还显示了输出的差异,这将有所帮助。它也可以是由
$verboseproference

看看这里,了解您对varibales的偏好-

更新:


[System.Reflection.Assembly]之前添加一个
[void]
::LoadFrom
语句,这样输出就不会污染脚本输出。

发布一些代码可能会有帮助(而且肯定不会有伤害)。好了!谢谢你的提示:)那么脚本的哪一部分会给你不需要的输出?这可能会有帮助(当然不会伤害)发布一些代码。好了!谢谢你的提示:)那么脚本的哪一部分给了你不想要的输出呢?我运行了[code]dir变量:*preference[/code],这表明两个服务器在所有值上都匹配,所以我想这不是问题所在。事实证明,将DLL推送到远程服务器是一个问题,在第一次这样做之后,输出不会再次显示。。。我想没关系,但我还是很好奇为什么会这样。另外,它在另一台服务器上也做了同样的事情-一台服务器恰好从远程服务器上已有的DLL开始..是[void]部分为我做的。如果这有助于用户1161625,而你又回到了原来的状态(希望你能),请将其标记为已接受的答案。但我不明白空白是怎么做的。。可以说,它只是“静音”输出吗?抱歉,只是看到了这个。它被接受了。是的,它只是使输出静音。:)谢谢。我运行了[code]dir变量:*preference[/code],这表明两个服务器在所有值上都匹配,所以我想这不是问题所在。事实证明,将DLL推送到远程服务器是一个问题,在第一次这样做之后,输出不会再次显示。。。我想没关系,但我还是很好奇为什么会这样。另外,它在另一台服务器上也做了同样的事情-一台服务器恰好从远程服务器上已有的DLL开始..是[void]部分为我做的。如果这有助于用户1161625,而你又回到了原来的状态(希望你能),请将其标记为已接受的答案。但我不明白空白是怎么做的。。可以说,它只是“静音”输出吗?抱歉,只是看到了这个。它被接受了。是的,它只是使输出静音。:)非常感谢。