25 posts categorized "Script"

Nov 18, 2008

音を鳴らすバッチ

何かを監視していて、例えば敷居位置を超えた場合に用意した”バッチを
起動させる”。この時、携帯電話などにメールを送信する場合が
多いと思いますが、セキュリティ対策でSMTPが使えないと設定できません。
単純にアラートとして音が鳴るようなバッチを作成しました。

Alert.bat
----
set LOG-FILE=error-log.txt

date /t >> %LOG-FILE%
time /t >> %LOG-FILE%
echo. >> %LOG-FILE%

"C:\WINDOWS\Media\Windows XP Error.wav"
----

もしくは、

Alert2.bat
----
set LOG-FILE=error-log.txt

date /t >> %LOG-FILE%
time /t >> %LOG-FILE%
echo. >> %LOG-FILE%

:LOOP
"C:\WINDOWS\Media\Windows XP Error.wav"
goto LOOP
----

--動作環境
OS: WindowsXP SP3 Japanese
wavファイル関連付け: WindowsMediaPlayer 10

最初、gotoを使用し、強引にループを作ると音が鳴り続けるのかと
思ったのですが、WMP(WindowsMediaPlayer)は音声再生後、アプリが
終了せずそのまま止まります。アプリを終了するとループに戻るのですが、
自動では1度再生されたら止まります。
そこで、WMPの設定を変更しました。

--WMP 連続再生設定
WMPメニュー[再生] - "連続再生"をオンにします。

すると、音声が連続で再生され続けます。
バッチAlert.batで動作させることができました。

*iTune等を導入している場合、wavファイルの関連付けが変更されている
場合があります。上記のバッチを動作させるにはwavファイルをWMPに関連付け
することを推奨します。


  ブログランキング

| | Comments (0) | TrackBack (0)

Jul 06, 2008

ユーザーデータ バックアップバッチ

WindowsXPにおいて、ログインしているユーザーのデータバックアップを
するバッチです。
タスク機能を使い、定期的に実行したいのですが、ユーザー毎に実行ユーザーを
変更できないため、
1.マニュアルにて実行
2.ログオンバッチとして登録
3.グループポリシーにて、ログオン・ログオフ時に実行

を組み合わせて使おうかと考えています。
1台のPCを1人のみ使う場合は問題ないのですが。

-----
@echo off

REM ***********************************************
REM Initialize
REM ***********************************************

set BackUP-DRIVE=d:
set IME-VER=IMJP9_0
set UPDATE=update.txt

REM ***********************************************
REM Change to current folder
REM ***********************************************

%BackUP-DRIVE%
cd Backup

REM ***********************************************
REM New create a User folder
REM ***********************************************

if not exist %USERNAME% mkdir %USERNAME%
cd %USERNAME%

REM ***********************************************
REM Check to Back up folder
REM ***********************************************

if not exist "My Documents" mkdir "My Documents"
if not exist "Favorites" mkdir "Favorites"
if not exist "デスクトップ" mkdir "デスクトップ"
if not exist "Firefox" mkdir "Firefox"
if not exist "IME" mkdir "IME"

REM ***********************************************
REM Back up file
REM ***********************************************

xcopy "%USERPROFILE%\My Documents" "My Documents" /s /e /c /v /h /d /y
xcopy "%USERPROFILE%\Favorites" "Favorites" /s /e /c /v /h /d /y
xcopy "%USERPROFILE%\デスクトップ" "デスクトップ" /s /e /c /v /h /d /y
xcopy "%USERPROFILE%\Application Data\Mozilla\Firefox" "Firefox" /s /e /c /v /h /d /y
xcopy "%USERPROFILE%\Application Data\Microsoft\%IME-VER%\*" "IME" /s /e /c /v /h /d /y

REM ***********************************************
REM Get a Date & Time
REM ***********************************************

echo Last update day and time > %UPDATE%
date /t >> %UPDATE%
time /t >> %UPDATE%

REM ***********************************************
REM Change to ACL for user folder
REM ***********************************************

cd ..
cacls %USERNAME% /p %USERNAME%:f Administrator:f /t /c
-----

例)
このバッチをD:\Backup(任意のフォルダ)に保存して実行してみてください。


  ブログランキング

| | Comments (0) | TrackBack (0)

Jul 05, 2008

net user を使ったユーザー登録

Windowsにおいて、net userコマンドを使って複数のユーザーを追加する
場合のバッチです。ドメインユーザーの場合は、
/domain hoge_domain
を追加します。

--決まったユーザー名をまとめて登録する場合
--------
@echo

set USER01=***
set USER02=***
set USER03=***
set USER04=***

net user /add %USER01% welcom /passwordchg:yes /scriptpath:logon.bat
net user /add %USER02% welcom /passwordchg:yes /scriptpath:logon.bat
net user /add %USER03% welcom /passwordchg:yes /scriptpath:logon.bat
net user /add %USER04% welcom /passwordchg:yes /scriptpath:logon.bat

net group "Power Users" %USER01% %USER02% %USER03% %USER04% /add
--------


--対話式にて登録する場合
--------
@echo off

:MENU

cls

echo ################################################
echo.
echo  Additional new User bat
echo.
echo  If you exit a this bat, entry input a "end"
echo.
echo ################################################

SET/P USER-NAME="Pleae input a new User name ? "

IF %USER-NAME% == end GOTO END

net user /add %USER-NAME% welcome /passwordchg:yes /scriptpath:logon.bat
net group "Power Users" %USER-NAME% /add

echo Complited create a [%USER-NAME%]
echo Please enter any key. go to MENU
pause > nul
goto MENU

:END
exit
--------

双方共に、ディフォルトパスワードが"welcome"になっていますので、
ご利用時にはご注意を!!


  ブログランキング

| | Comments (1) | TrackBack (0)

Mar 28, 2008

ExcelとbatでDisk容量チェック

ExcelのVBAとDOSコマンド"dir"と"find"を駆使して、Windows Serverの
Disk空き容量を確認及び記録するシステムを作りました。

--ファイルPath
D:\disk_check.xls    このエクセルファイルから実行します。
D:\disk_check.bat    各サーバーの空き容量をdisk.txtへ書き出し
D:\disk.txt        出力ファイル

disk_check.bat
-----
@echo off

set USER-NAME=HogeUser
set PASSWD=hogehoge
set DRIVE=z:
set OUTFILE="D:\disk.txt"

set SERVER1=\\hoge_server01\group
set SERVER2=\\hoge_server02\group
set SERVER3=\\hoge_server03\group

if exist %DRIVE% net use /delete %DRIVE%

net use %DRIVE% %SERVER1% %PASSWD% /user:%USER%
dir %DRIVE% | find "バイトの空き領域" > %OUTFILE%
net use /delete %DRIVE%

net use %DRIVE% %SERVER2% %PASSWD% /user:%USER%
dir %DRIVE% | find "バイトの空き領域" >> %OUTFILE%
net use /delete %DRIVE%

net use %DRIVE% %SERVER3% %PASSWD% /user:%USER%
dir %DRIVE% | find "バイトの空き領域" >> %OUTFILE%
net use /delete %DRIVE%

echo. >> %OUTFILE%
time /t >> %OUTFILE%
date /t >> %OUTFILE%

exit
-----


disk_check.xls
-------------------------------
Private Sub CommandButton1_Click()

   Dim myID As Double
   myID = Shell("D:\disk_check.bat", vbNormalFocus)

End Sub
-------------------------------
Private Sub CommandButton2_Click()

    Worksheets("calc").Activate

    Workbooks.OpenText Filename:="D:\disk.txt", Origin:=932, StartRow:=1, _
        DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 1), Array(11, 1), Array(16, 1) _
        , Array(33, 1), Array(49, 1)), TrailingMinusNumbers:=True
    Windows("disk.txt").Activate
    Worksheets("disk").Range("D1:D4").Select
    Selection.Copy
    Windows("disk_check.xls").Activate
    Range("B4").Select
    ActiveSheet.Paste
    Windows("disk.txt").Activate
    Worksheets("disk").Range("A6").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("disk_check.xls").Activate
    Range("B2").Select
    ActiveSheet.Paste
    Windows("disk.txt").Activate
    Worksheets("disk").Range("A7").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("disk_check.xls").Activate
    Range("B1").Select
    ActiveSheet.Paste
    Windows("disk.txt").Activate
    ActiveWindow.Close

    Windows("disk_check.xls").Activate
    Worksheets("Record").Activate

    With Worksheets("Record")
        .Range("A65536").End(xlUp).Offset(1, 0).Value = Worksheets("calc").Range("B1")
        .Range("A65536").End(xlUp).Offset(0, 1).Value = Worksheets("calc").Range("B2")
        .Range("A65536").End(xlUp).Offset(0, 2).Value = Worksheets("calc").Range("E4")
        .Range("A65536").End(xlUp).Offset(0, 4).Value = Worksheets("calc").Range("E5")
        .Range("A65536").End(xlUp).Offset(0, 6).Value = Worksheets("calc").Range("E6")
        .Range("A65536").End(xlUp).Offset(0, 8).Value = Worksheets("calc").Range("E7")
    End With

    Worksheets("calc").Activate

End Sub
-------------------------------


  ブログランキング

| | Comments (0) | TrackBack (0)

Jul 19, 2007

コマンド・プロンプトでイベント・ログを表示する

Windows XP ProfessionalやWindows Server 2003では、
コマンド・プロンプトで動作する、"eventquery.vbs"というVBScriptが
利用できます。
このスクリプトを利用すると、イベント・ログに記録されているログを
他のマシンのイベント・ログ等をすべて収集して表示することができます。

Get_eventlog.bat
--------------------
@echo off

