PowerShell 脚本:压缩昨天的日志并将其移动到网络路径



我是PowerShell的新手,我需要创建一个脚本(也将通过调度程序来使用),该脚本将:

- 将网络路径作为驱动器(我认为我都使用以下代码做到这一点)

#Machine hostname - needed for archive creation and identification
$hname = hostname
#Map network drive
$net = $(New-Object -Com WScript.Network)
$net.MapNetworkDrive("X:", "\your network shareyour folder",  
$false, "domainuser", "password") 
#Network folder where archive will be moved and stored
$newdir = "X:your folder$hname"

- 创建一个带有昨天日志的邮政编码,该文件的格式名称:

$today = (Get-Date).AddDays(-1).ToString('yyyyMMdd')
something_$today_something.w3c

- 在临时本地文件夹中的邮政编码

- 将邮政编码移至配置的网络路径

- 删除原始日志文件

任何帮助完成和优化此脚本的帮助将不胜感激。

谢谢。

,由于您已经使用了dastardly com对象,因此可以尝试以下来进行zipping:

$zipFileName = "c:templogs.zip"
$shell = New-Object -Com Shell.Application
New-Item $zipFileName -Type f
$zipItem = $shell.NameSpace($zipFileName)
$zipItem.CopyHere( "PathToYourLogFile",16)

因此,如果您有一个装满日志文件的文件夹,则可以运行此

$pathToYourLogsFolder = "c:somepath"
ls $pathToYourLogsFolder | % { $zipItem.CopyHere( $_.FullName,16) }

,然后按照您的要求处理zip和剩余文件。您可以在MSDN上阅读有关 COPYHERE 函数的更多信息,这将在Win2012

上不起作用

http://msdn.microsoft.com/en-us/library/windows/desktop/bb787866(v = vs.85).aspx

最新更新