====== PowerShell ====== ===== Tips ===== ==== 値を編集して出力 ==== [[http://mtgpowershell.blogspot.com/2010/11/select-object.html|◆集計プロパティ(Select-Object)]] PS > Get-WMIObject Win32_ServerFeature | Select {$_.Name + ":"} $_.Name + ":" ------------- ファイル サービスと記憶域サービス: SMB 1.0/CIFS ファイル共有のサポート: 列名を変更する。 PS > Get-WMIObject Win32_ServerFeature | Select @{name="name";expression={$_.Name + ":"}} name ---- ファイル サービスと記憶域サービス: SMB 1.0/CIFS ファイル共有のサポート: ==== IISのDefault Web Siteの値取得 ==== Default Web Siteの値を取得する PS > Get-ItemProperty 'IIS:\Sites\Default Web Site\' | Select * Default Web SiteのホームにあるASP内セッションプロパティの値を取得する。 PS > Get-WebConfiguration system.webServer/asp/session -Location 'Default Web Site' PS > Get-WebConfiguration -PSPath 'MACHINE/WEBROOT/APPHOST/Default Web Site' system.webServer/asp/session PS > Get-WebConfigurationProperty -Location 'Default Web Site' -Filter "system.webServer/asp/session" -Name "." PS > Get-WebConfigurationProperty -PSPath 'MACHINE/WEBROOT/APPHOST/Default Web Site' -Filter "system.webServer/asp/session" -Name "." ==== 二重引用符はエスケープ ==== VBScriptからPowerShellを呼び出す際に二重引用符が使用されている場合には、「\"」でエスケープする必要がある。 name = "DefaultAppPool2" command = "Get-WebConfiguration \""//*[@name='" & name & "']//.\""" info = "foreach { $_.attributes | Select name, value }" Sub SetDicItems(dic, command, info, delimiter) Dim exeCommand exeCommand = "powershell -nologo -command " & command & " | " & info Call SetDicStdOut(dic, exeCommand, delimiter) End Sub ------------------------------------------------------------------------ ' 標準出力からの出力項目をセット '------------------------------------------------------------------------ Sub SetDicStdOut(dic, exeCommand, delimiter) Dim exec, line, key, pos dic.RemoveAll() Set exec = wsh.Exec(exeCommand) exec.StdIn.Close() Do line = exec.StdOut.ReadLine() If Trim(line) <> "" Then pos = Instr(line, delimiter) If pos > 0 Then key = Trim(Mid(line, 1, pos-1)) If Not dic.Exists(key) Then dic.Add key, Trim(Mid(line, pos+1)) End If End If End If Loop While Not exec.Stdout.atEndOfStream Set exec = Nothing End Sub