REM ####################################
REM   for Evening check
REM ####################################

REM ####################################
REM   Environment variable
REM ####################################

set VBS="c:\windows\system32\eventquery.vbs"
set DATE="07/19/2007,08:00:00AM"

REM DATE="mm/dd/yyyy,hh:mm:ssPM" mm/dd/yyyyを変更する
REM 指定した日付の時間以降を表示

REM ####################################
REM   Check the Server
REM ####################################

REM  Option
REM --------------------------------------------------------------
REM  /s Server_name     Serverを指定
REM  /fi "type eq warning"      ”警告”のみの抽出するフィルタ
REM  /fi "datetime gt %DATE%"   %DATE%以降のみ抽出するフィルタ
REM  /fo list   リスト形式で結果を出力
REM  /v         詳細を表示


cscript %VBS% /s hoge_server01 /fi "type eq warning" /fi "datetime gt %DATE%" /fo list /v | more
cscript %VBS% /s hoge_server01 /fi "type eq error" /fi "datetime gt %DATE%" /fo list /v | more

cscript %VBS% /s hoge_server02 /fi "type eq warning" /fi "datetime gt %DATE%" /fo list /v | more
cscript %VBS% /s hoge_server02 /fi "type eq error" /fi "datetime gt %DATE%" /fo list /v | more
--------------------


eventquery.vbs  ヘルプ
----------------
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

EVENTQUERY.vbs [/S システム [/U ユーザー名 [/P パスワード]]] [/FI フィルタ]
               [/FO 形式] [/R 範囲] [/NH] [/V] [/L ログ名 | *]

説明:
    EVENTQUERY.vbs スクリプトにより、管理者は 1 つ以上のイベント
    ログ中のイベントとイベントのプロパティを一覧表示できます。

パラメータ一覧:
    /S     サーバー             接続先のサーバーを指定します。

    /U   [ドメイン\]ユーザー  コマンドが実行されるユーザー
                                のコンテキストを指定します。

    /P     パスワード      指定のユーザー コンテキストの
                           パスワードを指定します。

    /V                     出力に詳細な情報を表示するように
                           指定します。

    /FI    フィルタ        クエリによりフィルタして取り込むまたは
                           除外するイベントの種類を指定します。

    /FO    形式            出力を表示する形式を指定します。
                           有効な形式は "TABLE"、"LIST" および
                           "CSV" です。

    /R     範囲            一覧表示するイベントの範囲を指定します。
                           有効な値:
                               'N' - 最近の N 個のイベントを一覧表示します。
                              '-N' - 最古の N 個のイベントを一覧表示します。
                           'N1-N2' - N1 から N2 のイベントを一覧表示します。

    /NH                    "列ヘッダ" が出力に表示されないように指定しま
                           す。
                           "TABLE" および "CSV" の形式にのみ有効です。

    /L     ログ名          照会するログを指定します。

    /?                     このヘルプまたは使用法を表示します。

    有効なフィルタ 使用できる演算子    有効な値
    -------------  ------------------  ------------
    DATETIME       eq,ne,ge,le,gt,lt   mm/dd/yy(yyyy)、hh:mm:ssAM(/PM)
    TYPE           eq,ne               ERROR、INFORMATION、WARNING、
                                       SUCCESSAUDIT, FAILUREAUDIT
    ID             eq,ne,ge,le,gt,lt   負でない整数
    USER           eq,ne               文字列
    COMPUTER       eq,ne               文字列
    SOURCE         eq,ne               文字列
    CATEGORY       eq,ne               文字列

注意: フィルタ "DATETIME" は "開始日- 終了日" のように指定可能です。
      この形式では "eq" 演算子のみ利用可能です。

例:
    EVENTQUERY.vbs
    EVENTQUERY.vbs /L system 
    EVENTQUERY.vbs /S system /U user /P password /V /L *
    EVENTQUERY.vbs /R 10 /L Application /NH
    EVENTQUERY.vbs /R -10 /FO LIST /L Security
    EVENTQUERY.vbs /R 5-10 /L "DNS Server"
    EVENTQUERY.vbs /FI "Type eq Error" /L Application
    EVENTQUERY.vbs /L Application
            /FI "Datetime eq 06/25/00,03:15:00AM-06/25/00,03:15:00PM"
    EVENTQUERY.vbs /FI "Datetime gt 08/03/00,06:20:00PM"
            /FI "Id gt 700" /FI "Type eq warning" /L System
    EVENTQUERY.vbs /FI "Type eq error OR Id gt 1000 "
----------------



--参考ページ
http://www.atmarkit.co.jp/fwin2k/win2ktips/333eventquery/eventquery.html
http://www.microsoft.com/technet/prodtechnol/windowsserver2003/ja/library/ServerHelp/68672494-7700-4cbf-8392-4b6ef87b8749.mspx?mfr=true


  ブログランキング

| | Comments (0) | TrackBack (0)

Nov 25, 2006

簡易版 Backup Batch

