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

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 資格情報を作ってみる」をご覧下さい。
73a5a2fa-4b65-46f8-bb7a-85761df1bdb5|0|.0
Category: PowerShell
Tags: BITS
by kusakari
23. 3月 2010 20:09
PowerShell からユーザーの資格情報をGUI無しで作成しようとした際に、少し調べましたのでメモとして残しておきます。
まずは、普通に「Get-Credential」で資格情報を作ってみたいとと思います。
試しに実行してみると、資格情報のウィンドウが表示され、正しい資格情報を入力すると下記のような感じになります。

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

ただ、パスワードに関しては、クリアテキスト(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
■結果

ちなに1行で書いてみるとこんな感じで...
ConvertTo-SecureString "Password" -AsPlainText -Force | % { New-Object System.Management.Automation.PSCredential("jyugemu", $_) } | % { Get-Credential $_ }
77de2d61-cc3c-4c1f-8c39-c70cdbeb85a3|0|.0
Category: PowerShell
Tags:
by kusakari
15. 3月 2010 23:05
PowerShellからアプリケーションプールの設定変更を行う例をいくつか挙げてみます。
環境は下記の通りになります。
以下、設定例です。 なお、ココでは「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 |
aa32b7f1-c09b-4363-a5c2-13521e260371|0|.0
Category: IIS, PowerShell
Tags:
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
結果は下記の図のようになります。

■追加
「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}
結果は下記の図のようになります。

■削除
「Default Web Site」のサイトに対して、「Default.htm」を「既定のドキュメント」から削除する場合、下記のようなコマンドでも削除出来ます。
$site = "IIS:\Sites\Default Web Site"
$file = "Default.htm"
Remove-WebConfigurationProperty //defaultDocument -Name files -PSPath $site -AtElement @{value=$file}
f67c5543-42af-4c76-91df-96d62cd2e07d|0|.0
Category: IIS, PowerShell
Tags: