プロが教えるわが家の防犯対策術!

すみません。教えてください。
初心者ながら、WindowsServer2003へのログオンスクリプトを
作成してますが、ネットワークドライブにマウントできません。
コマンドは、環境変数を使った下記の通りの記述です。

set server1=コンピュータ名(又はIPアドレス)\共有名
net set O: /delete
net use O: %server1%\共有名

※Oドライブは、空きドライブです。
※コンピュータ名は、WindowsServer2003のコンピュータ名です。
※共有名は、Winサーバ上のフォルダ共有名です。
※ログオンスクリプトは、WinServerzyo

ログオンスクリプトは、Winサーバ上の下記の通りです。
・各ユーザーごとの「ログオンスクリプト」へlogon.batと記述
・C:の\sysbol\scriptへlogon.batを保存
net useは、コンピュータ名でもIPアドレスしていでも
ネットワークマウント可能と思いますが、上手くいっておりません。

記述がいけないのか、または、別の原因あるのか
ご教授頂けますでしょうか。

A 回答 (6件)

訂正します。



set server1=コンピュータ名(又はIPアドレス)
net set O: /delete
net use O: \\%server1%\共有名

すみません。
    • good
    • 0

>1.NTFSアクセス権。


>確か、NTFSアクセス権限と共有アクセス権限は権限が強い方が優先でしたよね。

文意は間違っていないので誤字だとは思いますが、念のため訂正
×権限が強い方が優先
○より制限されている方が優先
ですね。

>>>DC上でDNSサーバを構成
>これは、自分も構成することを話したのですが、現状、大きな不都合が発生しない
>限り、なしで進める方向です。あまり前例がないとのことで苦労が多いです。

マイクロソフト公式のActive Directoryのトレーニングを受けた方が良いのではないかと思われます。
トラブルシューティングに関してノウハウがない状態で突撃すると死ぬかもしれません。(過労、心労、その他wwwww)

>5.クライアントのドメイン参加について
パスワード変更が必要なユーザー アカウントはクライアントPCをドメインへ参加できませんよ。
やるとしたら、初回ログオン時のパスワード変更をオフに設定し、パスワード有効期限を短くしてみてはいかがでしょうか?

この回答への補足

junkUserさん
度々すみません。助かっております。
ありがとうございます。

>>1.NTFSアクセス権。
>○より制限されている方が優先
>ですね。
ありがとうございます。確かにご指摘の通りです。

>>>DC上でDNSサーバを構成
>マイクロソフト公式のActive Directoryのトレーニングを受けた方が良いのではないかと思われます。
>トラブルシューティングに関してノウハウがない状態で突撃すると死ぬかもしれません。(過労、心労、その他wwwww)
確かに。
でも、今回は実際のAD構築は、自分はやりません。他の方の対応です。
自分は、ログオンスクリプト作成が担当なのでそれほどの影響は受けてません。
でも、トレーニングは別途受けたいですね。検討するつもりです。

>>5.クライアントのドメイン参加について
>やるとしたら、初回ログオン時のパスワード変更をオフに設定し、パスワード有効期限を短くしてみてはいかがでしょうか?
ありがとうございます。
パスワード有効期限を短くするとこで、決まりました。


今週中に検証・終了する予定ですが、
当初目的のログオンスクリプト作成は、何とか完了しそうです。

また、結果をお知らせします。

補足日時:2008/05/07 13:34
    • good
    • 0
この回答へのお礼

junkUserさん
お世話になってます。
ご連絡が遅くなりました。

先週どうにか、完了しました。
まだ、細かな修正点はありますが、
ログオンバッチも動いてます。

本当に助かりました。
ありがとうございました。

お礼日時:2008/05/20 21:07

気がついた点を再度羅列。



1.NTFSアクセス権は、デフォルト(読み取りと実行/フォルダの一覧表示/読み取り)になってます。

 これだとユーザーが書き込めません。「変更」または「書き込み」権限が必要です。

2.マウントの動作がまちまちな件
 DNSがDC上で動作していないため、正しく動作していないのかもしれません。
 nslookup DNSドメイン名
  でDC以外のIPアドレスを取得できる場合は削除する必要があります。
 nslookup マウント先サーバ名
  でクライアントからアクセスできないIPアドレスがある場合は削除する必要があります。
 nslookup -q=srv _ldap._tcp.dc._msdcs.DNSドメイン名
  でサービスレコードが取得できない場合は、ADの構成かDNSの構成に問題があります。
  グループポリシーが利用できません。
  堅実なのは、DC上でDNSサーバを構成することをお勧めします。

3.クライアントの設定
 2に関連して、ADのドメインを参照できるDNSサーバと、ADとは無関係のDNSサーバ2つをプライマリ-セカンダリのリゾルバに設定していると、通信が不安定になることがあります。
 こんな構成はレアなので説明を省きます。

4.Admin権限アカウントで、リモート接続した場合、ログオン スクリプトを処理しない

こんな感じでいかがでしょうか?
----
@ECHO OFF
REM コンソール ログオンでなければ BATEND へ
IF "%SESSIONNAME%" NEQ "Console" GOTO BATEND
REM バッチファイルの本体

