[前の記事]« FDISKで拡張領域が削除できません
[次の記事]前月名のフォルダをMM形式で作成したい »

関連オンラインソフト配布サイト:
Vector>ダウンロード(top) |>MS-DOSまたは汎用 | >WindowsVista/XP/2000/NT

▲カテゴリー「SYSTEMINFO,VER…システムやハードウェアの状況取得」索引へ

バッチファイルでWindows2000のSPバージョンチェック/HDDの空き容量を調べる方法

589.
(無題)
2005年06月29日(水) 12時24分
ど素人
●DOS/Windowsのバージョン↓
Windows2000Pro

会社のPCでSP4のインストールを行うのにバッチファイルで一通りの作業を行いたいと考えております。

■windowsのバージョンチェック
■HD空き容量チェック
■セキュリティ解除バッチ
■SP4セットアップ
■セキュリティセットバッチ
■再起動

質問1.
■のバージョンチェックでバッチ上でwindows2000のSPバージョンをチェックする方法があれば教えてください。

質問2.
■のHDDの空き容量を調べたいのですが、バッチユーティリティのBUを使用して出来ると思いますが、
BU CHKDSKFREE
で出来ると思い、実行したところ、実行はされていると思いますが、その結果の表示がされません。
結果を表示させるのはどのようにすれば良いでしょうか?
590.
Re:(無題)
2005年06月29日(水) 18時35分
otn
>●DOS/Windowsのバージョン↓
>Windows2000Pro
>
>会社のPCでSP4のインストールを行うのにバッチファイルで一通りの作業を行いたいと考えております。
>
>■windowsのバージョンチェック
>■HD空き容量チェック
>■セキュリティ解除バッチ
>■SP4セットアップ
>■セキュリティセットバッチ
>■再起動
>
>質問1.
>■のバージョンチェックでバッチ上でwindows2000のSPバージョンをチェックする方法があれば教えてください。

SP4かどうかが判定出来ればいいんですよね。
"c:\winnt\driver cache\i386\sp4.cab"
が存在するかどうかでどうかな。
if exist "%windir%\driver cache\i386\sp4.cab" goto SP4

>質問2.
>■のHDDの空き容量を調べたいのですが、バッチユーティリティのBUを使用して出来ると思いますが、
>BU CHKDSKFREE
>で出来ると思い、実行したところ、実行はされていると思いますが、その結果の表示がされません。
>結果を表示させるのはどのようにすれば良いでしょうか?

表示されないのが仕様です。help をお読みください。表示させたければ -e ですが、表示させずとも ERRORLEVEL で判断すればいいんじゃないですか。
でも、bu -e chkdskfree 100000 は数字が大きすぎるというエラーになりますね。つまり100MB規模での空き容量をチェックできない。
605.
bat作成完了後の問題
2005年07月08日(金) 15時00分
ど素人
●DOS/Windowsのバージョン
windows2000

SP4インストールのバッチファイルを作成しました。

●まず自分のPCにSP4.CABファイルがあるか確認して、ある場合はその時点でインストールを中止します。
●次にHDDの容量を確認して、500MB以下のPCはその時点でインストール作業を中止したいと思います。(BU使用)
●次にOutlookExpress\のファイル全てにアクセス拒否設定がされているので、それを一度アクセス許可にします。
●次にSP4をインストールします(再起動無し)
●次にOutlookExpress\のファイル全てをアクセス拒否設定に戻します。
●最後にwindowsを再起動して終了です。

上記を下記の記述で行おうと思っていますが、問題があります。それは最初のSP4バージョンチェックとHDDチェックです。
SPバージョンチェックはsp4.cabがある場合でも次に進んでしまいます。
HDDチェックは空き容量が500MB以上の場合でもNOWSP4に進んでいまい、終了してしまいます。

アドバイスを頂ければ幸いです。よろしくお願いします。

    
@echo off
:TOP
:VERCHK
rem *********************************************
rem WindowsSPバージョンチェック
rem *********************************************
    if exist "%windir%driver cache\i386\sp4.cab" goto NOWSP4 
    
rem *********************************************
    rem HD容量チェック
    rem 容量500MB以下の場合SP4アップグレード中止
    rem ****へ連絡
rem *********************************************
    BU CHKDSKFREE 500000 > nul
    if ERRORLEVEL 1 goto ERROR2
       
:OEACL
rem *********************************************
rem OEフォルダのアクセス権を許可設定
rem *********************************************
    if NOT EXIST c:\program files Outlook Express\wab.exe goto ERROR1
    cacls "C:\program files\Outlook Express" /T /E /C /G Administrators:F > nul
    cacls "C:\program files\Outlook Express" /T /E /C /G Everyone:F > nul
    cacls "C:\program files\Outlook Express" /T /E /C /G SYSTEM:F > nul
    goto SP4Inst
       
:SP4Inst    
rem *********************************************
rem SP4インストール E
rem *********************************************
    E:\update\update.exe -u -z > nul
    goto OEACL2
    goto ERROR1
       