簡易版バックアップバッチを作成してみました。(For Windows)

--条件
backup.batの保存先: D:\backup.bat
バックアップ元フォルダ: D:\Share
バックアップ先フォルダ: E:\Share_Back
バッチ実行時間: 09:00 - 23:00 まで毎時ちょうど
スケジュール登録バッチ: add_schedule.bat
スケジュール削除バッチ: delete_schedule.bat
xcopyのオプション /d を使用しているため、変更のあったファイルのみが
コピー対象となります。

backup.bat
----
@echo off

set SORCE=D:\Share
set DIST=E:\Share_Back
set LOG=E:Share_Back\batch_log.txt

if not exist %DIST% mkdir %DIST%

xcopy %SORCE% %DIST% /s /e /c /v /h /d /y >> %LOG%

exit
----

add_schedule.bat
----
set BATCH=D:\backup.bat

at 09:00 /every:M,T,W,Th,F,S,Su %BATCH%
at 10:00 /every:M,T,W,Th,F,S,Su %BATCH%
at 11:00 /every:M,T,W,Th,F,S,Su %BATCH%
at 12:00 /every:M,T,W,Th,F,S,Su %BATCH%
at 13:00 /every:M,T,W,Th,F,S,Su %BATCH%
at 14:00 /every:M,T,W,Th,F,S,Su %BATCH%
at 15:00 /every:M,T,W,Th,F,S,Su %BATCH%
at 16:00 /every:M,T,W,Th,F,S,Su %BATCH%
at 17:00 /every:M,T,W,Th,F,S,Su %BATCH%
at 18:00 /every:M,T,W,Th,F,S,Su %BATCH%
at 19:00 /every:M,T,W,Th,F,S,Su %BATCH%
at 20:00 /every:M,T,W,Th,F,S,Su %BATCH%
at 21:00 /every:M,T,W,Th,F,S,Su %BATCH%
at 22:00 /every:M,T,W,Th,F,S,Su %BATCH%
at 23:00 /every:M,T,W,Th,F,S,Su %BATCH%
----

delete_schedule.bat
----
at /delete /yes
----


←クリック一票

| | Comments (0) | TrackBack (0)

Oct 18, 2006

アカウントコントロール バッチ

アクティブディレクトリ管理をしている環境にて
アカウントの操作(アカウントの有効・無効、パスワード変更、ステータス確認)を
行うメニュー付きバッチを作成しました。

Account.bat
----
@ECHO OFF

:INITIALIZATION

SET USER_NAME=%1
SET PASSWD=%2

:MENU

cls
SET CHECK=
ECHO ################################
ECHO.
ECHO   Acoount control MENU
ECHO.
ECHO   1. Account Enable
ECHO   2. Account Disable
ECHO   3. Password change
ECHO   4. Status check
ECHO   5. Exit
ECHO.
ECHO   User name: %USER_NAME%
ECHO.
ECHO ################################

SET/P CHECK="Pleae choice number [1] or [2] or [3] or [4] or [5]
[%CHECK%]:"

IF %CHECK% == GOTO END
IF %CHECK% == 1 GOTO 1AEnable
IF %CHECK% == 2 GOTO 2ADisable
IF %CHECK% == 3 GOTO 3PChange
IF %CHECK% == 4 GOTO 4SCheck
IF %CHECK% == 5 GOTO 5END

:1AEnable
net user %USER_NAME% /active:yes /domain
echo Please "Enter" back to MENU
PAUSE > nul
GOTO MENU

:2ADisable
net user %USER_NAME% /active:no /domain
echo Please "Enter" back to MENU
PAUSE > nul
GOTO MENU

:3PChange
if %PASSWD% == "" go to ERROR
net user %USER_NAME% %PASSWD% /active:yes /domain
echo Please "Enter" back to MENU
PAUSE > nul
GOTO MENU

:4SCheck
net user %USER_NAME% /domain
echo Please "Enter" back to MENU
PAUSE > nul
GOTO MENU

:5END
echo If you push "Enter" it's fine
PAUSE > nul
cls
exit

:ERROR
echo Please check your input Argument
PAUSE > nul
----

←クリック一票

| | Comments (0) | TrackBack (0)

Aug 08, 2006

Windows ドメインのアカウントのロック解除 (2)

Windows2003 Activedirectory 環境において、ドメインユーザーのアカウントロックを
解除するスクリプトです。
しかし、勉強中のためou及びdcの指定の仕方がいまいち分かりません、、、

Unlock_ADUser2003.vbs
----
Dim UserName, Title

Title = "Unlock_ADUser2003"
UserName = InputBox("Enter the user's login name that you want to unlock:", Title, "")


Set objUser = GetObject _
("LDAP://cn="& UserName &",ou=manager,dc=hogehoge,dc=com")
objUser.IsAccountLocked = False
objUser.SetInfo


