主要思想是将新文件从服务器复制到客户端,并仅在文件存在时将日志从客户端复制到服务器 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兼容的
答案 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