Windows 7でログオンスクリプトがドライブをマップしないのはなぜですか?
以下のようなVBScriptスクリプトを使用しています。スクリプトはグループポリシーを使用して実行されます。
Dim WshNetwork
Set WshNetwork = WScript.CreateObject("WScript.Network")
WshNetwork.MapNetworkDrive "g:", "\\\Saturn\data\"
WshNetwork.MapNetworkDrive "k:", "\\\Saturn\stuff\"
Windows XPでは問題なく動作します。
更新:スクリプトをローカルにコピーして実行すると問題なく動作するので、グループポリシーがWindows 7でスクリプトを実行していないようです。
UACを有効にすると、グループポリシーオブジェクト(GPO)を使用して割り当てられたログオンスクリプトでドライブをマップできません。 GPOログオンスクリプトdoes)は実行されますが、異なるセキュリティコンテキストで実行されるため、マッピングが失われます。
Microsoftは、launchapp.wsf
と呼ばれるサンプルスクリプトを提供しています。このスクリプトは、正しいセキュリティコンテキストの下で実際のログオンスクリプトをしばらく実行して、この問題を回避します。
こちらから入手できます: http://technet.Microsoft.com/en-us/library/cc766208(WS.10).aspx
「ユーザーアカウント制御が原因でグループポリシースクリプトが失敗する可能性がある」というタイトルのセクションと、launchapp.wsf
のソースコードである付録Aを探します。
launchapp.wsfは、UACが有効になっているVista(およびWindows 7)PCでドライブをマッピングする問題を修正します。ただし、別の問題が発生します。WindowsXPでは機能しないため、XPコンピュータはログオンスクリプトを実行する代わりにエラーを表示します。
幸いなことにXPコンピューターはlaunchappハックを必要としないので、私の会社はVistaの方法で何かを実行しようとするLaunchappの修正バージョンを作成しましたが、それが失敗した場合(XPを実行しているため) 、それは本当のログオンスクリプトをすぐに起動するだけです。これは私の社内(実際のサーバー名などを持っている)なので、共有することはできませんが、それほど難しくはありませんでした。
おそらく、そのEnableLinkedConnectionsレジストリ設定を使用するのは良い考えではありません-Microsoftは、サポートされていないことをそのKBで具体的に指摘しています-後で悲しむことになるでしょう。私はここに解決策を書きました: http://pcloadletter.co.uk/2010/05/15/missing-network-drives/
あなたが作成した正確なスクリプトは、最初のバックスラッシュを2倍にする限り、Windows 7ではうまく機能します。あなたが試してマップするように\\saturn\data
。 (バックフォーマットを使用して、コードのフォーマットを保持します。)
このスクリプトは、起動スクリプトとしてではなく、ダブルクリックして実行するとエラーが発生しますか?
スラッシュがないことも疑わしいですが、Windows 7/Windows Vista/Windows Server 2008マシンが1台あり、グループポリシー設定を使用するためのアクセス権がある限り、スクリプトを中止することをお勧めします。
すべてのワークステーションにWindows Updateを介して設定クライアントをインストールする必要がありますが、ドライブをスクリプト化するよりもドライブのマッピングがはるかに簡単になります。この記事は、それをどう進めるかについてのすばらしい要約です(technetの記事よりも優れています)。
Windows 2003ドメイン(およびWindows 2008ドメイン)のグループポリシー設定
また、Windows XP以降、ドライブのマッピングが好きになったことはありません(そうですね。また、お気に入りのネットワークの場所をOSに追加する方法についてユーザーを教育し始めることも検討する必要があります。 Windows 7のライブラリ機能により、これが特に簡単になり、一度設定すると、ほとんどのユーザーは、初期の抵抗を乗り越えた後、ドライブをマップすることを好むことがわかりました。
スクリプトが正常に実行されていると思います。
ユーザーが管理者であることに疑いはありません。ユーザーアカウント制御を有効にしているため、エクスプローラーが実行されるユーザーのフィルターされたトークンは、ログオンスクリプトの実行時に「マップされた」「ドライブ」にアクセスできません。
グループポリシーの基本設定を使用しない場合は、2つの選択肢があります。
ユーザーを標準ユーザーにします。これは私の好みですが、ほとんどの人にとって扱いが難しいようです。
EnableLinkedConnectionsレジストリ値を「1」に変更します(詳細は http://support.Microsoft.com/default.aspx?scid=kb;EN-US;937624 を参照してください)。