If err.number = 0 Then
Wscript.Echo "The Account Unlock Failed. Check that the account is, in fact, locked-out."
Else
Wscript.Echo "The Account Unlock was Successful"
End if
----


--参考ページ
http://www.microsoft.com/japan/technet/scriptcenter/scripts/ad/users/status/usstvb07.mspx


←クリック一票

| | Comments (0) | TrackBack (0)

Aug 07, 2006

Windows ドメインのアカウントのロック解除

Windows2000にて、ドメインのアカウントのロックを解除するスクリプトです。

Unlock_ADUser.vbs
----
Dim UserName, DomainName, Title

Title = "Unlock_ADUser"
UserName = InputBox("Enter the user's login name that you want to unlock:", Title, "")
DomainName = InputBox("Enter the domain name in which the user account exists:", Title, "")

Set UserObj = GetObject("WinNT://"& DomainName &"/"& UserName &"")
If UserObj.IsAccountLocked = -1 then UserObj.IsAccountLocked = 0
UserObj.SetInfo

If err.number = 0 Then
Wscript.Echo "The Account Unlock Failed. Check that the account is, in fact, locked-out."
Else
Wscript.Echo "The Account Unlock was Successful"
End if
----


--参考図書
WINDOWSサーバー HACKS


←クリック一票

| | Comments (0) | TrackBack (0)

Aug 03, 2006

使用者名及び会社名の変更 WSH

Windowsをインストールする際に入力する”使用者名”と”会社名”ですが、
レジストリに書き込まれています。
WSHを使って対話式で変更するスクリプトを作成しました。


Register_name_change.vbs
----
Dim Prompt, Title, WshShell, OwnName, OrgName
set WshShell = WScript.CreateObject("WScript.Shell")

' get Owner name
Prompt = "Please input Owner name "
Title = "Change Rerister Name"
OwnName = InputBox(Prompt, Title, "Owner name")

' get Organization name
Prompt = "Please input Organization name"
OrgName = InputBox(Prompt, Title, "Organization name")

' set these in the registry
WshShell.RegWrite "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\RegisteredOwner", OwnName, "REG_SZ"
WshShell.RegWrite "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\RegisteredOrganization", OrgName, "REG_SZ"
----


←クリック一票

| | Comments (0) | TrackBack (0)

Jul 29, 2006

ドライブ名を変更する

Windowsにおいて、特にWindowsXPではネットワークドライブに接続した場合、
ドライブ名が非常に長くなることがあります。
例) File Server01\Users\hogehoge (H:) など

簡単にドライブ名を変更するスクリプトです。

drivename_change.vbs
----
mDrive = "drive_letter"
Set oShell = CreateObject("Shell.Application")
oShell.NameSpace(mDrive).Self.Name = "Drive_Name"
----
変更するドライブを "drive_letter"に exsample "e:\"
ドライブ名を "Drive_Name"に exsample "Net drive"
に変更してください。


--例) g及びhドライブはファイルサーバーに接続しているとする
mapping_drivename_change.vbs
----
mDrive = "g:\"
Set oShell = CreateObject("Shell.Application")
oShell.NameSpace(mDrive).Self.Name = "Group drive"

mDrive = "h:\"
Set oShell = CreateObject("Shell.Application")
oShell.NameSpace(mDrive).Self.Name = "User drive"
----


--参考図書
WINDOWSサーバー HACKS


←クリック一票

| | Comments (0) | TrackBack (0)

Jul 28, 2006

自動ログイン

Windows2000及びWindowsXPにおいて、下記のレジストリを変更すると
指定したユーザーにて起動時、自動ログインをします。

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\

AutoAdminLogon 値:1
DefaultDomainName 値:ドメイン名
DefaultUserName 値:ユーザー名
DefaultPassword 値:パスワード

これらをWSHを使ってスクリプト化すると下記の通りです。

auto-logon.vbs 
----
Dim Prompt, WshShell, UserName, UserPasswd, UserDomain
set WshShell = WScript.CreateObject("WScript.Shell")

' get user name
Prompt = "ユーザー名を入力してください"
UserName = InputBox(Prompt, Title, "")

' get password
Prompt = "パスワードを入力してください " & UserName
UserPasswd = InputBox(Prompt, Title, "")

' get domain
Prompt = "ドメイン名を入力してください " & UserName
Userdomain = InputBox(Prompt, Title, "")

' set these in the registry
WshShell.RegWrite "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\AutoAdminLogon","1","REG_SZ"
WshShell.RegWrite "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\DefaultDomainName", UserDomain, "REG_SZ"
WshShell.RegWrite "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\DefaultUserName", UserName, "REG_SZ"
WshShell.RegWrite "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\DefaultPassword", UserPasswd, "REG_SZ"

' ensure the change is persistent!
WshShell.RegWrite "HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\ForceAutoLogon", "1", "REG_SZ"
----

no-auto-logon.vbs (自動ログオン キー削除)
----
Option Explicit
On Error Resume Next

