PowerShell 覚書(仮)
PowerShell について 使いそうなコマンドの 覚書
PowerShell 調べた時の覚書です。
PowerShell の例は 本家マイクロソフトのスクリプトセンター 動画もありわかりやすくサンプルも沢山あります。
カレントディレクトリ配下の txt という拡張子のつくファイルを探す
Get-ChildItem -r | Where-Object{$_.Name -like "*.txt"}
カレントディレクトリ配下で 1MB以上のサイズのファイルを探す
Get-ChildItem -r | Where-Object{$_.Length -ge 1MB}
コンピュータ上にあるローカルドライブをすべて列挙します
Get-WmiObject Win32_LogicalDisk DeviceID : C: DriveType : 3 ProviderName : FreeSpace : 283426201600 Size : 500105760768 VolumeName : PCVOL DeviceID : D: DriveType : 5 ProviderName : FreeSpace : Size : VolumeName : DeviceID : E: DriveType : 5 ProviderName : FreeSpace : 0 Size : 350183424 VolumeName : DB
Drive タイプが3のものだけ表示
Get-WmiObject -query "SELECT * FROM Win32_LogicalDisk WHERE DriveType=3"
IP が有効なものを抽出
Get-WmiObject Win32_NetworkAdapterConfiguration | Where {$_.IPEnabled -eq "ture"} DHCPEnabled : True IPAddress : {xx.xx.xx.xx, aaaa::aaaa:aaaa:aaaa:aaaa} DefaultIPGateway : {xx.xx.xx.xx} DNSDomain : hogehoge.local ServiceName : e1cexpress Description : Intel(R) 82579LM Gigabit Network Connection Index : 7 DHCPEnabled : False IPAddress : {169.254.100.17, fe80::d1ae:8050:d356:6411} DefaultIPGateway : DNSDomain : ServiceName : VMnetAdapter Description : VMware Virtual Ethernet Adapter for VMnet1 Index : 28 DHCPEnabled : False IPAddress : {192.168.221.1, fe80::31f2:f18a:853d:29af} DefaultIPGateway : DNSDomain : ServiceName : VMnetAdapter Description : VMware Virtual Ethernet Adapter for VMnet8 Index : 29
利用可能なドライブを一覧表示させる
Get-PSDrive
定義済みの環境変数を一覧表示する
Set-Location Env: PS Env:\> Get-ChildItem ...
定義済みの環境変数を hogehoge.txt にリダイレクト
Get-ChildItem Env: > hogehoge.txt
PowerShell で SQLServerに接続
sqlps をファイル名を指定して実行する
invoke-sqlcmd -query "select * from [table_name] where [条件]"
のようなコマンドが実行できる。
PowerShell network drive 割り当て
$net = new-object -ComObject WScript.Network $net.MapNetworkDrive("u:", "\\server\share", $false, "domain\user", "password")
切断は
$net.RemoveNetworkDrive("u:")
PowerShell 条件
$myid1 = $(Get-Process | Where-Object{$_.Name -like "notepad*"}).id $(Get-WmiObject win32_process -filter ProcessID=$myid1).ParentProcessId 4192 Get-WmiObject win32_process | Where-Object{$_.ProcessID -eq 2504}
PowerShell シリアライズ
$(Get-WmiObject win32_process | Where-Object{$_.Name -like "chrome*"}) | Export-Clixml $HOME\testxml.xml
逆は
Import-Clixml $HOME\testxml.xml
Sort
Get-Process |Sort Id
PowerShell ファイルの中身を取得
Get-Content $home\filename.txt