Windows 7で制限付きユーザーアカウントからオンデマンドでタスクスケジューラタスクを実行する


7

私の目標は、管理者特権を必要とするnetshスクリプトを実行できるように限定された人に使用することです。

netsh wlan stop hostednetwork
netsh wlan start hostednetwork

管理者アカウントから、昇格した特権でこのスクリプトを実行するタスクスケジューラタスクを作成し、管理者パスワードを保存しました。動いた。ただし、タスクは制限されたユーザーアカウントからは表示されません。

限られたユーザーのタスクスケジューラから同じタスクを作成しようとしましたが、実行されませんでした。ユーザーにタスクを作成する権限がないと言われました。

制限されたユーザーからschtasks.exeを試しましたが、実行したいタスクも表示されません。

管理アカウントから作成したタスクを制限付きユーザーと共有して、オンデマンドで実行できるようにする方法はありますか?または、自分でタスクを作成する特権を彼に与えますか?


注:startコマンドとは異なり、コマンドにはstop管理者特権は必要ありません。
fefrei 14

回答:


17

C:\ Windows \ System32 \ Tasksに移動して関連タスクを見つけ、アクセスできるようにするユーザーに「読み取りおよび実行」権限を割り当てます。「現在のオブジェクトのみ」に必ず割り当ててください。その後、タスクは制限されたユーザーから表示および実行可能になり、資格情報を保存して「ユーザーがログオンしているかどうかにかかわらず実行」にチェックを入れると機能します。


AlosはServer 2008 R2で動作します
ジョナサン

1
Windows 8/8 / 8.1で働いていましたが、Windows 10 [1607]では機能しませんでした。さらに悪いことに、制限付きユーザーとしてタスクを作成し、それを管理者として編集し、ユーザーにタスクに対するすべての権限を拒否しても、彼はそれを実行できます。そして、他の方法-タスクを管理者として作成し、ユーザーにフルアクセスを与え、所有権を変更したとしても、彼はそれを実行することもできません。
LogicDaemon

1
@LogicDaemonここも同じですが、1607では動作しません。タスクとフォルダ全体に対する完全な権限をユーザーに与えようとしましたが、アクセスは拒否されました。解決策を見つけましたか?
ジェイソン

残念ながらまだ@jasonはありません。私が知っている唯一の方法は、タスクを実行する必要があるユーザーとしてschtasksを実行してダミータスクを作成し、それを管理者として編集することです。このようにして、ユーザーはタスクを実行する能力を保持します。
LogicDaemon

3

ええ、それはひどい問題です。選択した回答が機能しなくなりました。私は回避策としてイベントログを使用しています:

  1. タスクの「イベントで」トリガーを登録します。たとえば、「アプリケーション」、「アプリケーション」、30204(このタスクのマジックナンバー)

  2. このIDでイベントを記録します。コマンドライン/バッチからそれを行うために、ダミーの3行の.Netコンソールアプリを作成しました。

    using (var eventLog = new EventLog("Application"))
    {
        eventLog.Source = "Application";
        eventLog.WriteEntry("EventLogTriggeer", EventLogEntryType.Information, int.Parse(args[0]));
    }

私の場合、ステージング環境での自動展開のセキュリティを解決しました。GitHubは、フォルダーへのr / oアクセス権を持つIIS AppPool Identityの下で実行されるnode.jsバックエンドにPOSTリクエストを行います。ハッシュ署名を検証し、次を実行します。

// delegate to priviledged task
exec('%SystemDrive%\\apps\\EventLogTrigger 30204', (err, stdout, stderr)=> /* ... */);

残りの部分は、inetpubのファイルを変更する権限を持つユーザーの下で展開スクリプトを実行するスケジュールされたタスクを介して行われます。タスクは、各サーバーおよびそれらの各Webサイトに対して個別に構成されているため、パスはハードコーディングされています。

C:\inetpub\ta\autodeploy.cmd

興味深い回避策。新しいイベントログを使用し、.NetアプリケーションでIDをハードコーディングする方が安全な場合があります。docs.microsoft.com
Gremio
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.