日本語 POWERSHELLについてよくある質問

By | April 8, 2015

translated-japanese-v3


beta-v2-0


コンセプト: PowerShellについてよくある質問

このリストをいろいろな目的で活用できます。

  • コマンドをスクリプトにコピー/ペースト
  • 特定のコマンドの構文を簡単に確認
  • あなたの技術的知識の向上
  • 新しいコマンドを発見
  • 就職の面接用の準備

更新日
2015年10月6日
著者 Steve Renard
ソース japanese.powershell-guru.com
カテゴリ
75
質問
610


ACL
Active Directory
Alias
Arrays
Browsers
Certificates
Characters
CIM
Comments
COM Objects
Compare
Computer
Credentials
CSV
Culture
Date
Drives
Environment
Errors
Event Viewer
Files
Folders
Format Operator (-f)
Functions
GPO
GUI
Hardware
Hashtables
Help
History
Jobs
Keyboard
Loops
Math
Memory
Messages
Modules
Microsoft Excel
Microsoft Exchange
Microsoft Outlook
Microsoft SharePoint
Networking
Openfiles
Operators
Parameters
Password
Powershell ISE
Powershell v5
Printers
Processes
PSObject
Quest
Random
RDP
Regedit
Regex
Remote
Restore
Scheduled Tasks
Search
SCCM
Services
SMTP
Snapins
Sounds
Static .NET Methods
Strings
System
Try/Catch
Variables
Symantec Vault
Windows 2012
Windows Azure
Windows Forms
WMI
XML

System

PowerShellのバージョンを確認するには?

下位互換性のために別のバージョンでPowerShellを実行する方法は?
powershell.exe -Version 2.0

PowerShellのスクリプトで最低必要なPowerShellのバージョン(3.0以降)を要求するには?
#Requires -Version 3.0

PowerShellのスクリプトで管理者権限を必要とするには?

PowerShellのスクリプトでパラメータをチェックするには?
help -Name .\Get-ExchangeEnvironmentReport.ps1 -Full

PowerShellで現在のユーザーの情報を取得する方法は?
[Security.Principal.WindowsIdentity]::GetCurrent()

PowerShellのプロファイルを作成、編集、リロードするには?

PowerShellのスクリプトの中で5秒/分の一時停止を行うには?
Start-Sleep -Seconds 5
Start-Sleep -Seconds 300 # 5 minutes

PowerShellの最後の起動時間を取得するには?
(Get-CimInstance -ClassName win32_operatingsystem).LastBootUpTime

PowerShellのアクセラレータ型を取得するには?

PowerShellのスタートアッププログラムの一覧を表示するには?

PowerShellのアプリケーションをアンインストールする方法は?

デスクトップ全体またはPowerShellのアクティブウィンドウのスクリーンショットを取る方法は?
Take-ScreenShot -Screen -File 'C:\scripts\screenshot.png' -Imagetype JPEG
Repository : Take-ScreenShot

PowerShellでMSMQキューのメッセージ数を取得する方法は?

PowerShellの実行ポリシーを設定するには?

PowerShellのショートカットを作成するには?

PowerShellでタスクバーにプログラムをピンまたは解除するには?

PowerShellでWindowsエクスプローラーを開くには?
[Diagnostics.Process]::Start('explorer.exe')
Invoke-Item -Path C:\Windows\explorer.exe

PowerShellでデバイスドライバの一覧を表示するには?
Get-WmiObject -Class Win32_PnPSignedDriver
Get-WindowsDriver -Online -All
driverquery.exe

PowerShellでGUIDを作成するには?

PowerShellで現在のユーザーのための一時ディレクトリの場所を取得するには?
[System.IO.Path]::GetTempPath()

PowerShellでパスとその下のパスをひとつに結合するには?
Join-Path -Path C:\ -ChildPath \windows

PowerShellですべてのコマンドレットの「Get-*」を一覧表示するには?
Get-Command -Verb Get

PowerShellで特別なシステムフォルダを一覧表示する方法は?

PowerShellでISO/VHDファイルをマウントするには?
Mount-DiskImage 'D:\ISO\file.iso' # ISO
Mount-DiskImage 'D:\VHD\file.vhd' # VHD

PowerShellでインストールされている.NET Frameworkのバージョンをチェックするには?

PowerShellで.NET Frameworkのバージョン4.5がインストールされているかを確認するには?
(Get-ItemProperty -Path 'HKLM:\Software\Microsoft\NET Framework Setup\NDP\v4\Full' -EA 0).Version -like '4.5*'

PowerShellを使用(Windows PowerShellセッションの記録を作成するために)トランスクリプトを起動および停止するには?
Start-Transcript -Path 'C:\scripts\transcript.txt
Stop-Transcript

PowerShellで特定の場所にカレントディレクトリを変更するには?
Set-Location -Path 'C:\scripts'

PowerShellで画面をクリアするには?
Clear-Host
cls # Alias

PowerShellでディスプレイの解像度を変更するには?
Set-DisplayResolution -Width 1280 -Height 1024 -Force # Windows 2012

PowerShellでフルスクリーンウィンドウを設定するには?
mode.com 300

PowerShellで画像のディメンション(幅と高さ)を取得するには?

PowerShellでWindowsのプロダクトキーを取得する方法は?

Perfmon

PowerShellで直近5秒(10回)の現在の「%プロセッサ時間」(平均)を取得するには?
(Get-Counter '\Processor(_total)\% Processor Time' -SampleInterval 5 -MaxSamples 10).CounterSamples.CookedValue

Assemblies

PowerShellでアセンブリをロードする方法は?

PowerShellでロードされた現在の.NETアセンブリをチェックするには?

PowerShellでGAC(グローバルアセンブリキャッシュ)のパスを見つけるには?

Clipboard

PowerShellでクリップボードに結果をコピーするには?

PowerShellでクリップボードの内容を取得する方法は?
Add-Type -AssemblyName PresentationCore
[Windows.Clipboard]::GetText()

Hotfixes

PowerShellでインストールされた更新プログラムを取得する方法は?
Get-HotFix -ComputerName $computer

