web-dev-qa-db-ja.com

ログインスクリプトを使用してドライブをマップする企業での優先UAC構成?

Windows 7、Vista以降のOSでは、UACはログオンスクリプトによるハードドライブのマッピングを防止するため、次のログオンスクリプトコードは機能しません。

Dim WshNetwork
Set WshNetwork = WScript.CreateObject("WScript.Network")

WshNetwork.MapNetworkDrive "g:", "\\\Saturn\data\"
WshNetwork.MapNetworkDrive "k:", "\\\Saturn\stuff\"

この問題に対処する場合、管理者にはいくつかの選択肢があります。

エンタープライズ環境でログインスクリプトを「そのまま機能させる」ための最も実用的でサポート可能なアプローチはどれですか。

「最も好ましい」ソリューションが企業が現実の世界で行っているものではない場合、彼らはどのようなアプローチを取っていますか?

7

VBSログオンスクリプトから「Net Use」コマンドを呼び出すのはどうですか。

スクリプト自体が管理者トークンで実行されている場合でも、スクリプトによって開始されたプログラムはすべて標準ユーザートークンで実行されます。つまり、この方法でマップされたドライブはユーザーが利用できます。

あなたの例はこのように見えるように適応させることができます:

Set Shell = CreateObject("Wscript.Shell")

Shell.Run "Net Use g: \\Saturn\data", 7, True
Shell.Run "Net Use k: \\Saturn\stuff", 7, True

( '7'を指定すると、コマンドプロンプトウィンドウが画面に表示されないように、コマンドは最小化されて実行されます。'True 'は、コマンドが完了するまで待機してから続行します)

1
benrwb

Powershellを使用して、実行モードをallsignedに設定します。これは、PowerShell実行メソッドにとって最悪のオプションであり、内部CAからコード署名証明書を発行し、ログインスクリプトに署名します。

(new-object -com WScript.Network).MapNetworkDrive("g:","\\Saturn\data")
(new-object -com WScript.Network).MapNetworkDrive("k:","\\Saturn\stuff")

PowershellはデフォルトでasInvokerを実行するので、私が誤解しない限り、sans UACプロンプトを実行する必要があります。

1
Ori

私や他の多くの人が遭遇した問題は、ドメインユーザーアカウントがローカル管理者グループの一部である場合、GPOログオンスクリプトが実行されず、ネットワークドライブ/共有がマップされないことです。 。

http://social.technet.Microsoft.com/Forums/en-US/winserverGP/thread/54721cb2-7f59-467f-856a-2a2d799ed95

これは私が見ていたスレッドです.... GPO Win 7とWin 8のどちらでもNet Useは動作しませんが、Oriは動作する可能性があるものを持っているかもしれませんが、唯一問題は、証明書なしで機能するよりも複雑なプロセスです。

0
Gump3rs

これはエンタープライズ環境ではありませんが、小規模ビジネス環境での経験はあります。

基本的なNet Use s: \\server\share Safadoから提案されましたが、ロジックが必要な場合は、kixtartをお勧めします。これは、サードパーティの請負業者からも推奨されており、基本的なロジック、ドライブ、プリンターのマッピングなど、 OU、グループ、およびPC名を含む変数の数。また、ユーザーがログインスクリプトロジックを表示できないようにする場合に備えて、いくつかの基本的なセキュリティ機能も備えています。

0
Sam