2

私はpowershellに非常に慣れていないので、誰かが私を正しい方向に向けることができるかどうか疑問に思っていました.

私は、次のことに役立つスクリプトを作成しようとしていました。

  1. リモート マシンにプッシュする必要があるファイルがあります。
  2. ファイルが存在するかどうかを確認するために確認したいリモート コンピューター名のリストがあります。
  3. ファイルが存在し、サイズと日付が同じである場合は、何もしません。
  4. ファイルが存在しない場合、または日付/サイズが異なる場合は、ファイルをコピーします。
  5. また、「PC1 - ファイルが見つかりません。コピー中」または「PC2 - 正確なファイルが見つかりましたが、何もコピーされていません」などのステータスを示すために、ある種のログ/テキスト ファイルに書き込みたいと思うかもしれません。
4

2 に答える 2

1

あなたのロジックに従うpowershellスクリプトがあります。宛先は UNC パスにすることができます。

$source =  "C:\Tmp\Test.txt"
$destination = "C:\Tmp\Destination\Test.txt"

$TestPath = Test-Path $destination
IF (!$TestPath)
{Copy-Item $source $destination -Verbose
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}
ELSE
{"PC2 - exact file found, nothing copied"}
}
于 2013-10-02T18:05:01.603 に答える
0

Robocopy の使用を検討しましたか? 管理者であれば、ローカル マシンにコピーできます。

\pcname\c$\path\

必要に応じて、差分コピーとミラーリングを行うことができます。

于 2013-10-02T15:47:12.237 に答える