每次复制新文件并向屏幕报告消息

时间:2016-07-18 15:37:30

标签: powershell powershell-v2.0

主要思想是将新文件从服务器复制到客户端,并仅在文件存在时将日志从客户端复制到服务器 1.比客户端版本旧 2.如果客户端没有该文件 通过写出文本框通知用户建议新更新并重新启动

我正在尝试复制配置更新另一个问题是文件夹结构 我是否需要在脚本中拥有完整的文件夹结构,所有这些都将在没有用户交互的情况下完成,如此无声

我已经修改了以下代码

显示消息,仅表示是否需要重新启动

服务器布局粗略服务器>配置文件 -update -config - 其他配置文件夹 - 另一个配置文件夹

客户端布局客户端>程序>日志 -log1 -log2

Ssource =  "\\server\Tmp\Test.cfg"
$destination = "\\anyclient\Tmp\Destination\"

$TestPath = Test-Path $destination
IF (!$TestPath)
{Copy-Item $source $destination -Verbose write-host "restart required"
PC1 - no file found. Copying}
ELSE
{
IF (((Get-ChildItem $source).Length -ne (Get-ChildItem
$destination).Length) -or ((Get-ChildItem $source).LastWriteTime -ne (Get-    ChildItem $destination).LastWriteTime))
{Copy-Item $source $destination -Force -Verbose}
 write-host = "restart required"
ELSE
{"PC2 - exact file found, nothing copied"}
}

任何帮助都非常感谢我唯一的问题是这必须是PowerShell v2兼容的

1 个答案:

答案 0 :(得分:0)

我不确定您是否使用sharepoint和那些东西,但通常会提供web服务,可用于上传和下载文件,如:

$webclient = New-Object System.Net.WebClient
$webclient.UseDefaultCredentials = $true 
$credentials =$webclient.Credentials

(只是为了初始化webclient),这里有以下功能:

$webclient.DownloadFile($source, $destination) 

作为一个报告框,我正在使用消息框方法,朋友告诉我:

function Show-MessageBox {
param(
    [parameter(Mandatory=$true)]
    [string]$Message,
    [Validateset('Error', 'Warning', 'Information')]
    [string]$Type
)

[System.Windows.Forms.MessageBox]::Show($Message, $Type, `
    [System.Windows.Forms.MessageBoxButtons]::OK, [System.Windows.Forms.MessageBoxIcon]::$Type) 
}

上面这个方法可以像这样调用:

Show-MessageBox -Type Information -Message "Error or info code"

类型(信息表示一个小图标,它将显示在消息框中,看起来像一个蓝色的圆圈,其中有一个白色的'其中):D