:OEACL2
rem *********************************************
rem OEフォルダのアクセス権を拒否設定
rem *********************************************
    cacls "C:\program files\Outlook Express\csapi3t1.dll" /T /E /C /D Administrators Everyone SYSTEM > nul
    cacls "C:\program files\Outlook Express\MSIMN.EXE" /T /E /C /D Administrators Everyone SYSTEM > nul
    cacls "C:\program files\Outlook Express\MSOE.DLL" /T /E /C /D Administrators Everyone SYSTEM > nul
    cacls "C:\program files\Outlook Express\msoe.txt" /T /E /C /D Administrators Everyone SYSTEM > nul
    cacls "C:\program files\Outlook Express\MSOERES.DLL" /T /E /C /D Administrators Everyone SYSTEM > nul
    cacls "C:\program files\Outlook Express\OEIMPORT.DLL" /T /E /C /D Administrators Everyone SYSTEM > nul
    cacls "C:\program files\Outlook Express\OEMIG50.EXE" /T /E /C /D Administrators Everyone SYSTEM > nul
    cacls "C:\program files\Outlook Express\OEMIGLIB.DLL" /T /E /C /D Administrators Everyone SYSTEM > nul
    cacls "C:\program files\Outlook Express\setup50.exe" /T /E /C /D Administrators Everyone SYSTEM > nul
    cacls "C:\program files\Outlook Express\WAB.EXE" /T /E /C /D Administrators Everyone SYSTEM > nul
    cacls "C:\program files\Outlook Express\WAB" /T /E /C /D Administrators Everyone SYSTEM > nul
    cacls "C:\program files\Outlook Express\WABFIND.DLL" /T /E /C /D Administrators Everyone SYSTEM > nul
    cacls "C:\program files\Outlook Express\WABIMP.DLL" /T /E /C /D Administrators Everyone SYSTEM > nul
    cacls "C:\program files\Outlook Express\WABMIG.EXE" /T /E /C /D Administrators Everyone SYSTEM > nul
    cacls "C:\program files\Outlook Express\WABMIG" /T /E /C /D Administrators Everyone SYSTEM > nul goto REBOOT

:REBOOT
rem *********************************************
rem 再起動
rem *********************************************
    shutdown /l /r /t:コンピュータを再起動します。

:ERROR1
    echo セットアップに必要なファイルが見つかりません。
  echo ****へご連絡ください。
  pause
    goto END

:ERROR2
    echo サービスパックインストールでエラーが発生しました。
  echo ****へご連絡ください。
  pause
    goto END

:ERROR3
    ecoh ディスクの空き容量がないため、セットアップを続行できません。
   echo ****へご連絡ください。
   pause
    goto END

:NOWSP4
    echo 既にサービスパック4が適用済みです。
   echo この作業は必要ありません。
    pause
   goto END

:END
    exit
606.
Re:bat作成完了後の問題
2005年07月08日(金) 16時13分
rev
ど素人 さん、こんにちは。

>if exist "%windir%driver cache\i386\sp4.cab" goto NOWSP4
%windir%は標準の"C:\WINNT"とするとC:\WINNTdriver cache
となりますね。
ということで → "%windir%¥Driver Cache\i386\sp4.cab"

>BU CHKDSKFREE 500000 > nul
BU.HLP には "n=0~65535(Kbytes)(省略時は100)"とあるので
50万KBはBUではエラーとなりますよ。
( BU  Error --- 数値が大きすぎます  Ret=255 )
607.
Re:bat作成完了後の問題
2005年07月08日(金) 16時58分
ど素人
rev様

ご回答有難うございます。
SP4バージョン確認の件でさっそく修正してみたところ、うまくいきました。ありがとうございます。

ついでにもう二つばかりお伺いしたいのですが....。

一つはSP4バージョン確認方法として、私の確認方法で最適かどうかです。SP4がインストールされているPCは必ずSP4.CABが"%windir%¥Driver Cache\i386に保存されているのでしょうか?
会社のPCを対象に行う予定ですが、台数がかなり多く、統一性もあまりありませんので、上記確認だけで良いか心配です。
もう一つはHDDの空き容量チェックとして、BUが使用できないと分かった以上、他に方法を探すしかありませんが、何か良いやり方があるでしょうか?






>ど素人 さん、こんにちは。
>
>>if exist "%windir%driver cache\i386\sp4.cab" goto NOWSP4
>%windir%は標準の"C:\WINNT"とするとC:\WINNTdriver cache
>となりますね。
>ということで → "%windir%¥Driver Cache\i386\sp4.cab"
>
>>BU CHKDSKFREE 500000 > nul
>BU.HLP には "n=0~65535(Kbytes)(省略時は100)"とあるので
>50万KBはBUではエラーとなりますよ。
>( BU  Error --- 数値が大きすぎます  Ret=255 )
608.
Re:bat作成完了後の問題
2005年07月08日(金) 21時25分
rev
私はOSのバックアップでセーブ容量を減らすためDriversCache,inf,Help類まで消してますが
会社のPCでsp4.cabまで消すような人がいますかねぇ?

あとはレジストリを見て判断するのが確実だと思いますが、SP4の特有情報など知識不足のため
よい方法がお分かりの方にレスをお願い致します m(__)m

