GGG

プログラミング言語やソフトウェア開発について思ったことを書いてます

Powershell 調べたことまとめ

数年前にPowershellを勉強し始めのころに調べたものが消されずにPC内に眠っていたw

まとめと言ってもURLが雑に並んでいるだけなので

そのうち整理したいと思う・・・。そのうち

 

PowerShell プレゼン資料

https://speakerdeck.com/player/061a73d04e4f01318884263fb8183d01#

>PowerShell Scripting Weblog

http://winscript.jp/powershell/202

> PowerShell らしい関数の書き方

http://winscript.jp/powershell/253

 

ゼロから始めるPowerShell -ディレクトリ編

http://news.mynavi.jp/articles/2009/09/23/powershell/

カスタムオブジェクト(PsObject)を使う(New-Object)

http://mtgpowershell.blogspot.jp/2010/12/psobjectnew-object.html

Add-Memberでプロパティを増やす

http://www.oborodukiyo.info/PowerShell/v20/PS-AddMember.aspx

 

牟田口大介

ファイル/レジストリの操作(文字列検索なども解説)

http://www.atmarkit.co.jp/ait/articles/1005/19/news108_2.html



 

 

Don Jones

http://www.concentratedtech.com/

>Windows PowerShell: スクリプト作成の短期集中講座

http://technet.microsoft.com/ja-jp/magazine/hh551144.aspx

>Windows PowerShell: コマンドを再利用可能なツールにする

http://technet.microsoft.com/ja-jp/magazine/gg537351.aspx

>Windows PowerShell: スクリプトではなく、コマンドとして考える

http://technet.microsoft.com/ja-jp/magazine/gg293110.aspx

>Windows PowerShell: より良い関数を作成する

http://technet.microsoft.com/ja-jp/magazine/hh360993.aspx

>続すてきなパイプライン手法

http://technet.microsoft.com/ja-jp/magazine/ff394367.aspx

>Windows PowerShell: 出力に関するオプション

http://technet.microsoft.com/ja-jp/magazine/gg213852.aspx

>オブジェクトをカスタマイズするさまざまな方法http://technet.microsoft.com/ja-jp/magazine/hh750381.aspx

 

参照サイト

ESCAPE :  http://technet.microsoft.com/library/dd347662.aspx

http://technet.microsoft.com/library/dd347600.aspx

 

 

 

>HIRO’s .NET

http://hiros-dot.net/PowerShell/index.htm

 

About_Functions

http://technet.microsoft.com/ja-JP/library/hh847829.aspx

About_CommonParameters

http://technet.microsoft.com/ja-JP/library/dd315352.aspx




マイナビニュース

http://news.mynavi.jp/tag/0002755/

 

■指定したRSSフィードをダウンロードし、最新の8エントリーのタイトルを表示する。

http://wiki.news.mynavi.jp/entry/Windows_PowerShell?wiki_ch=pc&wiki_cat=software

PS> $rssUrl = "http://blogs.msdn.com/powershell/rss.aspx"
PS> $blog = [xml](New-Object System.Net.WebClient).DownloadString($rssUrl)
PS> $blog.rss.channel.item | Select title -first 8





 

PS v2.0 では、初期値がMicroSoftが開発したスクリプト以外は実行できない設定になっている。

下記の設定で実行可能に変更可能である。

 

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine

 

>> Powershell  バージョン情報の調べ方

$PSVersionTable

 

・参考サイト

http://kawasaki-shingo-ps.blog.so-net.ne.jp/2009-03-09

 

・未定義の変数を参照するとエラーが出る設定

Set-PSDebug -strict

 

・プロファイルについて

http://msdn.microsoft.com/en-us/library/bb613488%28VS.85,loband%29.aspx

 

>> example #1

カレントフォルダ以下(全サブフォルダ含む)全ての BAKファイルを抽出、削除

Get-ChildItem * -Recurse -Include *.BAK | rm -Verbose

Get-ChildItem * -Recurse -Include *.BAK | Remove-Item  -Verbose

 

>> example #2

環境変数PATH を ; -> 改行コードに変換して出力する

 → PATHを見やすい形で出力する

 

$env:PATH -replace ";" , "`r`n"

 

>> example #3

PowerShell でOSの基本情報を取得する

http://ebi.dyndns.biz/windowsadmin/2012/01/15/powershell%E3%81%A7os%E3%81%AE%E5%9F%BA%E6%9C%AC%E6%83%85%E5%A0%B1%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B/

 

>> example #4

メール送信

http://wavetalker.blog134.fc2.com/blog-entry-70.html



>>example #5

変数に代入したオブジェクトのプロパティ “name” を取得する

$obj.GetType().GetProperties() | Select-Object -Property "Name"

 

>> example #6

Get-Copmmand からselect  が含まれるコマンドレット名を取得する (大文字小文字識別しない)

Get-Command | Where-Object { $_.Name -match "select" }

 

>> exmaple #7

ファイル内の文字列を置換する

http://hiros-dot.net/PowerShell/file/file20.htm

$(Get-Content ".\sample.txt") -replace "FGHIJ","XXXX" > sample_new.txt

 

http://www.atmarkit.co.jp/fwin2k/win2ktips/1039psrepstr/psrepstr.html

 

>> example #8

フォルダ作成

http://www.atmarkit.co.jp/fwin2k/win2ktips/1069psffolder/psffolder.html

 

>> exmaple #9

ヘルプトピックの書き方

http://memo-space.blogspot.jp/2010/01/powershell.html

Get-Help about_Comment_Based_Help

 

>> example #10

関数の作り方

http://technet.microsoft.com/ja-jp/magazine/hh360993.aspx

 

>> exmaple #11

IPアドレスの取得、設定の仕方

 

>> example #12

%の意味:

http://www.itlab51.com/?p=5547

ForEach-Object コマンドレットのエイリアス

Get-Command | ForEach-Object {$_.Name}
Get-Command | % {$_.Name}

 

>>exmaple 13

Select-Object コマンドレットの使用

http://technet.microsoft.com/ja-jp/library/ee176955.aspx

Where-Object コマンドレットの使用

http://technet.microsoft.com/ja-jp/library/ee177028.aspx

Foreach-Objectコマンドレットの使用

http://technet.microsoft.com/ja-jp/library/ee176828.aspx




 

  • パイプの使用例

http://winscript.jp/powershell/253

 

PS C:\> Get-Process  | Where-Object { $_.Handles -gt 500 } | ForEach-Object { $_.Path }

C:\Documents and Settings\xxxxx\Local Settings\Application Data\Google\Chrome\Application\chrome.exe

\??\C:\WINDOWS\system32\csrss.exe

C:\WINDOWS\Explorer.EXE

C:\WINDOWS\system32\lsass.exe

C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell_ise.exe

C:\Program Files\Skype\Phone\Skype.exe

C:\WINDOWS\System32\svchost.exe

C:\Program Files\Trend Micro\OfficeScan Client\tmlisten.exe

\??\C:\WINDOWS\system32\winlogon.exe

PS C:\>



>> example

ファイル操作:ReadOnly を外す

PS> Set-ItemProperty -Path ファイルパス -name IsReadOnl

y -      value $false