PowerShellで特定の日付以前/以降ににインストールされた更新プログラムを取得するには?
Get-HotFix | Where-Object -FilterScript { $_.InstalledOn -lt ([DateTime]'01/01/2015') } # Before 01/01/2015
Get-HotFix | Where-Object -FilterScript {$_.InstalledOn -gt ([DateTime]'01/01/2015')} # After 01/01/2015

PowerShellで更新プログラムがインストールされているかを確認するには?
Get-HotFix -Id KB2965142

PowerShellでリモート·コンピュータにインストールされた更新プログラムを取得するには?
Get-HotFix -ComputerName $computer

Pagefile

PowerShellでページファイルの情報を取得する方法は?
Get-WmiObject -Class Win32_PageFileusage | Select-Object -Property Name, CurrentUsage, AllocatedBaseSize, PeakUsage, InstallDate

PowerShellでページファイル用の推奨サイズ(MB)を取得する方法は?
[Math]::Truncate(((Get-WmiObject -Class Win32_ComputerSystem).TotalPhysicalMemory) / 1MB) * 1.5

PowerShellで(D:)ドライブ上にページファイル(4096MB)を作成するには?

PowerShellで(C:)ドライブ上のページファイルを削除するには?

Maintenance

PowerShellでドライブの断片化を確認する方法は?

PowerShellでドライブのディスク容量を確認する方法は?

Up


Files

PowerShellでファイルをオープンには?
Invoke-Item -Path 'C:\scripts\file.txt'
.'C:\scripts\file.txt'

PowerShellでファイルを読み取る方法は?
Get-Content -Path 'C:\scripts\file.txt'
gc "C:\scripts\file.txt" # Alias

PowerShellで出力をファイルに書き込む方法は?

PowerShellで現在のスクリプトファイルのフルネームを取得する方法は?
$MyInvocation.MyCommand.Path

PowerShellでファイルを圧縮/zipするには?

PowerShellでファイルを解凍/unzipするには?

PowerShellでZIPアーカイブ内のファイルを参照するには?
Add-Type -AssemblyName 'System.IO.Compression.Filesystem'
[System.IO.Compression.ZipFile]::OpenRead($fileZIP)

PowerShellでKBでファイルのサイズを表示する方法は?
(Get-ChildItem -Path .\winsrv.dll).Length /1KB
(Get-ChildItem -Path .\winsrv.dll).Length /1MB
(Get-ChildItem -Path .\winsrv.dll).Length /1GB

PowerShellで1GB以上、以下のファイルを検索するには?

PowerShellで拡張子を除いたファイルの名前を表示する方法は?
[System.IO.Path]::GetFileNameWithoutExtension('C:\Windows\system32\calc.exe') # Return calc

PowerShellでファイルの拡張子を表示する方法は?
[System.IO.Path]::GetExtension('C:\scripts\file.txt') # Return .txt

PowerShellでファイルのファイルバージョンを取得するには?

PowerShellでファイルシステム管理のハッシュを取得する方法は?
(Get-FileHash $file).Hash

PowerShellでファイルのMD5/SHA1チェックサムを取得する方法は?
Get-FileHash $file -Algorithm MD5
Get-FileHash $file -Algorithm SHA1

PowerShellで隠しファイルを表示する方法は?

PowerShellでファイルが拡張子を持っているかどうかをチェックするには?

PowerShellでフィルを「読み取り専用」に設定するには?
Set-ItemProperty -Path .\file.txt -Name IsReadOnly -Value $true

PowerShellでファイルの「LastWriteTime」属性を先週に変更するには?
Set-ItemProperty -Path .\file.txt -Name LastWriteTime -Value ((Get-Date).AddDays(-7))
If not working, use Nirsoft tool: BulkFileChanger.

PowerShellで新しいファイルを作成する方法は?
New-Item -ItemType File -Path 'C:\scripts\file.txt' -Value 'FirstLine'

PowerShellでファイルの名前を変更するには?
Rename-Item -Path 'C:\scripts\file.txt' -NewName 'C:\scripts\powershellguru2.txt'

PowerShellで複数のファイル名を一括/バッチで変更するには?
Get-ChildItem -Path C:\scripts\txt | Rename-Item -NewName { $_.Name -replace ' ', '_' }

PowerShellでファイルを削除するには?
Remove-Item -Path 'C:\scripts\file.txt'

PowerShellでファイルの最新の10行を表示するには?
Get-Content -Path 'C:\scripts\log.txt' -Tail 10

PowerShellでフォルダのいくつかのファイルのブロックを解除するには?
Get-ChildItem -Path 'C:\scripts\Modules' | Unblock-File

PowerShellでファイルから空行を削除するには?
(Get-Content -Path file.txt) | Where-Object -FilterScript {$_.Trim() -ne '' } | Set-Content -Path file.txt

PowerShellでファイルが存在するかどうかを確認するには?

PowerShellでフォルダ内の最も新しく/古く作成されたファイルを取得する方法は?

PowerShellでファイルから重複行を削除するには?

PowerShellでフォルダに1ヶ月以上または未満に作成されたファイルを取得するには?

PowerShellでフォルダに1年以上または未満に作成されたファイルを取得するには?

PowerShellでファイルに変数の値をエクスポートする方法は?
Set-Content -Path file.txt -Value $variable

PowerShellでフォルダ内のファイル数(* .txt)をカウントする方法は?

PowerShellで複数のファイルに存在する文字を検索するには?
Select-String -Path 'C:\*.txt' -Pattern 'Steve'

PowerShellを使用してファイルの最初/最後の行を表示する方法は?

PowerShellを使用してファイルの特定の行番号を表示する方法は?

PowerShellを使用してファイルの行数をカウントするには?

PowerShellを使用してファイルの文字や単語の数をカウントするには?

PowerShellでファイルをダウンロードするには?
Invoke-WebRequest -Uri 'http://www.nirsoft.net/utils/searchmyfiles.zip' -OutFile 'C:\tools\searchmyfiles.zip'

