ローカルシステム(Local System) ユーザー権限でコマンドを実行する方法がある。
あまり使用する機会は少ないが、サービスとしてローカルシステム(localsystem)権限で実行したが、どんな権限なんだ?と確かめるときにあると便利な方法だ。
ローカルシステム(localsystem)権限は、administrator権限でもアクセス出来ないローカルに対する権限を持っている。
LocalSystem権限でコマンドプロンプト(cmd.exe)を実行するには
LocalSystem権限でコマンドプロンプト(cmd.exe)を実行するには、atコマンドを使用するatコマンドは、「Task Scheduler」サービス(Scheduleサービス)に登録するためのコマンドだ。
このScheduleサービスは、ローカルシステム(localsystem)権限で実行されているため、Scheduleでcmd.exeを対話的に実行できるとローカルシステム権限でコマンドプロンプトを実行できるという方法だ。
at <時間> /interactive cmd.exe例えば
> at 14:22 /interactive cmd.exe
新しいジョブをジョブ ID = 1 で追加しました。
> at
状態 ID 日付 時刻 コマンド ライン
-------------------------------------------------------------------------------
1 明日 14:22 cmd.exe
> at 1 /delete
”/interactive”オプションは「対話的に実行する」というオプションだ
指定した時間になると、ローカルシステムユーザーで実行されたコマンドプロンプトが起動する。
残念ながらWindows Server 2008では実行できなかった。
C:\Users\Administrator>at 14:31 /interactive cmd.exe
警告: セキュリティ強化のため、このタスクは対話的にではなく
予定された時刻に実行されます。
対話型のタスクが必要な場合は、schtasks.exe ユーティリティを使用してください (詳
細については、 'schtasks /?' と入力)。
新しいジョブをジョブ ID = 1 で追加しました。
例えば、NT AUTHORITY\SYSTEM ユーザーで実行すると「net use」では面白いことがわかる
net use \\remote /user:administrator
では、remoteマシンに接続できないが、
net use \\remote /user:remote\administrator
では接続できたりする。
また、
システムアカウントとしては他には「SYSTEM」「LOCAL SERVICE」「NETWORK SERVICE」がある
サービスで使用される「SYSTEM」「LOCAL SERVICE」「NETWORK SERVICE」アカウントとは?名称 | System(Local System) | Local Service | Network Service |
名称(日本語) | システム (ローカル システム) | ローカル サービス | ネットワーク サービス |
アカウントの実際の名前 | NT AUTHORITY\System | NT AUTHORITY\LocalService | NT AUTHORITY\NetworkService |
権限 | Administratorsグループのメンバと同じレベル | Usersグループのメンバと同じレベル | Usersグループのメンバと同じレベル |
ネットワーク・アクセス時の資格情報 | ローカルのコンピュータ・アカウント(<コンピュータ名>$) | 匿名 | ローカルのコンピュータ・アカウント(<コンピュータ名>$) |
パスワードの扱い | 指定不要(管理しなくてよい) | 指定不要(管理しなくてよい) | 指定不要(管理しなくてよい) |
Local ServiceとNetwork ServiceはWindows XPで新設された(Windows 2000にはない)。
興味深いのは、ネットワーク時に「<コンピュータ名>$」アカウントを使用していることだ。
サービスの実行プログラムでネットワークリソース・ネットワークアクセスを使用するときは意識してみると良い。
http://www.atmarkit.co.jp/ait/articles/0905/08/news095.html
返信削除