Dim Prompt, WshShell
set WshShell = WScript.CreateObject("WScript.Shell")

' delete the relevant keys
WshShell.RegDelete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\AutoAdminLogon"
WshShell.RegDelete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\DefaultDomainName"
WshShell.RegDelete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\DefaultUserName"
WshShell.RegDelete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\DefaultPassword"
----

なお、WSHは下記のページより最新版をインストールしておきましょう。

--Windows Script
http://www.microsoft.com/japan/msdn/scripting/default.asp


--参考図書
WINDOWSサーバー HACKS


←クリック一票

| | Comments (0) | TrackBack (0)

Jun 19, 2006

WMI Code Creator

WMI(Windows Management Instrumentation)とは
Windowsシステムを管理するためのインターフェイスです。
WSHスクリプトなどから呼び出すことで、
Windowsの管理などを実行できます。

テキストエディタ等で作成することは可能ですが、
クラスやプロパティを知らなければいけません。
WMI Code Creatorは、Microsoftが無償公開している
ツールで、スクリプトの雛形を自動生成してくれます。

--WMI Code Creator v1.0 [英語]
http://www.microsoft.com/downloads/details.aspx?familyid=2CC30A64-EA15-4661-8DA4-55BBC145C30E&displaylang=en

対応OS:Windows2000, WindowsXP, Windows2003 Server
必須環境:.NET Framework1.1以上
ソースコード言語:C#、Visual Basic Script、Visual Basic.NET


--参考ページ
http://www.atmarkit.co.jp/fwin2k/win2ktips/756wmicreator/wmicreator.html


←クリック一票

| | Comments (0) | TrackBack (0)

May 22, 2006

バックアップ USBメモリ

価格も手ごろになってきた”USBメモリ”を使用したバックアップ
システムを作成しました。
USBメモリをUSBポートに挿すだけでMy Documents以下のファイルを
コピーするバッチです。

Backup_USB.bat
----
@echo off

if not exist Backup mkdir Backup

xcopy "%USERPROFILE%\My Documents" Backup /s /e /c /v /h /d /y

exit
----

自動で起動するようにautorun.infも作成します。
autorun.inf
----
[autorun]
open=Backup_USB.bat
----

上記2つのファイルをUSBメモリ直下に作成します。

しかし、挿すだけで自動でBackup_USB.batが起動しません、、、
とりあえずBackup_USB.batをマニュアルで実行させました。

Backup配下に日付フォルダを作成する場合
Backup_USB_d.bat
----
@echo off

if not exist Backup mkdir Backup
cd Backup

if not exist %Date:~0,4%-%Date:~5,2%-%Date:~8,2% mkdir %Date:~0,4%-%Date:~5,2%-%Date:~8,2%
cd %Date:~0,4%-%Date:~5,2%-%Date:~8,2%

xcopy "%USERPROFILE%\My Documents" Backup /s /e /c /v /h /d /y
----

現状、1GのUSBメモリが大体8,000円台で購入可能です。
1つあってもよい外部デバイスなのではないでしょうか。
ただし、会社での使用を考える場合は個人情報保護法に抵触しないか、
また情報漏えいのリスクを考えましょう。

←クリック一票

| | Comments (2) | TrackBack (0)

May 18, 2006

バックアップ 日付フォルダ

日付フォルダを作成し、その中にMy Documentsを保存するバッチ
です。
ヒストリカルにデータ保存をする際に最適かと思われます。

Backup.bat
-----
REM Folder name is YYYY-MM-DD

z:
if not exist Backup mkdir Backup
cd Backup

if not exist %Date:~0,4%-%Date:~5,2%-%Date:~8,2% mkdir %Date:~0,4%-%Date:~5,2%-%Date:~8,2%
cd %Date:~0,4%-%Date:~5,2%-%Date:~8,2%

xcopy "%USERPROFILE%\My Documents" . /s /e /c /v /h /d /y

exit
-----

z: 保存先のドライブ名です。
%Date:~0,4% コマンド"date /t"の0桁目から4文字選択


上記バッチファイルを実行すると実際には
x:\Backup\2006-05-18\ 配下にファイルがコピーされます。


←クリック一票

| | Comments (0) | TrackBack (0)

Apr 09, 2006

ログインユーザー判別 バッチ

バッチにてログインユーザーごとに処理を選択するためには

----
@echo off

if exist "%USERNAME% == hoge1" go to hoge
if exist "%USERNAME% == hoge2" go to hoge
if exist "%USERNAME% == hoge3" go to hoge
if exist "%USERNAME% == hoge4" go to hoge
go to :END

:hoge
net use g: \\hogeserver\share

:END
----

ログイン名がhoge1~hoge4である場合、
ラベル"hoge"の処理を行う。


←クリック一票

| | Comments (0) | TrackBack (0)

Apr 06, 2006

最近使ったファイル 削除バッチ

WindowsXPにおいて、”最近使ったファイル”を削除するバッチです。
場合によっては他の人に見られたくなかったりしませんか?