PowerShellでファイルのフルパスを表示する方法は?
Resolve-Path -Path .\script.ps1 # Return C:\Scripts\script.ps1

Copy

PowerShellでフォルダにあるファイルをコピーするには?
Copy-Item -Path 'C:\source\file.txt' -Destination 'C:\destination'

PowerShellで複数のフォルダにあるファイルをコピーするには?

PowerShellでひとつのフォルダに複数のファイルをコピーする方法は?
Get-ChildItem -Path 'C:\source' -Filter *.txt | Copy-Item -Destination 'C:\destination'

Up


Active Directory

Domain & Forest

Computers

Groups

Organizational Unit (OU)

Users

Domain & Forest

PowerShellでActive Directoryのグローバルカタログサーバーを見つけるには?
[System.DirectoryServices.ActiveDirectory.Forest]::GetCurrentForest().GlobalCatalogs

PowerShellでActive Directoryのサイトを見つける方法は?
[System.DirectoryServices.ActiveDirectory.Forest]::GetCurrentForest().Sites

PowerShellで現在のドメインコントローラを検索するには?

PowerShellでドメイン内のすべてのドメインコントローラを見つけるには?

PowerShellでADの同期失敗を見つけるには?
Get-ADReplicationFailure dc02.domain.com # Windows 8 and 2012

PowerShellでActive Directoryでフォレストの廃棄の有効期間を見つけるには?

PowerShellでActive Directoryのフォレスト/ドメインの詳細を取得するには?

PowerShellでActive Directoryの「削除されたオブジェクト」コンテナのパスを取得するには?
(Get-ADDomain).DeletedObjectsContainer

PowerShellでActive DirectoryのADごみ箱機能を有効にする方法は?

PowerShellでActive Directoryのごみ箱からADアカウントを復元する方法は?
Get-ADObject -Filter 'samaccountname -eq "powershellguru"' -IncludeDeletedObjects | Restore-ADObject

PowerShellでFSMOのロールを見つけるには?

PowerShellで特定のドメインコントローラに接続するには?
Get-ADUser -Identity $user -Server 'serverDC01'

PowerShellで現在のログオンサーバーを取得するには?

PowerShellでコンピュータ上で「gpupdate」を実行する方法は?
Invoke-GPUpdate -Computer $computer -Force -RandomDelayInMinutes 0 # Windows 2012

Groups

PowerShellでActive Directoryに新しいグループを作成するには?

PowerShellでActive Directoryのグループを削除するには?
Remove-ADGroup -Identity 'PowershellGuru'

PowerShellでActive Directoryにユーザーをグループに追加するには?
Add-ADGroupMember "Powershell Guru" -Members powershellguru

PowerShellでActive Directorのグループからユーザーを削除するには?
Remove-ADGroupMember 'Powershell Guru' -Members powershellguru

PowerShellでActive Directoryの空グループ(メンバーを持たない)を検索するには?
Get-ADGroup -Filter * -Properties Members | Where-Object -FilterScript {-not $_.Members}

PowerShellでActive Directoryの空グループ(メンバーを持たない)をカウントする方法は?
(Get-ADGroup -Filter * -Properties Members | Where-Object -FilterScript {-not $_.Members}).Count

PowerShellでActive Directoryのグループのメンバーを取得する方法は?

PowerShellでActive Directoryの再帰的なメンバーのグループのメンバーを取得する方法は?

PowerShellでActive Directoryで再帰的/再帰的でないグループのメンバー数をカウントするには?

Users

PowerShellでActive Directoryの「Get-ADUser」フィルタでワイルドカードを使用する方法は?

PowerShellでActive Directoryの別のOUにユーザーを移動するには?
Move-ADObject -Identity $dn -TargetPath 'OU=myOU,DC=domain,DC=com'

PowerShellでユーザーの(ネストされた)すべてのメンバーを見つけるには?
Get-ADGroup -LDAPFilter "(member:1.2.840.113556.1.4.1941:=$($dn))"

PowerShellでユーザーのメンバー(ショートネーム/切り捨て)を取得する方法は?
(Get-ADUser -Identity $user -Properties MemberOf).MemberOf | ForEach-Object -Process {($_ -split ',')[0].Substring(3)} | Sort-Object

PowerShellでActive Directoryのユーザーアカウントの名前(FullName)、(DisplayName)、ファーストネーム(FirstName)、ラストネーム(LastName)を変更するには?

PowerShellでActive Directoryのユーザーアカウントの説明、オフィスと電話番号を変更するには?
Set-ADUser $samAccountName -Description 'IT Consultant' -Office 'Building B' -OfficePhone '12345'

PowerShellでActive Directoryのユーザーアカウントに対して「31/12/2015」または「期限なし」の有効期限を設定するには?

PowerShellでActive Directoryのユーザーアカウントのロックを解除するには?
Unlock-ADAccount $samAccountName

PowerShellでActive Directoryのユーザーアカウントを有効/無効化にするには?

PowerShellでActive Directoryのユーザーアカウントを削除するには?
Remove-ADUser $samAccountName

PowerShellでActive Directoryでひとつのユーザアカウントのパスワードをリセットする方法は?

PowerShellでActive Directoryで複数のユーザアカウント(一括)のパスワードをリセットする方法は?

PowerShellでActive Directoryのファイルの所有者を見つけるには?

PowerShellでActive DirectoryのユーザーのOU(組織単位)を見つけるには?
[regex]::match("$((Get-ADUser -Identity $user -Properties DistinguishedName).DistinguishedName)",'(?=OU=)(.*\n?)').value

PowerShellでActive Directoryの無効なユーザーアカウントを検索するには?

PowerShellでActive Directoryの期限切れユーザーアカウントを検索するには?
Search-ADAccount -AccountExpired

PowerShellでActive Directoryのロックされたユーザーアカウントを検索するには?
Search-ADAccount -LockedOut

PowerShellでActive DirectoryのユーザーアカウントのSIDを見つけるには?
(Get-ADUser -Identity $user -Properties SID).SID.Value

PowerShellでActive DirectoryのSIDをユーザー名に変換するには?

PowerShellでActive Directoryのユーザ名をSIDに変換する方法は?