REM 処理

:BATEND
REM 終了
----

この回答への補足

unkUserさん。ありがとうございます。
ご返信が遅れすみません。すこし、進展がありました。
頂いた内容とともに記載しました。

1.NTFSアクセス権。
確か、NTFSアクセス権限と共有アクセス権限は権限が強い方が優先でしたよね。
読み取りと実行/フォルダの一覧表示/読み取りが優先となり
ユーザーが書き込みできない認識でよいですかね?
「変更」か「書き込み」権限に直します。

2.マウントの動作がまちまちな件

pauseコマンドで、ひとつずつコマンドを実行・確認しました。おまぬな失敗でした。
FSサーバ上4箇所の共有フォルダへマウントさせるのですが、ログオンスクリプトの
ネットワークの記述でリダイレクタ > を ひとつしか記述してない、
次のマウント記述は、>> ふたつ記述していました。下記のような記述ミスでした。

例) 最初のnet use記述 >>(2つ) ⇒ 次のnet use記述 >(1つしか)

net use %server1% >> %LOG%
if errorlevel 1 goto error3
echo %server1%のマウント成功 >> %LOG%

net use %server2% > %LOG%
if errorlevel 1 goto error3
echo %server2%のマウントは成功 >> %LOG%

※error3は、echo %server1%のマウント失敗 >> %LOG%になってます。

●修正し、実行した結果ネットワークマウントは、4箇所の共有フォルダへ
マウントもして、ログにも記述されました。
 
数人の一般ユーザーアカウント、また、クライアントのユーザープロファイルを
削除して試しても、すべてマウントしました。

▲▲ただ、これが、原因とも思えず再発すると思えるため、連休明け
ご教授頂いたnslookupを試す予定です。

>>DC上でDNSサーバを構成
これは、自分も構成することを話したのですが、現状、大きな不都合が発生しない
限り、なしで進める方向です。あまり前例がないとのことで苦労が多いです。

3.クライアントの設定
なるほど。確かに不安定になる予想ができますね。
AD上にDNSは構成していないため、クライアントの2つのプライマリ-セカンダリのリゾルバ設定は、
ADとは無関係のDNSサーバになってます。

 2.のようにどうにかマウントしているため、あまり影響はなしと考えてます。が
 nslookupで、確認してみます。

4.Admin権限アカウントで、リモート接続した場合、ログオン スクリプトを処理しない
なるほど!
環境変数:ターミナルサーバへ接続使用するセッション名を利用して
ENDへ飛ぶ処理ですね。
ありがとうございます。試してみます

5.クライアントのドメイン参加について
junkUserさん。色々、伺ってしまいすみません。なのですが、
流れで、5.についてご教授いただきたいのです。

クライアントドメイン参加について、手順を作成し、ユーザーごとに
自分のアカウントでドメイン参加します。
ユーザーアカウントは、DomainUsers権限です。ポリシーで「ワークステーションに参加」へ
Domain Users権限を追加することで、ユーザーごとに参加が可能になりました。
しかし、「初回ログオン時パスワード変更が必要」を設定すると、ドメイン参加時の
アカウント・パスワード入力後、下記エラーが表示されできないのです。

