今天碰到個奇耙的要求,說軟體無法安裝是因為要在獨立網路上安裝。
好…你這樣說我照這樣做。
hyperV的複寫完成,網路全部封掉。
但重點來了,我還有資料夾要複製過去怎麼複製?
實體機還能插usb,但虛擬機阿…..
以前VM能夠直接在實體機上用複製貼上的方式將檔案丟過去,
所幸HyperV也有類似的功能,叫做客體服務。
開啟方式,
虛擬機->設定->整合服務->客體服務(打勾)
實體機->HyperV設定->加強的工作階段模式原則->允許加強工作階段模式(打勾)
重開機後到虛擬機的服務裡面 看 『Hyper-V客體服務介面』 的服務是不是為已啟動。
網管人裡面的那招檔案總管的複製貼上,我一直都沒試成功
(剛剛看到才發現是不是只能丟單檔?)。最好只好用指令的方式將資料夾丟過去。
copy-VMFile -Name "虛擬機 " -SourcePath 來源路徑
-DestinationPath 來源路徑 -FileSource Host
copy-VMFile 指令參考 安逸悠嫻學習筆記
但這只有單檔…整個資料夾檔案那麼多一個一個打真的會起校。
最後發現 GitHubGist 有人丟了一篇 複製整個資料夾的。
小改一下後,收工。
function copy-foldertovirtualmachine {
param(
[parameter (mandatory = $true, valuefrompipeline = $true)]
[string]$VMName,
[string]$Folder = 'E:\M030_service information manager-CPS11'
)
foreach ($File in (Get-ChildItem $Folder -recurse | ? Mode -ne 'd-----'))
{
#$File2 = $File.Replace("E:\","C:\123\")
Copy-VMFile -VM (Get-VM $VMName) -SourcePath $File.fullname -DestinationPath $File.fullname.Replace("E:\","C:\123\") -FileSource Host -CreateFullPath -Force
}
}
copy-foldertovirtualmachine
使用方式,開啟power shell ISE
把指令放上去,後直接執行,會要求你輸入 『虛擬機的名稱』
要複製的資料夾位置 請更改 $Folder 後面的位置
#$File2 = $File.Replace("E:\","C:\123\")
這一段是錯的,所以mark掉,因為$File已經變成路徑的物件,
所以不能取代字串,執行會發生錯誤。
但虛擬機上面沒有E槽怎辦,DestinationPath的後面 指的是 目標的路徑,
加上.fullname會變成字串,
此時就可以用replace 將位置取代。
沒有留言:
張貼留言