PowerShellでActive Directoryのユーザーアカウントの識別名を分割するには?

PowerShellでActive Directoryのユーザー·アカウントの作成/変更日付を見つけるには?
Get-ADUser -Identity $user -Properties whenChanged, whenCreated | Format-List -Property whenChanged, whenCreated

PowerShellでActive Directoryの「ユーザー」クラスのオプションと必須のプロパティを表示する方法は?

PowerShellでActive DirectoryのユーザのLDAPパスを取得するには?

PowerShellでActive DirectoryのユーザーのCN(正規名)を変更するには?
Rename-ADObject $((Get-ADUser -Identity $user -Properties DistinguishedName).DistinguishedName) -NewName 'Steve Renard'

PowerShellでActive Directoryのユーザーの親組織単位(OU)を取得する方法は?

PowerShellでActive Directoryのユーザーの所有者(アカウントを作成した人)を取得するには?

PowerShellでActive DirectoryのユーザのpwdLastSet属性を変換する方法は?

Computers

PowerShellでローカルコンピュータとドメイン間の安全なチャネルをテストする方法は?
Test-ComputerSecureChannel

PowerShellでローカルコンピュータとドメイン間の安全なチャネルを修復するには?
Test-ComputerSecureChannel -Repair

PowerShellでActive Directoryのコンピュータアカウントを無効にする方法は?
Disable-ADAccount $computer

PowerShellでActive Directoryの特定のオペレーティングシステムを搭載したコンピュータを見つけるには?

Organizational Unit (OU)

PowerShellでActive Directoryの組織単位(OU)を作成する方法は?
New-ADOrganizationalUnit -Name 'STEVE' -Path 'DC=domain,DC=com'

PowerShellでActive Directoryの組織単位(OU)の詳細を取得するには?
Get-ADOrganizationalUnit 'OU=STEVE,DC=domain,DC=com' -Properties *

PowerShellでActive Directoryの組織単位(OU)の説明を変更するには?
Set-ADOrganizationalUnit 'OU=STEVE,DC=domain,DC=com' -Description 'My description'

PowerShellでActive Directoryの組織単位(OU)の誤った削除を有効/無効化するには?

PowerShellでActive Directoryのすべての組織単位(OU)の誤った削除を有効にする方法は?

PowerShellでActive Directoryで誤った削除で保護された組織単位(OU)を削除するには?

PowerShellでActive Directoryの組織単位(OU)のDistinguishedNameをCanonicalNameに変換するには?

PowerShellで空の組織単位(OU)を一覧表示するには?

PowerShellでグループのマネージャを取得するには?
(Get-ADGroup $dn -Properties Managedby).Managedby

Up


Regex (Regular Expression)

PowerShellで正規表現を使用してIPアドレスのV4(80.80.228.8)を抽出するには?
$example = 'The IP address is 80.80.228.8'
$ip = [regex]::match($example,'\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b').value

PowerShellで正規表現を使用してMACアドレス(C0-D9-62-39-61-2D)をセパレータ「-」付きで取得する方法は?
$example = 'The MAC address is C0-D9-62-39-61-2D'
$mac = [regex]::match($example,'([0-9A-F]{2}[-]){5}([0-9A-F]{2})').value

PowerShellで正規表現を使用してMACアドレス(C0:D9:62:39:61:2D)をセパレータ「:」付きで取得する方法は?
$example = 'The MAC address is C0:D9:62:39:61:2D'
$mac = [regex]::match($example,'((\d|([a-f]|[A-F])){2}:){5}(\d|([a-f]|[A-F])){2}').value

PowerShellで正規表現を使用して日付(10/02/2015)を抽出するには?
$example = 'The date is 10/02/2015'
$date = [regex]::match($example,'(\d{2}\/\d{2}\/\d{4})').value

PowerShellで正規表現を使用してURL(www.powershell-guru.com)を抽出するには?
$example = 'The URL is www.powershell-guru.com'
$url = [regex]::match($example,'[a-z]+[:.].*?(?=\s)').value

PowerShellで正規表現を使用してメール(user@domain.com)を抽出するには?
$example = 'The email is user@domain.com'
$email = [regex]::match($example,'(?i)\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b').value

PowerShellで正規表現を使用して文字の例から「guru」を抽出する方法は?
$example = 'www.powershell-guru.com'
[regex]::match($example,'(?<=-)(.*\n?)(?=.com)').value

PowerShellで正規表現を使用して文字の例から「guru.com」を抽出する方法は?
$example = 'www.powershell-guru.com'
[regex]::match($example,'(?<=-)(.*\n?)(?<=.)').value

PowerShellで正規表現を使用して文字の例から「powershell-guru.com」を抽出する方法は?
$example = 'www.powershell-guru.com'
[regex]::match($example,'(?<=www.)(.*\n?)').value

PowerShellで正規表現を使用して文字の例から「123」を抽出するには?
$example = 'Powershell123'
[regex]::match($example,'(\d+)').value

PowerShellで正規表現を使用して文字の例から「$」(ドル記号)を抽出するには?
$example = 'Powershell`$123'
[regex]::match($example,'(\$)').value

PowerShellで正規表現を使用して文字内の(*.com)を別の文字(*.fr)に置き換える方法は?
$example = 'www.powershell-guru.com'
[regex]::Replace($example, '.com','.fr')

PowerShellで正規表現を使用して文字をエスケープするには?
[regex]::Escape('\\server\share')

Up


Memory

PowerShellでガベージコレクタによってメモリのコレクションを強制するには?
[System.GC]::Collect()
[System.GC]::WaitForPendingFinalizers()

PowerShellでコンピュータのRAMサイズを取得する方法は?

Up


Date

PowerShellで現在の日付を取得する方法は?
Get-Date
[Datetime]::Now

PowerShellで異なる形式で日付を表示するには?

PowerShellで日付(文字)を日付(日時)に変換するには?

PowerShellで日付(日時)を日付(文字)に変換するには?

