繁体   English   中英

mklink到NAS目录的脚本建议,复制系统还原文件,然后在Win 7 Pro 64上复制rmdir(语言和语法)

[英]Advice on script to mklink to NAS directory, copy system restore files over, and then rmdir on Win 7 Pro 64 (language and syntax)

我在一个小型企业环境(Win 7 Pro 64工作组,单个LAN)中,我希望能够运行一个脚本,该脚本可以将本地计算机上的链接链接到我们NAS上的文件夹,复制系统还原文件,然后删除链接。 目的是将系统还原隔离为附加的保护层,理想情况下,此过程包括从任何用户计算机切断与NAS的直接链接,除非复制这些文件。

我已经允许访问我帐户的“系统卷信息”文件夹。

搜索发现了大量有关mklink脚本的帖子,但我找不到我想要的可靠示例,我所见过的语言从bash到Powershell。

我在VBA中编写了很多脚本,但是在Powershell中却没有,甚至在VBScript中没有编写太多脚本,哪种语言最适合呢? 如果要使用Powershell,我将不得不在Win 7机器上安装它,这不是什么大问题。 对于我来说,VBScript或批处理将是最容易编写和分发的。 我的机器上也安装了perl,但必须将其安装在其他几台机器上。

  • 我的第一个问题是:在这种情况下哪种语言最好? 我希望使用VBScript或批处理(如果可能)或Powershell。 如有必要,请使用perl。

  • 第二个问题:有人可以给我一个示例脚本吗? 典型的mklink命令如下所示(据我了解):

    mklink / d:name::target:

我应该使用/ j标志而不是/ d吗? 我应该挂载驱动器吗(我不清楚如何使用Windows CLI或Powershell进行安装)?

另外,如果这首先无法解决问题,请随时告诉我。 谢谢。

因此,您可以使用PowerShell轻松完成此操作。 您不会使用MKLink,而是会创建到NAS位置的临时映射(自从我使用真正的NAS以来已有几年,我希望我没记错,并且实际上它们确实具有UNC路径,例如\\ NAS01 \\分享)。 因此,您将使用New-PSDrive,而不会使用-Persistent参数,因此当脚本结束且PowerShell会话退出时,连接将终止。 然后,您可以根据需要复制文件。 实际上,您可以将其设置为检查两个位置的所有文件,并且仅上载在本地更新的文件。 因此,假设您为共享上创建的每台要备份的计算机都有一个文件夹,则可以执行以下操作:

New-PSDrive -Name NAS -Root \\NAS01\Share\$env:COMPUTERNAME -PSProvider FileSystem
$Source = 'C:\System Volume Information'
Compare-Object (Get-ChildItem $Source -Recurse) (Get-ChildItem 'NAS' -Recurse) -PassThru |
    Where{$_.SideIndicator -eq "<="} | ForEach{Copy-Item $_.FullName -Destination ($_.FullName -Replace [regex]::escape($source), 'NAS:')}

从本质上讲,这将创建一个名为NAS的驱动器,该驱动器已映射到所描述的网络路径,然后为这两个位置以及源中不在目标中的项目提取目录列表,它将其复制到目标中。 一旦脚本运行完毕,PowerShell应该退出并删除指向NAS的链接。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM