2014年6月25日水曜日

スタンドアロン環境のWindowsにアップデートを行う方法

ほかのマシンからWindows Update カタログへアクセスする
http://catalog.update.microsoft.com

検索窓にて対象OSの検索を行うと数が多すぎて表示しきれないので「分類」も一緒に検索するとよい

例:[Windows 7 セキュリティ問題の修正プログラム]
ちなみに分類の一覧は以下(上のほうが重要度高い気がする)
・セキュリティ問題の修正プログラム
・重要な更新
・修正プログラム集
・更新
・ServicePacks
・Drivers

検索後、適用させるパッチの横の「追加」をひとつひとつ押すか、「すべて追加」を押す

追加したら、右上の「バスケットの表示」を選択し「ダウンロード」を押す
ダウンロードするフォルダを選んだら、別タブが開きダウンロードが開始される。

ダウンロードしたファイルは以下スクリプトでまとめてインストールできる(はず)
http://se-25.blogspot.jp/2014/06/powershell.html

エクセルを別ウィンドウで開く

Windows7でOffice2010で実施

.xlsx
①レジストリエディタを開く(Win+R regedit)
②HKEY_CLASSES_ROOT\Excel.Sheet.12.\shellを右クリックして「新規」→「キー」適当な名前を入力(今回はRightClick)
③キーをダブルクリックして、値を入力「新しいウィンドウで開く(&W)」
④RightClickを右クリックして「新規」→「キー」名前を「command」
⑤キーをダブルクリックして、値を入力「"C:\Program Files (x86)\Microsoft Office\Office14\EXCEL.EXE" "%1"」(←エクセルの実行ファイル)

.xls
①レジストリエディタを開く(Win+R regedit)
②HKEY_CLASSES_ROOT\Excel.Sheet.8.\shellを右クリックして「新規」→「キー」適当な名前を入力(今回はRightClick)
③キーをダブルクリックして、値を入力「新しいウィンドウで開く(&W)」
④RightClickを右クリックして「新規」→「キー」名前を「command」
⑤キーをダブルクリックして、値を入力「"C:\Program Files (x86)\Microsoft Office\Office14\EXCEL.EXE" "%1"」(←エクセルの実行ファイル)

2014年6月17日火曜日

【PowerShellスクリプト】msu一括インストール

・同じフォルダ内にある更新パッチを全て適用
・適用前、適用後のインストール済みパッチ一覧を比較
・ログをイベントビューア形式で保存

---------------------------------------------------------------
Get-HotFix | format-list > before.txt

if (([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole(`
        [Security.Principal.WindowsBuiltInRole] "Administrator")) {
  "MSU"
  $c = 0;
  $a = dir *.msu;
  $a | % {
    "{0} / {1} {2}" -f (++$c), $a.length, $_.name;
    #start C:\Windows\System32\wusa.exe -argumentlist $_.name -wait
    start C:\Windows\System32\wusa.exe -argumentlist '/quiet','/norestart','/log:log_msu.evtx',$_.name -wait
    $?
  }
  "EXE"
  $c = 0;
  $a = dir *.exe;
  $a | % {
    "{0} / {1} {2}" -f (++$c), $a.length, $_.name;
    #start C:\Windows\System32\wusa.exe -argumentlist $_.name -wait
    start C:\Windows\System32\wusa.exe -argumentlist '/quiet','/norestart','/log:log_exe.evtx',$_.name -wait
    $?
  }



} else {
  '管理者権限がありません';
}

Get-HotFix | format-list > after.txt
diff $(Get-Content before.txt) $(Get-Content after.txt) > install_list.txt

$file1 = "log_msu.evtx"
$file2 = "log_exe.evtx"
$date = Get-Date -format yyyyMMdd
Rename-Item $file1 ($date+"_msu.evtx")
Rename-Item $file2 ($date+"_exe.evtx")


【TeraTermマクロ】自動ログイン

 ・マクロ起動時に接続先を一覧から選択(外部ファイル参照)
 ・パスワード初回入力後、暗号化して外部ファイルへ保存
 ・ログイン後ifconfighostnameを実行
 ・su -rootになる(パスワードは暗号化して外部ファイルへ保存)

 ・ログ収集開始(C:\teratermlog\YYYYmmddホスト名.log


;=========================================================
;接続先ホストリストを取得 
;iplist.txt内に接続先IPを記載

strdim HOST 10 ;配列を10作成、iplist.txt内のIP数が10を超える場合はその数字に変更
i = 0
fileopen fhandle 'iplist.txt' 0 ;fileopen <file handle> <filename> <append flag(0ならファイルの先頭)> 
while 1 ;iplist.txtの内容を配列に格納していく
filereadln fhandle iplist
if result=1 then
break
endif
HOST[i] = iplist
i = i+1
endwhile
;=======================
;接続先ホスト選択
listbox '接続するホストを選択してください' '接続先選択' HOST
if result >= 0 then
HOSTADDR = HOST[result]
else
end
endif
;=========================================================
; ユーザ名設定
USERNAME = 'user'
;=========================================================
; パスワードファイル指定
PASSFILE = 'password.dat'
;=========================================================
; パスワード取得
getpassword PASSFILE USERNAME PASSWORD

; コマンド組立て
COMMAND = HOSTADDR
strconcat COMMAND ':22 /ssh /2 /auth=password /user='
strconcat COMMAND USERNAME
strconcat COMMAND ' /passwd='
strconcat COMMAND PASSWORD

; 接続
connect COMMAND

; 接続判定1(接続出来ない場合はメッセージを表示しマクロ終了)
if result <> 2 then
    messagebox '接続できませんでした、終了します' '接続エラー'
    end
endif

; 接続判定2(接続して10秒以内にプロンプトが表示されない場合もマクロ終了)
timeout = 10
wait '$' '#'
if result = 0 then
    messagebox '10秒間応答がありませんでした、終了します' '接続エラー'
    end
endif
;=========================================================
;ログイン後の処理
SUPASSFILE = 'supassfile.dat'
getpassword SUPASSFILE 'su -' SUPASS ;file name var
sendln 'ifconfig eth0 | grep "inet addr:"'
wait '$'
sendln 'hostname'
wait '$'
sendln 'su -'
wait 'パスワード:' 'Password:'
sendln SUPASS
wait '#'
;=========================================================
;ログ収集
LOGFILE = 'C:\teratermlogs\
getdate LOG_NAME '%Y%m%d_&h.log'
FULLPATH = LOGFILE
strconcat FULLPATH LOG_NAME
logopen FULLPATH 1 1
;=========================================================
;; マクロ終了
end