- ベストアンサー
WSHのアクセス権限設定
こんばんわ WSHにて、ファイルサーバーにて、ディレクトリを作成後、アクセス権限を設定したいのですが、可能なのでしょうか WSHにて、ディレクトリは作成できるのですが アクセス権限の設定がわかりません。 例えば、ある個人ユーザだけしか読み書き権限を与えて他のものには、参照もできないように設定したいのです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#1です。 >このコマンドは、アクセス制限フォルダを、 >変数ではできないのでしょうか? > ↓ >cacls c:\document.doc /C /G guest:r WSHからCACLSコマンドを呼べばよろしいと思います。 例えばのやり方として、 1.ユーザIDのみを記したファイルを作ります。 2.ファイルを1行ずつ読んでユーザIDを取得します。 3.ユーザIDと同じ名前のディレクトリを作成します。 4.CACLSを呼び出し、アクセス権を設定します。 サンプル(このままでは動きません) Set objStream = objFs.OpenTextFile("userlist.txt", 1) ' ファイルが終わりにくるまで繰り返し Do While Not objStream.AtEndOfStream '一行読んでユーザIDを取得 userid = objStream.ReadLine() '個別ディレクトリのパスを生成 dirpath = basedir & userid 'ディレクトリを作成 objFs.CreateFolder dirpath 'caclsコマンド文字列を生成 command = "cacls " & dirpath & " /C /G " & userid & ":F" 'コマンドを実行 objShell.Exec command Loop ※objStreamはTextStream objFsはFileSystemObject objShellはShell basedirはディレクトリを作るパス ↑みたいな感じにすればできないでしょうか?
その他の回答 (2)
- Bonjin
- ベストアンサー率43% (418/971)
>このままではうごきません、というのはあと何が必要なのでしょうか? サンプルの中でobjFsやobjShellなどを作成していないだけです。 必要部分は付け足してくださいという意味です。
お礼
了解いたしました。 本当にありがとうございました。
- Bonjin
- ベストアンサー率43% (418/971)
WSHだけでやるのは無理だと思います。 少し前に挑戦しましたがあきらめました。 ユーザー名や権限がわかっているのならCACLSコマンドを呼び出してあげればいいと思いますがどうでしょう?
補足
ありがとうございます。 CACLSコマンド見ました。 このコマンドは、アクセス制限フォルダを、 変数ではできないのでしょうか? ↓ cacls c:\document.doc /C /G guest:r 処理の流れは以下のようになります。 ちなみに、NTワークステーションで 1500台あります。 全てのクライアントにおなじ処理を行います。 1.ログオン時のIDと、同名のディレクトリを作成 2.作成したディレクトリに、本人(同一ID)しか、 読み書きできない権限を設定する。
お礼
詳しいご説明ありがとうございます。 これなら出来そうな感じです。 駄目なときは、再度投稿いたします。 本当にありがとうございました。 感謝です。
補足
このままではうごきません、というのは あと何が必要なのでしょうか?