2014年7月1日火曜日

Linuxユーザ一覧取得|/etc/passwdファイルを分割

設定書にユーザ一覧を記載するときに便利
エクセルでこんな感じにしたいとき向け

nameUIDGIDcommenthomeshel
root00root/root/bin/bash
hoge00hoge/hoge/bin/bash

# cd /tmp
# mkdir userlist
# cd userlist
# touch userlist.sh
# chmod 755 userlist.sh
# vi userlist.sh

cut -d : -f1 /etc/passwd > name.txt
cut -d : -f3 /etc/passwd > uid.txt
cut -d : -f4 /etc/passwd > gid.txt
cut -d : -f5 /etc/passwd > comment.txt
cut -d : -f6 /etc/passwd > home.txt
cut -d : -f7 /etc/passwd > shel.txt

# ./userlist.sh

必要に応じて
# tar cvf userlist.tar .
でホストOSに移動するなりなんなりして
各.txtをファイルを開いてコピーしてエクセルに貼り付け



ちなみにグループ一覧は
cut -d : -f1 /etc/group > name.txt
cut -d : -f3 /etc/group > gid.txt
cut -d : -f4 /etc/group > users.txt
こんな感じで





【一括実行】以下コピペ後vi起動したらuserlist.shの内容コピペして:wqするとtar化までやってくれる

cd /tmp ; mkdir userlist ; cd userlist ; touch userlist.sh ; chmod 755 userlist.sh ; vi userlist.sh ; ./userlist.sh ; tar cvf userlist.tar .


以上

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

2014年3月11日火曜日

VuGenで記録後、スクリプトが空になる問題

解決に向けて

http://www.jds.net.au/tech-tips/vugen-error-during-code-generation/
まずはここを参照してみる

だめなら次へ
  1. ソケットレベルの見直し(実行環境の設定→お気に入り→ソケットではなくWinInet)
  2. 動作確認されたブラウザか確認(基本的にはIEを使う)
  3. IEのツールバーをすべて無効にする
  4. TEMP、キャッシュ、閲覧履歴等すべて消す
  5. データ実行防止(DEP)を無効にする
  6. ウイルス対策を無効にする
  7. 別のユーザで試してみる(ユーザプロファイルが壊れていると発生する可能性あり)
  8. VuGen再インストール
  9. 記録オプション→詳細設定→以前の記録エンジンを使用(?)
参考:http://www.jds.net.au/tech-tips/how-to-fix-common-vugen-recording-problems/


2014年1月13日月曜日

【JAVA】入力した10進数を2進数で返す

import java.io.*;
public class tentwo{
public static void main(String[]args)throws IOException{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String line;
while((line = in.readLine()) != null){
//line = line.toUpperCase();
int i = Integer.parseInt(line);
System.out.println(Integer.toBinaryString(i));
}
}
}

2014年1月7日火曜日

TCP/IP

TCP/IPアーキテクチャ

アプリケーション層ートランスポート層ーインターネット層ーネットワークインターフェース層
 代表的な例:HTTP-TCP-IP-イーサネット


IPアドレス

8ビット×4=32ビット
 11000000.10101000.00000001.00001111
 192.168.1.15
 本来は2進数だがわかりやすくするために10進数に変換

  変換方法

   128-64-32-16-8-4-2-1
      0    0   0    0   0  0 0  0
   数字に応じて0を1に変換する
   例:128なら10000000
       1なら00000001
     100なら01100100
     255なら11111111

  ネットワークアドレス・ブロードキャストアドレス

    172.16.20.5のIPアドレスに255.255.252.0のサブネットマスクが割り当てられているときの
    ネットワークアドレス・ブロードキャストアドレスの求め方
      172.16.20.5  を2進数に変換 10101100.00010000.00010100.00000101
      255.255.252.0を2進数に変換  11111111.11111111.11111100.00000000
      論理積(00は0、01は0、11は1)10101100.00010000.00010100.00000000
      ├論理積結果を10進数に変換するとネットワークアドレス 172.16.20.0
      └論理積結果の後ろ0を全て1に置き換えて10進数に変換するとブロードキャストアドレス172.16.23.255