PowerShell から Bits でファイルをアップロード

by kusakari 31. 3月 2010 21:30

PowerShell から Bits を使ってファイルをアップロードします。
今までであれば、bitsadmin.exe  を使用していましたが、windows 7 からは廃止されてる模様です。
※ですが、私のwin7マシンには System32 フォルダにいました...。
2010330_21580_743

 

PowerShellでのBits転送は、下記URLのTechNetで紹介されていますが、アップロードする際に認証が必要になるケースなどもあると思いますので、今回は認証付きの例をやってみたいと思います。
http://technet.microsoft.com/ja-jp/windows/ff467978.aspx

 

 

ローカルの C:\Temp フォルダにある hogehoge.txt ファイルを、サーバーの SharedFolder という名前の共有フォルダにアップロードしてみたいと思います。

$source = "c:\temp\hogehoge.txt"
$dest = "\\SERVERNAME\SharedFolder"
$user = "DOMAINNAME\USERNAME"
$pass = "PASSWORD"

$str = ConvertTo-SecureString $pass -AsPlainText -Force
$psc = New-Object System.Management.Automation.PsCredential($user, $str)
Start-BitsTransfer -Source $source -Destination $dest -Credential $psc -TransferType Upload 

 

 

参考までに。(認証部分はないですが)PowerShellからBitsadminを使うと下記のような感じです。

$source = "c:\temp\hogehoge.txt"
$dest = "\\SERVERNAME\SharedFolder"

bitsadmin /create /upload TestJob
bitsadmin /addfile TestJob $dest $source
bitsadmin /resume TestJob

 

認証部分に関しては「PSCredential 資格情報を作ってみる」をご覧下さい。

PSCredential 資格情報を作ってみる

by kusakari 23. 3月 2010 20:09

PowerShell からユーザーの資格情報をGUI無しで作成しようとした際に、少し調べましたのでメモとして残しておきます。

 

まずは、普通に「Get-Credential」で資格情報を作ってみたいとと思います。
試しに実行してみると、資格情報のウィンドウが表示され、正しい資格情報を入力すると下記のような感じになります。
2010323_184022_733

 

また、「-Credential」パラメーターのあとに、ユーザー名を文字列で付けると、資格情報ウィンドウにそのまま値が渡されます。
2010323_184211_734

 

ただ、パスワードに関しては、クリアテキスト(String型)では渡せないので、「ConvertTo-SecureString」で「System.Security.SecureString」の型にして渡します。

 

■サンプル

$user = "jyugemu" 
$pass = "password"

$str = ConvertTo-SecureString $pass -AsPlainText -Force 
$psc = New-Object System.Management.Automation.PsCredential($user, $str) 
Get-Credential -Credential $psc

 

■結果
2010323_19510_736

 

ちなに1行で書いてみるとこんな感じで...

ConvertTo-SecureString "Password" -AsPlainText -Force | % { New-Object System.Management.Automation.PSCredential("jyugemu", $_) } | % { Get-Credential $_ }

PowerShell から アプリケーションプール の設定

by kusakari 15. 3月 2010 23:05

PowerShellからアプリケーションプールの設定変更を行う例をいくつか挙げてみます。

環境は下記の通りになります。

  • IIS 7.5
  • PowerShell v2

 

以下、設定例です。 なお、ココでは「DefaultAppPool」に対して、設定を変更しています。
最初のGet-Itemで対象のアプリケーションプールを取得し、項目の設定を変更したら、Set-Itemにパイプを使って渡し設定の変更を反映させます。

 

■マネージパイプラインモードをクラシックに変更

$pool = Get-Item "IIS:\AppPools\DefaultAppPool"
$pool.managedPipelineMode = "Classic"
$pool | Set-Item 

 

■マネージパイプラインモードを統合に変更

$pool = Get-Item "IIS:\AppPools\DefaultAppPool"
$pool.managedPipelineMode = "Integrated"
$pool | Set-Item 

 

■32 ビット アプリケーションの有効化

$pool = Get-Item "IIS:\AppPools\DefaultAppPool"
$pool.enable32BitAppOnWin64 = $true
$pool | Set-Item

 

 

このプロパティ以外にも下記のコマンドなどから設定することが出来る項目を確認することが出来ます。

Get-Item "IIS:\AppPools\DefaultAppPool" | Get-Member

 

ちなみに、アプリケーションプールの作成や削除、開始、停止、リサイクルは基本的にWebAdministrationモジュールを追加することで、下記のようにコマンドレットがインポートされます。

作成: New-WebAppPool
削除: Remove-WebAppPool
開始: Start-WebAppPool
停止: Stop-WebAppPool
リサイクル: Restart-WebAppPool
状態: Get-WebAppPoolState

PowerShell から IIS 7.5 の 既定のドキュメント の設定

by kusakari 1. 3月 2010 21:33

IIS 7.5 の「既定のドキュメント」に対して、PowerShell からアクセスします。「既定のドキュメント」の設定を参照、変更するには、ヘルプで調べれば良いのですが、自分用のメモとしてまとめておきたかったので記録しておきます。

 

■環境
IIS 7.5
PowerShell 2.0

 

 

■モジュールの読み込み

Import-Module WebAdministration

詳しくは「PowerShell から IIS 7.5 を操作するための準備」をご覧下さい。

 

 

 

■参照
「Default Web Site」のサイトに対する、現在の「既定のドキュメント」の状態を確認する場合、下記のようなコマンドで確認することも出来ます。

$filter = "//defaultDocument/files/*"
$site   = "IIS:\Sites\Default Web Site"

Get-WebConfiguration -Filter $filter -PSPath $site | select value

結果は下記の図のようになります。
201031_194530_725

 

 

■追加
「Default Web Site」のサイトに対して、「index.php」を優先順位を 「-AtIndex 0」パラメーターで一番上にして「既定のドキュメント」に追加する場合、下記のようなコマンドでも追加出来ます。

$filter = "//defaultDocument/files"
$site   = "IIS:\Sites\Default Web Site"
$file   = "index.php"

Add-WebConfiguration -Filter $filter -PSPath $site -AtIndex 0 -Value @{value=$file}


結果は下記の図のようになります。
201031_201527_727

 

 

 

■削除
「Default Web Site」のサイトに対して、「Default.htm」を「既定のドキュメント」から削除する場合、下記のようなコマンドでも削除出来ます。

$site = "IIS:\Sites\Default Web Site"
$file = "Default.htm"

Remove-WebConfigurationProperty //defaultDocument -Name files -PSPath $site -AtElement @{value=$file}

Calendar

<<  7月 2010  >>
月曜火曜水曜木曜金曜土曜日曜
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

View posts in large calendar

RecentComments

Comment RSS