PowerShellで2つの日付の差(日、時間、分、秒数)を算出する方法は?
(New-TimeSpan -Start $dateStart -End $dateEnd).Days
(New-TimeSpan -Start $dateStart -End $dateEnd).Hours
(New-TimeSpan -Start $dateStart -End $dateEnd).Minutes
(New-TimeSpan -Start $dateStart -End $dateEnd).Seconds

PowerShellで2つの日付を比較するには?
(Get-Date 2015-01-01) -lt (Get-Date 2015-01-30) # True
(Get-Date 2015-01-01) -gt (Get-Date 2015-01-30) # False

PowerShellで日時などの日付の配列をソートする方法は?
$arrayDate | Sort-Object -Property {$_ -as [Datetime]}

PowerShellでストップウォッチを起動および停止するには?
$chrono = [Diagnostics.Stopwatch]::StartNew()
$chrono.Stop()
$chrono

PowerShellで現在の曜日を取得する方法は?
(Get-Date).DayOfWeek #Sunday

PowerShellで昨日の日付を取得する方法は?
(Get-Date).AddDays(-1)

PowerShellで(2015年2月)の日数を取得する方法は?
[DateTime]::DaysInMonth(2015, 2)

PowerShellでうるう年を扱う方法は?
[DateTime]::IsLeapYear(2015)

PowerShellでタイムゾーンを一覧表示する方法は?
[System.TimeZoneInfo]::GetSystemTimeZones()

Up


Networking

PowerShellでURLをエンコード(ASCII形式に)しデコードする方法は?

PowerShellでネイティブネットワークコマンドに対応するコマンドは何ですか?

PowerShellでIPアドレスを取得するには?
Get-NetIPAddress # Windows 8.1 & Windows 2012
Get-NetIPConfiguration # Windows 8.1 & Windows 2012

PowerShellでIPアドレスV6(IPv6)を無効にする方法は?

PowerShellでIPアドレスV4(IPv4)を検証する方法は?
if([ipaddress]'10.0.0.1'){'validated'}

PowerShellで外部IPアドレスを見つけるには?

PowerShellでIPアドレスからホスト名を見つけるには?
([System.Net.Dns]::GetHostEntry($IP)).Hostname

PowerShellでホスト名からIPアドレスを見つけるには?
([System.Net.Dns]::GetHostAddresses($computer)).IPAddressToString

PowerShellでホスト名からFQDNを見つけるには?
[System.Net.Dns]::GetHostByName($computer).HostName

PowerShellで(IP、サブネット、ゲートウェイ、およびDNS)ネットワーク構成を見つけるには?

PowerShellでMACアドレスを見つけるには?
Get-CimInstance win32_networkadapterconfiguration | Select-Object -Property Description, Macaddress
Get-WmiObject -Class win32_networkadapterconfiguration | Select-Object -Property Description, Macaddress

PowerShellでコンピュータに対してpingを実行するには?

PowerShellでコンピュータがインターネットに接続されているかどうかを確認するには?

PowerShellでウェブサイトの「whois」検索を実行するには?
$whois = New-WebServiceProxy 'http://www.webservicex.net/whois.asmx?WSDL'
$whois.GetWhoIs('powershell-guru.com')

PowerShellでパブリックIP(地理位置情報)の​​詳細を取得する方法は?

PowerShellでポートがオープン/クローズされているかを確認するには?
New-Object -TypeName Net.Sockets.TcpClient -ArgumentList $computer, 135

PowerShellで「tracert」を実行するには?
Test-NetConnection www.google.com -TraceRoute

PowerShellでホームネットワーク接続プロファイルを修正するには?
Get-NetAdapter | Format-Table -Property Name, InterfaceDescription, ifIndex -AutoSize # Windows 8.1
Set-NetConnectionProfile -InterfaceIndex 6 -NetworkCategory Private

PowerShellでTCPポートの接続を表示する方法は?
netstat.exe -ano
Get-NetTCPConnection #Windows 8 and 2012

PowerShellで長いURLを短いURLに短縮するには?
$url = 'www.powershell-guru.com'
$tiny = Invoke-RestMethod -Uri "http://tinyurl.com/api-create.php?url=$url"

PowerShellでプロキシ設定を取得する方法は?
Get-ItemProperty -Path HKCU:"Software\Microsoft\Windows\CurrentVersion\Internet Settings"

DNS

PowerShellでローカルコンピュータ上のDNSキャッシュをチェックするには?
ipconfig.exe /displaydns
Get-DnsClientCache #Windows 8 and 2012

PowerShellでローカルコンピュータ上のDNSキャッシュをクリアするには?
ipconfig.exe /flushdns
Start-Process -FilePath ipconfig -ArgumentList /flushdns -WindowStyle Hidden
Clear-DnsClientCache #Windows 8 and 2012

PowerShellでリモートコンピュータ上のDNSキャッシュをクリアするには?
Invoke-Command -ScriptBlock {Clear-DnsClientCache} -ComputerName computer01, computer02

PowerShellでHostsファイルを読み込むするには?
Get-Content -Path 'C:\Windows\system32\drivers\etc\hosts'

Up


Password

PowerShellでランダムなパスワードを生成するには?
[Reflection.Assembly]::LoadWithPartialName('System.Web')
[System.Web.Security.Membership]::GeneratePassword(30,2)

PowerShellでリモートサーバー上で管理者のためのローカルパスワードを変更するには?
$admin = [ADSI]('WinNT://server01/administrator,user')
$admin.SetPassword($password)
$admin.SetInfo()

PowerShellでActive Directoryのアカウントパスワードの有効期限を見つけるには?

Up


Printers

PowerShellで特定のサーバーのすべてのプリンタを一覧表示するには?
Get-WmiObject -Query 'Select * From Win32_Printer' -ComputerName $computer

PowerShellで特定のサーバーのすべてのポートを一覧表示する方法は?
Get-WmiObject -Class Win32_TCPIPPrinterPort -Namespace 'root\CIMV2' -ComputerName $computer

PowerShellでプリンタのコメント/場所を変更するには?