file name: recent_dell.bat
----
@echo off

echo Recentフォルダ内を削除します。

pause > nul

del "C:\Documents and Settings\%USERNAME%\Recent\*" /F /S
----

上記の通り、最近使ったファイルは
C:\Documents and Settings\%USERNAME%\Recent 配下に保存されています。
(エクスプローラーの表示は”最近使ったファイル”)
バッチファイルをログイン、ログアウト時に起動させると良いかも
しれません。

また、タスクバーのプロパティより、スタートメニュー非表示設定変更も
可能です。


←クリック一票

| | Comments (0) | TrackBack (0)

Feb 20, 2006

お気に入り Favoritesのバックアップ

"マイドキュメント"のバックアップは行っても、意外と
忘れがちなのが"お気に入り"のバックアップ。
意識せずに別のドライブにコピーするよう、下記のバッチを
ログイン、ログオフ時に実行するとそこそこバックアップに
なるのではないでしょうか。
このバッチを書くにあたり不思議だったのは、エクスプローラーで
表示されるフォルダ名は”お気に入り”なのにパスに表示される
フォルダ名は”Facorites”。ふ・し・ぎ

favo_back.bat
----
if not exist Favorites mkdir Favorites

xcopy "%USERPROFILE%\Favorites" H:\Favorites /s /e /c /h /d /i /y
----

/s サブディレクトリをコピー
/e サブディレクトリが空であってもコピー
/c エラーが発生してもコピーを続ける
/h 隠し・システムファイルもコピー
/d 送信側の日付が新しいものだけコピー
/i 受信側をディレクトリとしてコピー
/y 上書き確認を無視する
*Hドライブにコピーしています


←クリック一票

| | Comments (0) | TrackBack (0)

Dec 12, 2005

Auto FTP put for Linux

LinuxにおいてFTPを自動で走らせるスクリプトです。
これを応用すればファイルのバックアップにも使えそうです。

# vi /usr/bin/ftp_put.sh
----
## ftp script put
ftp -i -v -n ftp.hogeserver.com << END
user hoge hogehoge
cd mrtg/local
lcd local
ascii
mput *.html
cd images
lcd images
binary
mput *.png

cd ../../kuro
lcd ../../kuro
ascii
mput *.html
cd images
lcd images
binary
mput *.png

quit
END
----
ID:hoge
Passwd:hogehoge

--自動実行させるためにcronに登録します。
下記は3時間おきにアップデートするスケジュールです。
# vi /etc/crontab
----
0 9 * * * root /usr/bin/ftp_put.sh
0 12 * * * root /usr/bin/ftp_put.sh
0 15 * * * root /usr/bin/ftp_put.sh
0 18 * * * root /usr/bin/ftp_put.sh
0 21 * * * root /usr/bin/ftp_put.sh
----


←クリック一票

| | Comments (0) | TrackBack (0)

Nov 27, 2005

FTP 自動化 for Linux

Linuxにおいて、自動でFTPをし、access_logファイルをGetする
スクリプトを作成しました。

# vi ftp_get.sh
----
#!/bin/sh

## log setting
LOGDIR=/var/log
LOG=$LOGDIR/ftp_get.log

## ftp script
ftp -i -v -n FTP_server_name << END
user User_name Password
cd /accesslog/
ascii
mget *.log
quit
END

## log writting
echo `date` get complete >>$LOG
----

# chmod 711 ftp_get.sh

--実行
# ./ftp_get.sh


--参考ページ
http://sonic64.com/2003-12-01.html
http://www.linux.or.jp/JM/html/netkit/man1/ftp.1.html


←クリック一票

| | Comments (0) | TrackBack (0)

Nov 20, 2005

マルチキャストPing for Windows

Windowsにおいて、ある範囲のIPに対して順次Pingをするための
バッチ。

条件:192.168.0.1〜192.168.0.254までPing
結果をarp.logへ書き出す

ipusecheck.bat
----
for /l %%i in (1,1,254) do ping -w 1 -n 1 192.168.0.%%i && arp -a 192.168.0.%%i >> arp.log
----

for /l %%i in (1,1,254)
変数iを1〜254までインクリメントする。

ping -w 1 -n 1 192.168.0.%%i
-w 待ち時間1秒 -n 一度だけ実行

arp -a 192.168.0.%%i >> arp.log
arpの結果をarp.logへリダイレクトする。

--出力結果を確認する
> findstr dynamic arp.log
192.168.0.104 00-13-21-5e-40-77 dynamic
192.168.0.105 00-11-85-65-39-78 dynamic
192.168.0.108 00-13-21-5d-ca-79 dynamic
192.168.0.110 00-13-21-0e-f4-80 dynamic
192.168.0.116 00-13-21-d0-95-81 dynamic


--参考ページ
http://www.atmarkit.co.jp/fwin2k/win2ktips/309ipuse/ipuse.html

