ドラクエ10ブログの予定 -6ページ目

ドラクエ10ブログの予定

ドラクエ10ブログの予定

●コマンドレットとコマンド

# Get-ChildItemコマンドレットを()で囲い、オブジェクトを返し、そのオブジェクトに対して、GetTypeコマンドを実行している

PS C:\Users\foo\Desktop\PowerShellCookbook_Samples> (Get-ChildItem).GetType()

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     Object[]                                 System.Array

 

●オブジェクトのメンバーメソッドならびにプロパティ

# Get-ChildItemコマンドレットによってオブジェクトを出力し、それをパイプしてGet-Memberコマンドレットの入力としている。オブジェクトのメンバーメソッドならびにプロパティが分かる

PS C:\Users\foo\Desktop\PowerShellCookbook_Samples> Get-ChildItem | Get-Member


   TypeName: System.IO.FileInfo

Name                      MemberType     Definition
----                      ----------     ----------

LinkType                  CodeProperty   System.String LinkType{get=GetLinkType;}
Mode                      CodeProperty   System.String Mode{get=Mode;}
Target                    CodeProperty   System.Collections.Generic.IEnumerable`1[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]] Target{get=GetTarget;}
AppendText                Method         System.IO.StreamWriter AppendText()
CopyTo                    Method         System.IO.FileInfo CopyTo(string destFileName), System.IO.FileInfo CopyTo(string destFileName, bool overwrite)
Create                    Method         System.IO.FileStream Create()


 :省略

 

●$() # サブ式
$(some_command),  `some_command` # Linuxでいうところのコマンド置換

 

●スクリプトの実行
$Ret = Invoke-Command -ScriptBlock { C:\Users\foo\Downloads\log\test.ps1 }
$Ret
C:\Users\foo\Downloads\log\test.ps1 : このシステムではスクリプトの実行が無効になっているため、ファイル C:\Users\foo\Downloads\log\test.ps1 を読み込むことができません。詳細については、「about_Ex
ecution_Policies」(http://go.microsoft.com/fwlink/?LinkID=135170) を参照してください。
発生場所 行:3 文字:38
+ $Ret = Invoke-Command -ScriptBlock { C:\Users\foo\Downloads\log\test.ps1 }
+                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : セキュリティ エラー: (: ) []、PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess


PS C:\Users\foo\Downloads\log> Get-ExecutionPolicy
Restricted

 

# 実行できるように設定

PS C:\Users\foo\Downloads\log> Set-ExecutionPolicy RemoteSigned

PS C:\Users\foo\Downloads\log> Get-ExecutionPolicy
RemoteSigned

 

●Return値を取りたい
# 呼び出し元コード:
$Ret = Invoke-Command -ScriptBlock {  C:\Users\foo\Downloads\log\test.ps1 }
$Ret
$LASTEXITCODE

 

# test.ps1の中身(1回目)
Write-Host "AAA"
exit 99

=>
AAA # write-hostコマンドレットで出力されるので注意
99 # exitの引数が、$LASTEXITCODE変数の値になる

 

# test.ps1の中身(2回目)
#Write-Host "AAA" # コメントアウト
get-date
$?
exit 99

=>
2016年12月17日 22:46:07
True # get-dateコマンドレットが成功しているので「真」
99


#test.ps1の中身 (3回目)
#Write-Host "AAA"
get-dates # 故意に、存在しないコマンドレットを記入
$?
exit 99

=>
get-dates : 用語 'get-dates' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してください。
発生場所 C:\Users\foo\Downloads\log\test.ps1:2 文字:1
+ get-dates
+ ~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (get-dates:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

False # 実行が失敗しているので「偽」となる
99

 

参考:
http://syghira.hateblo.jp/entry/2012/04/09/005029
http://win.just4fun.biz/PowerShell/PowerShell%E3%81%A7exit%E3%81%AE%E5%80%A4%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E3%83%BB$lastexitcode.html#be6c6e79

 

●VMWarePlayerダウンロード先
https://my.vmware.com/jp/web/vmware/free#desktop_end_user_computing/vmware_workstation_player/12_0
→VMware Workstation 12.5.2 Player for Windows 64-bit Operating Systems.


●centos6.8 isoファイルダウンロード先
http://ftp.riken.jp/Linux/centos/6/isos/x86_64/
→CentOS-6.8-x86_64-bin-DVD1.iso
→CentOS-6.8-x86_64-bin-DVD2.iso


●サクラエディタ
http://sakura-editor.sourceforge.net/
→インストーラパッケージダウンロード


●Tera Term
http://forest.watch.impress.co.jp/library/software/utf8teraterm/
→Tera Term v4.92(16/08/31)

→インストール
標準インストール
.ttlファイルをttpmacro.exeに関連付けるにチェック

 

→自動ログイン設定
参考:http://www.j-oosk.com/teraterm/macro/180/

 

→自動ログ取得設定
参考:http://www.j-oosk.com/teraterm/logging/114/

 

 

●VMWarePlayerにCentOS7インストール

ネットワークアダプタ:

既定のNATのまま

 

DATE & TIME:
Asia/Tokyo

 

Keyboad:
1 Japanese
2 English(US)

 

LANGUAGE SUPPORT:
English(US)

Japanese

 

SOFTWARE SELECTION:
Infrastructure Server

 

Network:

ON

 

●ネットワークセグメント追加するには ※上記インストール時にも可能
# ネットワークアダプタ追加→ホストオンリー

   既定のNATだと既存のネットワークに別のIPアドレスが割り振られる

[customer@server002 ~]$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:db:cf:ba brd ff:ff:ff:ff:ff:ff
    inet 192.168.59.135/24 brd 192.168.59.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::c480:4469:2ad8:358f/64 scope link
       valid_lft forever preferred_lft forever
4: ens38: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:db:cf:ce brd ff:ff:ff:ff:ff:ff
    inet 192.168.232.129/24 brd 192.168.232.255 scope global dynamic ens38
       valid_lft 1574sec preferred_lft 1574sec
    inet6 fe80::723f:17c4:9e44:1a9f/64 scope link
       valid_lft forever preferred_lft forever

 

[customer@server002 ~]$ nmcli device
DEVICE  TYPE      STATE      CONNECTION
ens33   ethernet  connected  ens33
ens38   ethernet  connected  Wired connection 1
lo      loopback  unmanaged  --

 

# Windows ipconfig
イーサネット アダプター VMware Network Adapter VMnet1:

   接続固有の DNS サフィックス . . . . .:
   リンクローカル IPv6 アドレス. . . . .: fe80::71dc:ef0a:7ac:a314%12
   IPv4 アドレス . . . . . . . . . . . .: 192.168.232.1
   サブネット マスク . . . . . . . . . .: 255.255.255.0
   デフォルト ゲートウェイ . . . . . . .:

イーサネット アダプター VMware Network Adapter VMnet8:

   接続固有の DNS サフィックス . . . . .:
   リンクローカル IPv6 アドレス. . . . .: fe80::bdba:a410:e246:9879%19
   IPv4 アドレス . . . . . . . . . . . .: 192.168.59.1
   サブネット マスク . . . . . . . . . .: 255.255.255.0
   
   
   デフォルト ゲートウェイ . . . . . . .:

# バッチファイル実行時にコマンド自体を出力させない

@echo off


# コメントの書き方

REM コメント


# 空行の書き方。echo と ドットの間は詰める

echo.


# if~elseとコマンドライン引数

if %1 == "" (

  ...

) else (

  ...

)


# 対話

set /p c=


参考:http://piyopiyocs.blog115.fc2.com/blog-entry-732.html


# 処理を一時中断させる。これを適度に入れないと、画面から実行ログが追えない

pause