{ドメイン"XXXXXXXX"に参加中にエラーが発生しました。ユーザーは
最初にログオンする前にパスワード変更をしなければなりません

各ユーザーごとのパスワード変更も目的のため、クリアしたのですが、
解決してないのです。

★★もし、何かご存知ならご教授いただけますか。

ポリシーかなと思っておりますが、もともとできないのかもしれないですかね。
できな場合は、パスワード変更のバッチを作成して、ドメイン参加後、ユーザーへ
バッチを起動して変更してもらうつもりです。

補足日時:2008/05/04 09:29
    • good
    • 2

以下、気がついたものを羅列。



1.アクセス権
>ユーザーは共有名に対してアクセス権
 domain users /フルコントロール

ファイル共有のアクセス権には2つ設定箇所があります。
NTFSアクセス権と共有アクセス権です。
両方とも設定する必要がありますが大丈夫ですかね?

2.ログオンスクリプトのグループポリシー
自分がやるのであればの話ですが・・・
 a. ポリシーを適用するOUを作成
 b. OUにユーザーを移動
 c. OUのプロパティにグループポリシーを作成できる項目があるのでそこで作成
 d. グループポリシーの設定は以下の通り
  ユーザーの構成/Windows の設定/スクリプト(ログオン/ログオフ)/ログオン
  のところに追加する

3.一般アカウント(「Domein Users」)では、2.はOK、1.と3.は失敗しました。
 あるユーザーがいったんフォルダを作成すると、別のユーザーでは上書きしたりコピーできません。
 この場合は、管理者が事前にフォルダを作成していて、同じPCに一般ユーザーでログオンしたために失敗したのではないかと思われます。
 やるとしたら、ログフォルダとして %USERNAME% を使用したり、%TEMP% フォルダ内にログフォルダを作成してはいかがでしょうか。
 もしくはログオフ時にログフォルダを削除したり。

この回答への補足

1.アクセス権
NTFSアクセス権は、デフォルト(読み取りと実行/フォルダの一覧表示/読み取り)になってます。

2.ログオンスクリプトのグループポリシー
a.b.cは完了してます。
d、ありがとうございます。設定します。

3.一般アカウント(「Domein Users」)では、2.はOK、1.と3.は失敗しました。
3.ですが、動きが変です。成功と失敗がまちまちなのです。
状況は、
1.ネットワークマウントは、4つの共有フォルダへマウントする記述にしてますが、3つがマウント成功、1つが失敗してます。
●ログに記述される正常な姿は、
実行時間/マウント成功・失敗しました/サーバ共有フォルダへのコピー処理の成功・失敗 等が記述されます。
しかし、変な姿です。
・マウント成功・失敗 
 ⇒1つしか記述されてない/失敗が1つも記述なし
・実行時間が記述なし
下記、こんな記述になってます
ーーーーー
コマンドは、正常に終了しました。
\\サーバCP名\共有名のネットワークマウントは成功しました
コピー処理を開始
ーコピー処理は失敗しました。
ーーーーー
※コピー処理の箇所のみ、正常な記述になってます。

2.(クライアントC:へログ用フォルダ作成)は、OKでした。
 ログも、%COMPUTERNAME%.logでできてました。ログ記述は、上記の通りNGです。
3.のFSサーバ上へのコピーは、失敗してます。

再度、ユーザーアカウントログオン状態で、コマンド叩いて試してみるつもりです。
3.のFSサーバ上へのコピーは、サーハ共有フォルダの権限がないため
コピーができないのが原因でしょうかね?
共有フォルダへDomain Users・読み取りと実行権限をつけた方が良いでしょうか?

あと、すみません。
4.のAdmin権限アカウントで、リモート接続した場合、ログオン
スクリプトを処理しない(マウントやログはださない記述をする)
を確認しているのですが、もし、ご存知でしたらご教授いただけますか?

補足日時:2008/05/02 14:43
    • good
    • 0

スクリプト単独で動作するか確認してみてください。


少なくともここに書かれているスクリプトではマウントできません。

set server1=コンピュータ名(又はIPアドレス)\共有名
net set O: /delete
net use O: \\%server1%\共有名

では?
他にも、ユーザーは共有名に対してアクセス権がありますか?

なお、ログオンスクリプトはユーザーごとに設定することもできますが、
ふつうはグループポリシーで設定します。

この回答への補足

iunkUserさん、ありがとうございます。
環境 及び、状況は、DIooggooIDの返信で記載したので、見ていただきたいのですが、
他、補足とご質問ですが
>ユーザーは共有名に対してアクセス権
 domain users /フルコントロール

>ログオンスクリプトはユーザーごとに設定することもできますが、
>ふつうはグループポリシーで設定します。
テスト中は、ユーザーごとにやってますが、
実際は、200人以上いるためグループポリシーの設定を考えてます。
確認中ですが、もし、ごぞんじでしたら、ポリシーの
設定箇所をご教授いただけますか。

宜しくお願い致します。

補足日時:2008/05/02 11:28
    • good
    • 0

まずはじめは、スクリプトで実行するのではなく、1つずつコマンドを手打ちで実行して、動作状況を確認してみてください。



ちなみに、アカウントやそのパスワードは、どのようにしていますか?

この回答への補足

DIooggooIDさん。ありがとうございます。
1つずつコマンドは、実行してます。でも、ご指摘にあるアカウント権限で失敗したようです。下記に環境を含め纏めました。
まず、環境から

【環境(1) ー全体ー】
(1)サーバ(Active Directory) Win2003Server /DNSはなし
 他のDNSサーバ(UNIX)を参照。
(2)ファイルサーバ、Win2003Server /(1)にドメイン参加
(3)クライアント((1)にドメイン参加済み)
(4)一般アカウントの権限「Domein Users」 

この環境下でログオンスクリプトをテスト中!
 
【環境(2) ーログオンスクリプト作成条件ー】
1.一般アカウントで、ネットワークマウントする
 net use O: %server1% >> %LOG%
※環境変数を使ってます。
 set server1=\\コンピュータ名\共有名
set LOG=c:\フォルダ名

2.ログオンスクリプトのログ保管用フォルダをクライアントへ作成する
md %der% ※環境変数 ⇒ set der=c:\フォルダ名

3.ログオンスクリプトのログを、共有サーバ上へコピーする
copy %der% %server1%\ログ保管フォルダ名

4・Admin権限アカウントで、リモート接続した場合、ログオン
スクリプトを処理しない(マウントやログはださない記述をする)
⇒確認中

以上の条件で、作成中です。

結果
>>これまでのテストでは、1.2.3はうまくいきましたが、Admin権限アカウントでした。Admmin権限なら、上手くいきますよね。
しかし、
★一般アカウント(「Domein Users」)では、2.はOK、1.と3.は失敗しました。かつ、ログの記述されてません。
※スクリプトは、動いているようです。

長々すみません。
ご教授いただけたらと存じます。

補足日時:2008/05/02 11:26
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!