PowerShellでプリンタをパージ(すべてのジョブをキャンセル)するには?
$printer = Get-WmiObject -Class win32_printer -Filter "Name='HP Deskjet 2540 series'"
$printer.CancelAllJobs()

PowerShellでプリンタのテストページを印刷するには?
$printer = Get-WmiObject -Class win32_printer -Filter "Name='HP Deskjet 2540 series'"
$printer.PrintTestPage()

PowerShellでプリンタ用のプリントキューを取得する方法は?

Up


Regedit

Read

PowerShellでレジストリハイブを一覧表示する方法は?
Get-ChildItem -Path Registry::

PowerShellでレジストリ値と型を取得するには?

PowerShellでレジストリキーのサブキーを一覧表示するには?

PowerShellで再帰的な方法でレジストリキーのサブキーを一覧表示するには?
Get-ChildItem -Path 'HKLM:\SYSTEM' -Recurse -ErrorAction SilentlyContinue

PowerShellで特定の名前でサブキーを見つけるには?
Get-ChildItem -Path 'HKLM:\SOFTWARE' -Include *Plugin* -Recurse -ErrorAction SilentlyContinue

PowerShellでレジストリサブキーの名前だけを返す方法は?
(Get-ChildItem -Path 'HKLM:\SYSTEM').Name # Return HKEY_LOCAL_MACHINE\SYSTEM\ControlSet
Get-ChildItem -Path 'HKLM:\SYSTEM' -Name # Return ControlSet

PowerShellでレジストリ値を一覧表示する方法は?
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion'

