View install_pwsh_kali_2018_1.sh
#
# 公式のやり方だとリンクが古いなどあったためGistにメモ
# 依存関係をみるとDebian 9のインストーラーが一番近かったので採用している。
#
# install dependencies
sudo apt-get update
sudo apt-get install -y liblttng-ust0 libunwind8
wget https://github.com/PowerShell/PowerShell/releases/download/v6.1.0-preview.1/powershell_6.1.0-preview.1-1.debian.9_amd64.deb
View Install-PS60toServerCore.ps1
# for Windows Server Core
& {
# configurations
$PS_VERSION = "6.0.0-beta.9"
$PSInstaller = [PSCustomObject]@{
Uri = "https://github.com/PowerShell/PowerShell/releases/download/v$PS_VERSION/PowerShell-$PS_VERSION-win-x64.msi";
OutFile = Join-Path $env:TEMP "PowerShell-$PS_VERSION-win-x64.msi";
InstallLog = Join-Path $env:TEMP "PowerShell-$PS_VERSION-win-x64-install.log";
Sha256 = "D8A194C8944C4680F27406AC5B341971C546C04279A47C927FAB10D6F5CBFF2A";
Destination = "C:\Program Files\PowerShell\$PS_VERSION";
View Setup-MDwiki.ps1
# 基本的には
# http://dynalon.github.io/mdwiki/#!tutorials/iis/iis.md
# の手順を参照のこと
#
# サイト設定(Default Web Site)
$SITE_ROOT = 'C:\inetpub\wwwroot'
$SITE_PATH = 'MACHINE/WEBROOT/APPHOST/Default Web Site'
# IISのインストール
View Get-AvailablePowerShellonLinux.ps1
yum list available --showduplicates -q powershell `
| Select-Object -Skip 1 `
| ForEach-Object {
$packageName = (-split $_)[1]
if ($packageName -match "^(?<Major>\d+)\.(?<Minor>\d+)\.(?<Patch>\d+)(-.+$|\~(?<Label>.+)-.+$)") {
$version = [SemVer]::new($Matches.Major, $Matches.Minor, $Matches.Patch, $Matches.Label)
}
[PSCustomObject]@{ Version = $version; PackageName = "powershell-{0}" -f $packageName}
} `
| Format-Table -AutoSize
View New-CoreXUnitProject.ps1
# see : https://docs.microsoft.com/en-us/dotnet/core/testing/unit-testing-with-dotnet-test
function New-CoreXUnitProject {
[CmdletBinding()]
Param (
[Parameter(Mandatory = $true)]
[string]$ProjectName
)
# Validations
try {
[void](Get-Command -Name 'dotnet' -ErrorAction Stop)
View Write-BOMlessUTF8Sample.ps1
# 例1
"書き込み内容" `
| % { [Text.Encoding]::UTF8.GetBytes($_) } `
| Set-Content -Path ".\BOMlessUTF8.txt" -Encoding Byte
# 例2
Get-Content -Path ".\Source.txt" -Raw -Encoding Default `
| % { [Text.Encoding]::UTF8.GetBytes($_) } `
| Set-Content -Path ".\BOMlessUTF8.txt" -Encoding Byte
View Get-RandomStringSloppy.ps1
#
# 雑にランダム文字列を生成するワンライナー
# サンプルというかメモ。
#
-join (random $(64..122 | % {[char]$_}) -Count 8)
# パスワード向け
Add-Type -AssemblyName System.Web
[System.Web.Security.Membership]::GeneratePassword(8, 0)
View PowerShell_Core_CI.md

PowerShell CoreのCIについてのメモ

基本

PowerShell CoreはCIにAppveyorとTravis CIをつかっている。

  • AppVeyor

    • Windowsのテスト用
    • CIの起点は .\tools\appveyor.psm1Invoke-AppveyorTest
View Invoke-CustomEncodingBlock.Tests.ps1
#
# ちょっとだけテスト
#
Import-Module Pester
Describe "UseBOMlessUTF8パラメーターのテスト" {
It "BOMなしUTF8 - 最初の3ByteがBOMでないこと" {
$filePath = ".\BOMless.txt"
Invoke-CustomEncodingBlock { "BOMなしUTF8" | Out-File $filePath -Encoding utf8 } -UseBOMlessUTF8
View Get-VMKeyExchangeData.ps1
<#
.SYNOPSIS
仮想マシンからデータ交換サービスのデータを取得します。
.PARAMETER VMName
仮想マシンの名称を指定します
.EXAMPLE
Get-VMKeyExchangeData -VMName 'MyVM'
.NOTES
Windows Server 2012以降でのみ利用可能です。
#>