powershell(その4)
- メソッドやプロパティなどの調べ方
Get-Member を使うとよさげ
-
- 使用例
Get-Host
PS C:\> Get-Host Name : ConsoleHost Version : 5.0.10514.6 (略) CurrentCulture : ja-JP CurrentUICulture : ja-JP PrivateData : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy DebuggerEnabled : True IsRunspacePushed : False Runspace : System.Management.Automation.Runspaces.LocalRunspace
Get-Hostってどんなメソッドやプロパティが使えるの?
PS C:\> Get-Host | Get-Member TypeName: System.Management.Automation.Internal.Host.InternalHost Name MemberType Definition ---- ---------- ---------- EnterNestedPrompt Method void EnterNestedPrompt() Equals Method bool Equals(System.Object obj) ExitNestedPrompt Method void ExitNestedPrompt() GetHashCode Method int GetHashCode() GetType Method type GetType() NotifyBeginApplication Method void NotifyBeginApplication() NotifyEndApplication Method void NotifyEndApplication() PopRunspace Method void PopRunspace(), void IHostSupportsInte... PushRunspace Method void PushRunspace(runspace runspace), void... SetShouldExit Method void SetShouldExit(int exitCode) ToString Method string ToString() CurrentCulture Property cultureinfo CurrentCulture {get;} CurrentUICulture Property cultureinfo CurrentUICulture {get;} DebuggerEnabled Property bool DebuggerEnabled {get;set;} InstanceId Property guid InstanceId {get;} IsRunspacePushed Property bool IsRunspacePushed {get;} Name Property string Name {get;} PrivateData Property psobject PrivateData {get;} Runspace Property runspace Runspace {get;} UI Property System.Management.Automation.Host.PSHostUs... Version Property version Version {get;}
見つけたメソッド(Method)やプロパティ(Property)を使ってみる
PS C:\> (Get-Host).Version Major Minor Build Revision ----- ----- ----- -------- 5 0 10514 6
PS C:\> (Get-Host).Version.Major 5
PS C:\> (Get-Host).ToString() System.Management.Automation.Internal.Host.InternalHost
vpsでLinux再学習
powershell(その3)
powershellでIPアドレス計算(失敗)
PS C:\> $ipaddr = "10.10.10.10" PS C:\> ($ipaddr.GetType()).name -eq [ipaddress] False PS C:\> ($ipaddr.GetType()).name String
だとうまくいかない
powershellでIPアドレス計算(成功)
PS C:\> $ipaddr = [ipaddress]"10.10.10.10" PS C:\> ($ipaddr.GetType()).name -eq [ipaddress] True PS C:\> ($ipaddr.GetType()).name IPAddress
IPアドレスとサブネットマスクからネットワークアドレスを計算
PS C:\> $ipaddr = [ipaddress]"10.10.10.10" PS C:\> $netmask =[ipaddress] "255.255.255.0" PS C:\> ([ipaddress]($ipaddr.Address -band $netmask.Address)).IPAddressToString 10.10.10.0
cidr からネットマスクな形式への変換(失敗)
ネットマスクをネットマスクらしいビット列で扱ってくれてなさそう。。。
PS C:\Users\eiji> $addr = [ipaddress]"255.255.255.255" PS C:\Users\eiji> [convert]::tostring($addr.Address,2) 11111111111111111111111111111111 PS C:\Users\eiji> ([convert]::tostring($addr.Address,2)).length 32
PS C:\Users\eiji> $addr = [ipaddress]"255.255.255.0" PS C:\Users\eiji> [convert]::tostring($addr.Address,2) 111111111111111111111111 PS C:\Users\eiji> ([convert]::tostring($addr.Address,2)).length 24
PS C:\Users\eiji> $addr = [ipaddress]"255.255.0.0" PS C:\Users\eiji> [convert]::tostring($addr.Address,2) 1111111111111111 PS C:\Users\eiji> ([convert]::tostring($addr.Address,2)).length 16
PS C:\Users\eiji> $addr = [ipaddress]"255.0.0.0" PS C:\Users\eiji> [convert]::tostring($addr.Address,2) 11111111 PS C:\Users\eiji> ([convert]::tostring($addr.Address,2)).length 8
PS C:\Users\eiji> $addr = [ipaddress]"255.255.255.128" PS C:\Users\eiji> [convert]::tostring($addr.Address,2) 10000000111111111111111111111111 PS C:\Users\eiji> ([convert]::tostring($addr.Address,2)).length 32
PS C:\Users\eiji> $addr = [ipaddress]"255.255.128.0" PS C:\Users\eiji> [convert]::tostring($addr.Address,2) 100000001111111111111111 PS C:\Users\eiji> ([convert]::tostring($addr.Address,2)).length 24
cidr からネットマスクな形式への変換(成功)
自力ではちょっと挫折。以下を参照。。
PowerShell で IPv4 アドレス計算
PS C:\> $subnet = $null PS C:\> $cidr = 25 PS C:\> $cidr 25 for( $i = 0 ; $i -lt 4 ; $i++ ){ if( $cidr -ge 8 ){ $subnet += "255" $cidr -= 8 } elseif($cidr -le 0){ $subnet += "0" $cidr = 0 } else{ $node = [Math]::Pow(2,8 - $cidr) $subnetinoctet = 256 - $node $subnet += [string]$subnetinoctet $cidr = 0 } if( $i -ne 3 ){ $subnet += "." } } PS C:\> $subnet 255.255.255.128
powershell (その1)
powershellのバージョン確認
- powershellのバージョン確認方法は以下の方法がある
Get-Hostコマンド $PSVersionTableの参照
- "$PSVersionTable"を参照する方法はイロイロと対応が容易(なように感じた。)
PS C:\> $PSVersionTable.psversion Major Minor Build Revision ----- ----- ----- -------- 2 0 -1 -1
PS C:\> $PSVersionTable.psversion.Major 2
powershellバージョンアップ
- powershell5 取得
公式URLからダウンロード
- インストール
- 再起動が必要だった
- ものすごく待ち時間が長かったから寝て放置したら終わってた。
- 結果
PS C:\Users\eiji> $PSVersionTable.psversion Major Minor Build Revision ----- ----- ----- -------- 5 0 10514 6
PS C:\Users\eiji> $PSVersionTable.psversion.Major 5
お勉強(今後1年くらい)
イロイロとお勉強をしないとなぁ、と思いつつ、ダラダラとしているのでやりたいことを列挙
語学(別ブログに記載) -- 英語 --- とりあえずTOEIC受験 -- フランス語 --- フランス語検定受験 -- ロシア語 --- ロシア語検定?
IT(このブログで記載) -- プログラム --- powershell --- javascript -- OS系 --- linux kernel3系/CentOS7系情報取得 --- Windows Server情報取得 -- ネットワーク --- CCNP更新
その他(このブログで記載?) -- 簿記2級&1級 -- 中小企業診断士?