簡體   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