PowerShellで特定のレジストリ値を読むには?
(Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion').ProductName

PowerShellでリモートコンピュータ上の特定のレジストリ値を読むには?

Write

PowerShellで新しいレジストリキーを作成する方法は?
New-Item -Path 'HKCU:\Software\MyApplication'

PowerShellでレジストリ値を作成する方法は?
New-ItemProperty -Path 'HKCU:\Software\MyApplication' -Name 'Version' -Value '1.0'

PowerShellで既存のレジストリ値を変更するには?
Set-ItemProperty -Path 'HKCU:\Software\MyApplication' -Name 'Version' -Value '2.0'

Delete

PowerShellでレジストリ値を削除するには?
Remove-ItemProperty -Path 'HKCU:\Software\MyApplication' -Name 'Version'

PowerShellでレジストリキーを削除するには?
Remove-Item -Path 'HKCU:\Software\MyApplication' -Force

Test

PowerShellでレジストリキーが存在するかテストするには?
Test-Path -Path 'HKCU:\Software\MyApplication'

PowerShellでレジストリ値が存在するかテストするには?
(Get-Item -Path 'HKCU:\Software\MyApplication').GetValueNames() -contains 'Version'

Up


Strings

PowerShellで文字の先頭から空白文字を削除するには?
$string = ' PowershellGuru'
$string = $string.TrimStart()

PowerShellで文字の末尾から空白文字を削除するには?
$string = 'PowershellGuru '
$string = $string.TrimEnd()

PowerShellで文字(開始と終了)空白文字を削除するには?
$string = ' PowershellGuru '
$string = $string.Trim()

PowerShellで文字を大文字に変換する方法は?
$string = 'powershellguru'
$string = $string.ToUpper()

PowerShellで小文字に文字を変換するには?
$string = 'POWERSHELLGURU'
$string = $string.ToLower()

PowerShellで「PowershellGuru」の部分文字「PowerShell」を選択するには?
$string.Substring(0,10)

PowerShellで「PowershellGuru」の部分文字「Guru」を選択するには?
$string.Substring(10)

PowerShellで「Powershell123Guru」の数「123」を選択するには?
$string = 'Powershell123Guru'
[regex]::match($string,'(\d+)').value

PowerShellで文字「PowershellGuru」の「Guru」のゼロから始まるインデックスを取得するには?
$string.IndexOf('Guru') # 10

PowerShellで文字がnullまたは空であるかをチェックするには?
$string = $null
$string = ''
[string]::IsNullOrEmpty($string)

PowerShellで文字がNULL、空白、または空白文字のみで構成されているかどうかを確認する方法は?
$string = $null
$string = ''
$string = ' '
[string]::IsNullOrWhiteSpace($string)

PowerShellで文字に特定の文字が含まれているかどうかを確認するには?
$string = 'PowershellGuru'
$string.Contains('s')
[regex]::match($string,'s').Success

PowerShellで文字の長さを返す方法は?
$string.Length

PowerShellで、2つの文字を連結するには?

PowerShellで文字内のひとつまたは複数ブラケット「[]」がマッチするか検証するには?
$string = '[PowershellGuru]'
$string -match '\[' # Only 1
$string -match '\[(.*)\]' # Several

PowerShellで文字内のひとつまたは複数括弧「()」がマッチするか検証するには?
$string = '(PowershellGuru)'
$string -match '\(' # Only 1
$string -match '\((.*)\)' # Several

PowerShellで文字内のひとつまたは複数括弧「{}」がマッチするか検証するには?
$string = '{PowershellGuru}'
$string -match '\{' # Only 1
$string -match '\{(.*)\}' # Several

PowerShellで文字内のひとつまたは複数アングルブラケット「< >」がマッチするか検証するには?
$string = ''
$string -match '\<' # Only 1
$string -match "\<(.*)\>" # Several

PowerShellで文字内の任意の小文字(abc)がマッチするか検証するには?
$string = 'POWERSHELLGURU'
$string -cmatch "^[a-z]*$" #False

PowerShellで文字内の任意の大文字(ABC)がマッチするか検証するには?
$string = 'powershellguru'
$string -cmatch "^[A-Z]*$" #False

PowerShellで文字内の「[p」(p小文字)がマッチするか検証するには?
$string = '[powershellGuru]'
$string -cmatch '\[[a-z]\w+' #True

PowerShellで文字内の「[P」(P大文字)がマッチするか検証するには?
$string = '[PowershellGuru]'
$string -cmatch '\[[A-Z]\w+' #True

PowerShellで別の行と行を交換する方法は?
$a = 'Line A'
$b = 'Line B'
$a = $a -replace $a, $b

PowerShellで文字(パーセンテージ)の除算演算を変換するには?
(1/2).ToString('P')

PowerShellで数字を含む文字をソートする方法は?

PowerShellで文の最後の単語を選択するには?
$sentence = 'My name is Steve Renard'
$sentence.Split(' ')[-1] # Returns Renard

PowerShellで文の最大の単語を取得する方法は?
$sentence = 'My name is Steve Renard'
$sentence.Split(' ') | Sort-Object -Property Length | Select-Object -Last 1 # Returns Renard

PowerShellで文字が文章内に存在する回数をカウントするには?
$sentence = 'steve steve steve renard'
[regex]::Matches($sentence, 'steve').Count # Returns 3

PowerShellで文字配列に文字の各文字をコピーするには?

PowerShellで文字の最初の文字を大文字に変換するには?

PowerShellで文字を空白で埋める(左または右)方法は?

PowerShellでBase64で文字をエンコードおよびデコードするには?

PowerShellで数字をバイナリ(または逆)に変換する方法は?

PowerShellでパスに存在する最後の親フォルダを返す方法は?

PowerShellでパスに存在する最後の項目を返す方法は?

Up


Math

PowerShellを使用してSystem.Mathのクラスのメソッドを一覧表示する方法は?
[System.Math] | Get-Member -Static -MemberType Method

PowerShellで絶対値を返す方法は?
[Math]::Abs(-12) #Returns 12
[Math]::Abs(-12.5) # Returns 12.5

PowerShellで指定された数である角度を返す方法は?
[Math]::ASin(1) #Returns 1,5707963267949

PowerShellでシーリングを返す方法は?
[Math]::Ceiling(1.4) #Returns 2
[Math]::Ceiling(1.9) #Returns 2

PowerShellでフロアを返す方法は?
[Math]::Floor(1.4) #Returns 1
[Math]::Floor(1.9) #Returns 1

PowerShellで指定された数の自然(ベース e)対数を返すには?
[Math]::Log(4) #Returns 1,38629436111989

PowerShellで指定した数の10を底とする対数を返す方法は?
[Math]::Log10(4) #Returns 0,602059991327962

PowerShellで2つの値の最大値を返す方法は?
[Math]::Max(2,4) #Returns 4
[Math]::Max(-2,-4) #Returns -2

PowerShellで2つの値の最小値を返す方法は?
[Math]::Min(2,4) #Returns 2
[Math]::Max(-2,-4) #Returns -4

PowerShellで指定された指数で繰り上げた番号を返す方法は?
[Math]::Pow(2,4) #Returns 16

PowerShellで最も近い整数値に小数点以下の値を返す方法は?
[Math]::Round(3.111,2) #Returns 3,11
[Math]::Round(3.999,2) #Returns 4

PowerShellで指定された進数の整数部を返す方法は?
[Math]::Truncate(3.111) #Returns 3
[Math]::Truncate(3.999) #Returns 3

PowerShellで指定された数の平方根を返す方法は?
[Math]::Sqrt(16) #Returns 4

PowerShellでPI定数を返す方法は?
[Math]::Pi #Returns 3,14159265358979

PowerShellで自然対数の底(定数e)を返す方法は?
[Math]::E #Returns 2,71828182845905

PowerShellで数が偶数か奇数であるかをチェックするには?
[bool]($number%2)

Up


Hashtables

PowerShellで空のハッシュテーブルを作成する方法は?
$hashtable = @{}
$hashtable = New-Object -TypeName System.Collections.Hashtable

PowerShellで項目をハッシュテーブルを作成する方法は?

PowerShellで項目とキー/名前(ソートされた辞書)によって並べ替えハッシュテーブルを作成する方法は?

PowerShellでハッシュテーブルに項目(キーと値のペア)を追加するには?
$hashtable.Add('Key4', 'Value4')

PowerShellでハッシュテーブルの特定の値を取得するには?

PowerShellでハッシュテーブルの最小値を取得する方法は?

PowerShellでハッシュテーブルの最大値を取得するには?

PowerShellでハッシュテーブル内の項目を変更するには?
$hashtable.Set_Item('Key1', 'Value1Updated')

PowerShellでハッシュテーブル内の項目を削除するには?
$hashtable.Remove('Key1')

PowerShellでハッシュテーブルをクリアするには?
$hashtable.Clear()

PowerShellでハッシュテーブル内の特定のキー/値の有無を確認する方法は?
$hashtable.ContainsKey('Key3')
$hashtable.ContainsValue('Value3')

PowerShellでハッシュテーブルのキー/値でソートするには?
$hashtable.GetEnumerator() | Sort-Object -Property Name
$hashtable.GetEnumerator() | Sort-Object -Property Value -Descending

Up


Arrays

PowerShellで空の配列を作成する方法は?
$array = @()
$array = [System.Collections.ArrayList]@()

PowerShellで項目を持つ配列を作成する方法は?
$array = @('A', 'B', 'C')
$array = 'A', 'B', 'C'
$array = 'a,b,c'.Split(',')
$array = .{$args} a b c
$array = echo a b c

PowerShellで配列に項目を追加するには?
$array += 'D'
[void]$array.Add('D')

PowerShellで配列内の項目を変更するには?
$array[0] = 'Z' # 1st item[0]

PowerShellで配列のサイズを確認する方法は?
$array = 'A', 'B', 'C'
$array.Length # Returns 3

PowerShellで配列内のひとつ/複数/すべての項目を取得するには?
$array = @('A', 'B', 'C')
$array[0] # One item (A)
$array[0] + $array[2] # Several items (A,C)
$array # All items (A,B,C)

PowerShellで配列内の空の項目を削除する方法は?
$array = @('A', 'B', 'C', '')
$array = $array.Split('',[System.StringSplitOptions]::RemoveEmptyEntries) | Sort-Object # A,B,C

PowerShellで項目が配列に存在するかどうかを確認するには?
$array = @('A', 'B', 'C')
'A' | ForEach-Object -Process {$array.Contains($_)} # Returns True
'D' | ForEach-Object -Process {$array.Contains($_)} # Returns False

PowerShellで配列内の項目のインデックス番号を見つけるには?
$array = @('A', 'B', 'C')
[array]::IndexOf($array,'A') # Returns 0

PowerShellで配列内の項目の順序を逆にするには?
$array = @('A', 'B', 'C')
[array]::Reverse($array) # C,B,A

PowerShellで配列からランダムに項目を生成するには?
$array | Get-Random

PowerShellで配列を昇順/降順でソートするには?
$array = @('A', 'B', 'C')
$array | Sort-Object # A,B,C
$array | Sort-Object -Descending # C,B,A

PowerShellで配列内の項目の数をカウントする方法は?
$array.Count

PowerShellで配列を他の入れるに追加する方法は?
$array1 = 'A', 'B', 'C'
$array2 = 'D', 'E', 'F'
$array3 = $array1 + $array2 # A,B,C,D,E,F

PowerShellで配列から重複を見つけるには?
$array = 'A', 'B', 'C', 'C'
($array | Group-Object | Where-Object -FilterScript {$_.Count -gt 1}).Values # Returns C

PowerShellで配列から重複を削除するには?
$array = 'A', 'B', 'C', 'C'
$array = $array | Select-Object -Unique
$array # Returns A,B,C

PowerShellで固定値(”USER01″,”USER02″,…”u​​ser10″)で始まる項目を持つ配列を作成する方法は?
$array = 1..10 | ForEach-Object -Process { "user$_" }

Up


ACL

PowerShellでADユーザーのACLを一覧表示する方法は?
(Get-Acl -Path "AD:\$dn").Access

PowerShellでフォルダのACLを一覧表示する方法は?
(Get-Acl -Path C:\scripts).Access

PowerShellでADユーザーの特定のACL許可エントリ(ユーザーまたはグループ)を一覧表示する方法は?

Up


Variables

PowerShellで最も一般的なデータ型は何ですか?

PowerShellで複数の型変数の最小値と最大値を見つけるには?

PowerShellでデータ型をテストする方法は?

PowerShellを使用してHere-String変数を作成する方法は?

PowerShellで変数を作成するには?
$powershellGuru = 'Hello'

PowerShellで定数変数を作成するには?
Set-Variable -Name powershellGuru -Value 2015 -Option Constant

PowerShellでグローバル変数を作成するには?
$Global:powershellGuru = 'Hello' # Note : creating global variables is not recommended

PowerShellで変数を読み込むには?
$powershellGuru = 'Hello' # Create
$powershellGuru # Read
Get-Variable -Name powershellGuru -ValueOnly # Read

PowerShellで変数の型をチェックするには?
$powershellGuru.GetType()

PowerShellでグローバルスコープ内の変数を見つけるには?
Get-Variable -Scope Global

PowerShellで名前で特定の変数を取得するには?
Get-Variable -Include *Preference -Exclude W*

PowerShellで変数に特定のデータ型を割り当てる方法は?
[int64]$variable = 100
[string]$variable = 'PowershellGuru'

PowerShellで複数の変数を同じ値に初期化する方法は?
$a = $b = $c = $d = $e = 0

PowerShellで変数「$_」の別名とは何ですか?
Get-Process | Where-Object -FilterScript {$_.Handles -gt 1000} # Using $_
Get-Process | Where-Object -FilterScript {$PSItem.Handles -gt 1000} # Using $PSItem (since version 3)

PowerShellで「count」で始まる名前の変数を削除するには?
Remove-Variable -Name count*

PowerShellでローカル環境変数を取得する方法は?
Get-ChildItem -Path Env:

PowerShellで環境変数パスを行ごとに取得するには?
($env:Path) -replace(';', "`n")
[Environment]::GetEnvironmentVariable('Path') -replace(';', "`n")

PowerShellで新しいパス(例 C:\SysinternalsSuite)を環境変数パスに追加する方法は?
$env:Path += ';C:\SysinternalsSuite'
$env:Path = $env:Path + ';C:\SysinternalsSuite'

PowerShellで変数を連結するには?
$a = 'Powershell'
$b = '- Guru'
$c = $a + $b

PowerShellでErrorVariableを使用する方法は?
Get-Process -Name abcde -ErrorAction SilentlyContinue -ErrorVariable AccessDenied
$AccessDenied | Select-Object -Property Exception
$AccessDenied | Select-Object -Property TargetObject

PowerShellで「明示的なオプション」(VBScript:変数が宣言されている必要がある)と同等のものを有効/無効にするには?

Up


Static .NET Methods

PowerShellで静的メンバーを取得するには?
[DateTime] | Get-Member -Static

Up


Sounds

PowerShellで「beep」音を再生するには?
[System.Console]::Beep()

PowerShellで「asterisk」音を再生するには?
[System.Media.SystemSounds]::Asterisk.Play()

PowerShellで「exclamation」音を再生するには?
[System.Media.SystemSounds]::Exclamation.Play()

PowerShellで利用可能な音声を取得するには?
[System.Media.SystemSounds] | Get-Member -Static

PowerShellで「WAV」音声を再生するには?
$soundPlayer = New-Object -TypeName System.Media.SoundPlayer -ArgumentList "$env:windir\Media\Ringout.wav"
$soundPlayer.Play()
または
$soundPlayer.PlayLooping()
$soundPlayer.Stop()

PowerShellで書かれたテキストを読み上げるには?
Add-Type -AssemblyName System.Speech
$speech = New-Object -TypeName System.Speech.Synthesis.SpeechSynthesizer
$speech.Speak('Hello PowershellGuru')

Up


XML

PowerShellでXMLファイルを読み取る方法は?
[xml]$sitemap = Get-Content -Path .\sitemap.xml
$sitemap.urlset.url

PowerShellでXMLファイルとしてデータをエクスポートするには?
Get-Process | Export-Clixml -Path C:\scripts\processes.xml

PowerShellでCLIXMLファイルからデータをインポートするには?
$importProcesses = Import-Clixml -Path C:\scripts\processes.xml

Up


GUI

PowerShellで基本的なGUI(Windowsフォーム)を作成するには?