利用powershell指令碼Windows hosts記錄替換IP

shawnloong發表於2017-11-30

點選(此處)摺疊或開啟

  1. #host 檔案更換IP對映,需要手工定義主機IP
  2. $db_host1 = "192.168.1.1"
  3. $db_host2 = "192.168.1.2"
  4. $host_file = "C:\Windows\System32\drivers\etc\hosts"
  5. $db_name = "db.test.com"
  6. $v_db_name = Select-String -Path $host_file -Pattern $db_name
  7. $v_db = $v_db_name -split "\s+"
  8. $v_db_ip = $v_db -split ":"
  9. $v_db_ip_now = $v_db_ip[3]
  10. if ( $v_db_ip_now -like $db_host1){
  11. $sw_dbhost = $db_host2
  12. }
  13. else {
  14. $sw_dbhost = $db_host1
  15. }
  16. #切換IP函式
  17. function f_switch_db{
  18. write-host "切換前資料庫IP為$v_db_ip_now"
  19. (Get-Content $host_file) -replace $v_db_ip_now,$sw_dbhost | Set-Content $host_file
  20. write-host "切換後資料庫IP為$sw_dbhost"
  21. }
  22. $title = "切換資料庫IP"
  23. $message = "你希望切換資料庫IP嗎?"
  24. $yes = New-Object System.Management.Automation.Host.ChoiceDescription "&Yes", `
  25. "準備切換IP為$sw_dbhost"
  26. $no = New-Object System.Management.Automation.Host.ChoiceDescription "&No", `
  27. "不切換IP."
  28. $options = [System.Management.Automation.Host.ChoiceDescription[]]($yes, $no)
  29. $result = $host.ui.PromptForChoice($title, $message, $options, 0)
  30. switch ($result)
  31. {
  32. 0 {f_switch_db}
  33. 1 {"You selected No."}
  34. }

  35. 以下為執行結果:


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24486203/viewspace-2148078/,如需轉載,請註明出處,否則將追究法律責任。

相關文章