| | Comments (0) | TrackBack (0)

Aug 24, 2005

シェルスクリプトの文法チェック

作成したシェルスクリプトの文法をチェックするには
シェル名:test.sh とする
--bash
$ /bin/bash -n test.sh

--sh
$ /bin/sh -n test.sh


--参考ページ
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/780chshsyntax.html

| | Comments (0) | TrackBack (0)

May 18, 2005

World Time for Javascript

仕事柄、ブラウザでワールドタイムが分かれば便利だなと思い、
ネット上を探してみました。
http://ask.jp/
なかなか良い検索結果と出会えました。

-----
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
<title>World time</title>
<SCRIPT language="JavaScript">
<!--
_x=5
tz = new Array(_x)
tz[0] = 9 ;
tz[1] = 0 ;

day=new Array("日","月","火","水","木","金","土");

function Clock(){

for(i=0;i<_x;i++){
_now=new Date();
_now1=new Date();
_now1.setTime(_now.getTime() + (_now.getTimezoneOffset() + tz[i]*60) * 60 * 1000);

_Month =_now1.getMonth();
_Date =_now1.getDate();
_Hours =_now1.getHours();
_Minutes =_now1.getMinutes();
_Seconds =_now1.getSeconds();
_Day = day[_now1.getDay()];
if(_Hours <10){_Hours =" "+_Hours}
if(_Minutes<10){_Minutes=" "+_Minutes}
if(_Seconds<10){_Seconds=" "+_Seconds}

document.forms[0].elements[i*3+1].value=_Month+"月"+_Date+"日("+_Day+")";
document.forms[0].elements[i*3+2].value=_Hours+"時"+_Minutes+"分"+_Seconds+"秒";
}
setTimeout(" Clock()",1000);
}

function ChangeCity(x){return document.forms[0].elements[x*3].options[document.forms[0].elements[x*3].selectedIndex].value;}

// -->
</SCRIPT>

<style>
<!--
td { height:40px}
input ,select { font: bold 100%}

-->
</style>
</HEAD>

<BODY onLoad="for(i=2;i<_x;i++){tz[i]=ChangeCity(i)};Clock()">
World Times
<table>
<form>
<tr>
<td><input value="日本標準時" size="14"></td>
<td><input size="15"> <input size="15"></td>
<tr>
<td><input value="グリニッジ" size="14"></td>

<td><input size="15"> <input size="15"></td>
</tr>
<td>
<select onChange="tz[2]=ChangeCity(2)">
<option value=-10 >Hawai
<option value= -8 >Los Angeles
<option value= -5 >New York
<option value= 0 >London
<option value= 1 >Pari
<option value= 1 selected>Berlin
<option value= 8 >Hong Kong
<option value= 8 >Singapore
</select></td>
<td><input size="15"> <input size="15"></td>

<tr>
<td>
<select onChange="tz[3]=ChangeCity(3)">
<option value=-10 >Hawai
<option value= -8 >Los Angeles
<option value= -5 >New York
<option value= 0 >London
<option value= 1 >Pari
<option value= 1 >Berlin
<option value= 8 >Hong Kong
<option value= 8 selected>Singapore
</select></td>
<td><input size="15"> <input size="15"></td>

</tr>
<tr>
<td>
<select onChange="tz[4]=ChangeCity(4)">
<option value=-10 >Hawai
<option value= -8 >Los Angeles
<option value= -5 selected>New York
<option value= 0 >London
<option value= 1 >Pari
<option value= 1 >Berlin
<option value= 8 >Hong Kong
<option value= 8 >Singapore
</select></td>

<td><input size="15"> <input size="15"></td>
</tr>
</table>

</BODY>
</HTML>
-----

ブラウザで”Javascript”を”可”にして開いてみてください。
なお、不具合など起きた場合、一切責任は追いかねますのであしからず。

| | Comments (0) | TrackBack (0)

Apr 07, 2005

/etc tarを使ったバックアップ

各種configの保存されている/etcを定期的にバックアップする
(tarでアーカイブ、gzipで圧縮)

--Back up shellの作成
#!/bin/bash
tar zcvf /home/hoge/back/etc-back.`date +%Y-%m-%d`.tar.gz /etc

上記の2行を/usr/local/back/back.sh として保存する
$ chmod 711 /usr/local/back/back.sh

# vi /etc/crontab
0 4 1 * * root /usr/local/back/back.sh

cronに上記のとおり登録すると毎月1日04:00に日付付きで保存される。
このファイルをUSBメモリ等に保存したいような、、、

| | Comments (0) | TrackBack (0)

Mar 17, 2005

whileを使った簡易監視

--whileを使ったprocessの簡易監視

$ while :
> do
> clear
> ps -elf > grep key_word
> sleep 5
> done

上記は5秒おきに特定のprocessを表示させます。
停止させるためには”Ctrl + C” ボタンを押す。

| | Comments (0) | TrackBack (0)