2013年11月29日金曜日

◆取得したオブジェクトにオートナンバーキー列を付与する

http://social.technet.microsoft.com/Forums/ja-JP/ccf8e6fc-0220-4a0c-9fa5-16a1a680973a?forum=powershellja

こんな方法でもできそう。

001
002

$script:n = 0
ps | sort id | ft @{n="number";e={($script:n++)}},id,name -auto

スクリプト変数を使うとSelectやFormat出力の時に直接カウントアップできる。

また、カウントアップだけだと出力されないので括弧で囲むと良いようだ。
($script:n++)

これは
$script:n++;$script:nと同じ結果になる。

2013年11月27日水曜日

◆タスクスケジューラのジョブを纏めてエクスポートする

サーバーにしかけてあるジョブが増えてきたのでバックアップしておこうかと思ったのだが、GUIでは1つずつしかエクスポートできなさそう。

3.0が使えればコマンドレットが用意されているようだが、3.0を追加できないサーバーなので他の方法を探してみた。

「schtasks」か「Win32_ScheduledJob」あたりを使うのかなっと思って探しているとCOMを使ったそのものずはりのサンプルがあったので基本的にそのまま使わせていただいた。
Powershell, and exporting Windows Scheduled Tasks – TheGeekery

001
002
003
004
005
006
007
008
009
010
011
012
013
014
015

$outPath = "f:\desktop\wk"
$outFileName = "{0}.xml"

$sch = New-Object -ComObject("Schedule.Service")
$sch.Connect("localhost")
$tasks = $sch.GetFolder("\").GetTasks(0
)
 

$outfile_temp = Join-Path $outPath $outFileName
 
$tasks | %{
$xml = $_.Xml
$task_name = $_.Name
$outfile = $outfile_temp -f 
$task_name
$xml
 | Out-File $outfile
}

image

2013年11月19日火曜日

◆ISEを別のユーザーとして実行する

Launching PowerShell as Different User - Power Tips - PowerShell.com – PowerShell Scripts, Tips, Forums, and Resources

 

PowerShellは「Shift」を押しながら右クリックすると「別のユーザーとして実行」メニューが表示されるので、それを選べばよい。
image

しかし、ISEは同じ方法では別ユーザーとして起動できない。

そんなときは、別のユーザーとして起動したPoserShellのコマンドラインで「ISE」と打ち込めばPowerShellを起動したユーザーでISEも起動される。