それと空き容量チェックは以下の過去ログが参考になりませんか?

http://fpcu.on.coocan.jp/dosvcmd/bbs/log/cat3/if/4-0087.html
610.
Re:bat作成完了後の問題
2005年07月09日(土) 07時18分
じゃく
こんにちは。

>それと空き容量チェックは以下の過去ログが参考になりませんか?
>
>http://fpcu.on.coocan.jp/dosvcmd/bbs/log/cat3/if/4-0087.html

この過去ログはファイルサイズの判断ですが今回は空き容量の判断なので
dirコマンドの最終行を使用して判断する方法で作ってみました。

windows2000のfor文に日本語がらみのバグがあるようなので一時ファイルを作成し、
数値の比較では、if文の数値が10桁(?)以上だとうまく判断できないようなので
MB単位に切り捨てて判断しています。

dir "%windir%" | find "空き領域">tmp.txt
for /F "tokens=1-4" %%a in (tmp.txt) do set dsize=%%c
del tmp.txt
set dsize=%dsize:~0,-7%
if "%dsize%"=="" goto ERROR3

set dsize=%dsize:,=%
if %dsize% LEQ 500 goto ERROR3
 
わたしも SP4 の確実な判定方法についてはすごく実行時間のかかる方法
なら思いつくのですが、レジストリをしらべるのが確実かもしれませんね。
613.
Re:bat作成完了後の問題
2005年07月09日(土) 12時03分
rev
じゃく さん、レスありがとうございました。 
同じこと思いついてたんですが作る腕がなく、以下も含めてあの参考で作れる方だなと思いまして.....
ttp://bbs.com.nifty.com/mes/cf_wrentC_list/FPCU_B020/wr_type=M/wr_page=1/wr_sq=FPCU_B020_0000000589
622.
Re:bat作成完了後の問題
2005年07月16日(土) 04時27分
cstlog
>じゃく さん、レスありがとうございました。 
>同じこと思いついてたんですが作る腕がなく、以下も含めてあの参考で作れる方だなと思いまして.....
>ttp://bbs.com.nifty.com/mes/cf_wrentC_list/FPCU_B020/wr_type=M/wr_page=1/wr_sq=FPCU_B020_0000000589

以下のレジストリキーを確認することで、SPのバージョンを確認できる
のではないかと思われます。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Windows 2000\SP4

なので、regeditでファイル出力を行い、該当のキーがあればファイル
が生成され、SP4が適用されている。ファイルが生成されていなければ、
SP4は適用されていないという判断ができると思います。
---------------------------------
regedit /E %TEMP%\SP4.dat "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Windows 2000\SP4"
if exist %TEMP%\SP4.dat goto NOWSP4
 :
 :
:NOWSP4
del %TEMP%\SP4.dat
---------------------------------
623.
Re:bat作成完了後の問題
2005年07月16日(土) 12時36分
rev
cstlog さん、レスありがとうございます。 

>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Windows 2000\SP4
うちはWin2kSP4 DSP版のCDからインストール後、Hotfixをオフラインで
最新にしてますが、ご指摘のキーはなくHKLM~\Windows 2000\SP5以下に
KB番号のフォルダが入ってますね。
624.
Re:bat作成完了後の問題
2005年07月19日(火) 15時35分
otn
>cstlog さん、レスありがとうございます。 
>
>>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Windows 2000\SP4
>うちはWin2kSP4 DSP版のCDからインストール後、Hotfixをオフラインで
>最新にしてますが、ご指摘のキーはなくHKLM~\Windows 2000\SP5以下に
>KB番号のフォルダが入ってますね。

私のPCにはSP4のキーがありますけど(サブキーは1つ)、SP5のキーもある(サブキー多数)時点でこのキーじゃ駄目だと思いました。

私が最初に "c:\winnt\driver cache\i386\sp4.cab" で判断してはどうかと書いたのは、
C:\WINNT\$NtServicePackUninstall$\spuninst\spuninst.bat の冒頭に、このファイルの削除コマンドがあるからです。
他には、
C:\WINNT\$NtServicePackUninstall$\spuninst\spuninst.inf のファイルを読み込んで、
NtServicePackVersionText = "Service Pack 4" の文字列でチェックするのも良いかもしれません。
625.
Re:bat作成完了後の問題
2005年07月19日(火) 20時04分
rev
otn さん、レスありがとうございます。
いまさらながらサブキーをフォルダって.....orz
 
 


カテゴリー「SYSTEMINFO,VER…システムやハードウェアの状況取得」索引へ

 

カテゴリー一覧

FPCU/FPCDIY QUICK LINK online
この上の各ジャンル名をクリックすると、下のウィンドウが切り替わります▼


=リンク集のインデックスはこちら=

資料書籍

About

2005年06月29日 22:30に投稿されたエントリーのページです。

ひとつ前の投稿は「FDISKで拡張領域が削除できません」です。

次の投稿は「前月名のフォルダをMM形式で作成したい」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

This site is powered by Six Apart
Movable Type 3.33-ja
このブログについて | 運営:有限会社メディアポート