2018年04月24日

PowerCLI再び・・・(その1)復習

6、7年前はよく使っていた時期がありましたが、
既に記憶の片隅に残っていない感があり、
まずは、復習から。


@PowerCLI
http://d.hatena.ne.jp/kt_hiro/20121019/1350631006

http://blog.bit-isle.jp/bird/2015/01/436

VMware Docs
https://docs.vmware.com/jp/VMware-vSphere/index.html#com.vmware.wssdk.apiref.doc/vim.vm.GuestOsDescriptor.GuestOsIdentifier.html



Connect-VIServer -User jackbauer -Password password 192.168.100.100

状態確認

VM一覧取得
Get-VM

特定VMの情報取得
Get-VM -Name "VM name" | Select-Object Name,PowerState,NumCpu,MemoryDB


データストアパス取得
Get-Datastore | Select-Object DatastoreBrowserPath


VMホスト一覧取得(物理ブレード一覧取得)
Get-VMHost

インベントリ取得
Get-Inventory


作成
@New-VM -name 'testsv4021' -vmhost (Get-VMHost -Name 192.168.200.200) -Datastore 'datastore' -NumCpu 2 -DiskMB(1024*30) -MemoryMB (1024*2) -DiskStorageFormat 'thin' -GuestID 'winNetStandardGuest'

ANew-VM -Name vm-test -vmhost esx003 -NumCpu 1 -Datastore vsanDatastore -DiskGB 10 -MemoryGB 4 -DiskStorageFormat Thin -GuestID windows
7Server64Guest -Location "Discovered virtual machine" -NetworkName "vCenter network"


メモリ変更(複数変更に使用可能)
Get-VM -name "testsv0421" | foreach {Set-VM -VM $_ -MemoryMB (1024*2)}

CPU変更

ディスク追加


VM停止(複数停止に使用可能)
Get-VM -name "testsv0421" | foreach {Stop-VM -VM $_}


Remove-VM -VM "testsv0421" -Confirm:$false


データストア上のvmxファイルからvCenterのインベントリに登録する

テンプレートから128台の仮想マシンをクローンする(仮想マシン名vm-1〜vm-128)

・仮想ネットワーク・アダプタの接続ポート・グループをまとめて切り替える


取得から1ヶ月以上経過した古いスナップショットを削除する

パフォーマンスデータをCSVに書き出す


・「VMware Tools のインストール」状態(CDマウント)のままになっている仮想マシンを一覧化





◎ソフトウェアデザイン 2018年5月号:円
ソフトウェアデザイン 2018年5月号
ソフトウェアデザイン 2018年5月号


平行して以下も同時に学習中です。
PowerShellではなく、Pythonでいいやん!という話もあるのですが、
実行環境にPythonをインストール、という点があるので、
PowerShellでのスクレイピングを先に確認する必要が・・・・という事情。


PowerShellでスクレイピング 前編 文字列を取得する
http://winscript.jp/powershell/304

PowerShellでスクレイピング 後編 HTMLをパースする
http://winscript.jp/powershell/305

Invoke-WebRequest だけ。

Invoke-WebRequest -Uri "http://www.yahoo.co.jp/"

Invoke-WebRequest -Uri "http://www.yahoo.co.jp/" -OutFile "E:\yahoo.txt"

(Invoke-WebRequest -Uri "http://www.yahoo.co.jp/").Links.Href




Invoke-WebRequest "https://www.google.co.jp/search?q=$([Uri]::EscapeDataString($searchWord))"

Invoke-WebRequest "https://www.google.co.jp/search?q=$([Uri]::EscapeDataString($広瀬すず))"


$client=New-Object System.Net.WebClient
$client.Encoding = [System.Text.Encoding]::UTF8
$content = $client.DownloadString("http://www.yahoo.co.jp/")


PS C:\Users\Jack> history

Id CommandLine
-- -----------

6 $client=New-Object System.Net.WebClient
7 $client.Encoding = [System.Text.Encoding]::UTF8
8 $content = $client.DownloadString("http://www.yahoo.co.jp/")
9 $content


A値の取得
 取得した値を変数に入れる。変数はハッシュか?個別に変数用意しておくか?

Import-Csv E:\24.csv.txt

Import-Csv E:\24.csv.txt -Header "name","Fullname","age"

タブ区切り
Import-Csv E:\24tab.csv.txt -Header "name","Fullname","age" -Delimiter `t



Import-Csv E:\24.csv.txt -Header "name","Fullname","age" | foreach{Write-Output $_.Fullname}





grepコマンドとPowerShellのsls (Select-String)の比較
http://tech.sanwasystem.com/entry/2016/07/05/185717

WindowsのタスクスケジューラーでPowerShellのスクリプトを実行する際には「パス」に注意
http://www.atmarkit.co.jp/ait/articles/1412/03/news125.html




【 Register-ScheduledTask 】コマンドレット――タスクスケジューラで実行する新しいタスクを作成する
http://www.atmarkit.co.jp/ait/articles/1702/01/news029.html



posted by アンドレアス at 07:39| Comment(0) | vi上級 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。