Linuxを使用したことがあるか、Linux(Linux)を(Linux)使用している人を知っている場合は、おそらくsudoコマンドについて聞いたことがあるでしょう。このコマンドは、ほぼすべてのLinuxディストリビューション(Linux)にとって重要なコンポーネントであり、コマンドを別のユーザー、特にrootユーザーとして実行できるようにします。特定のLinuxディストリビューションでは、 (Linux)suコマンドを使用してrootユーザーとしてログインできますが、これは非常に危険であると考えられており、誰もログインしません。
実際、UbuntuのようなLinuxディストリビュー(Linux)ションではデフォルトで無効になっているほど危険です。代わりに、rootユーザーとしてコマンドを実行する場合は、 sudoコマンドを使用する必要があります。(sudo)では、Windowsはどうですか?残念(Well)ながら、ほとんどの人は管理者(Administrators)としてWindowsにログインしています。これは、 (Windows)Linuxのrootユーザーと同じです。ただし、Microsoftは、(Microsoft)ユーザーアカウント制御(User Account Control) またはUACを有効にすることで、管理者としてログインすることによる危険な影響を軽減しようとしています。
そうすれば、ユーザーが管理者権限を持っている場合でも、そのアカウントで実行されているアプリケーションは、ユーザーが手動で承認しない限り、それらの権限を継承しません。これにより、マルウェアやスパイウェアが、管理者(Administrator)としてログインしているWindowsユーザーに感染するのを防ぐことができます。
Linuxユーザーにはsudoコマンドがありますが、Windowsユーザーには何がありますか?Windowsユーザーが昇格された特権でコマンドを実行するために使用できる代替手段はありますか?(Are)Windows用(Windows)のsudoコマンドはありますか?この記事では、 Windows(Windows)ユーザー向けのsudoコマンドの5つの代替方法について説明します。
注:これらのツールの一部は現在かなり古いため、最新バージョンのWindowsで動作する場合と動作しない場合があります。 (Note: Some of these tools are quite old now, so they may or may not work with the latest versions of Windows. )
WindowsRunasコマンド
Windowsにはrunasコマンドがあります。これは、 (runas)Linuxのsudoに直接対応しています。runasコマンドを使用すると、別のユーザーまたは管理者としてスクリプト、プログラム、またはコマンドを実行できます。runasコマンドの完全な構文は次のとおりです。
runas [{/profile|/noprofile}] [/env] [/netonly] [/smartcard] [/showtrustlevels] [/trustlevel] /user:UserAccountName program
管理コマンドプロンプトを開きたい場合は、次のように入力できます。
runas /noprofile /user:Administrator cmd
/ noprofileは、現在のユーザープロファイルをロードしません。ユーザー環境変数にアクセスする必要がある場合は、これを削除できます。管理者権限でメモ帳(Notepad)を使用してテキストファイルを開きたい場合は、次のコマンドを使用できます。
runas /user:Administrator "notepad my_file.txt"
使用方法の詳細については、runasのTechnetページを確認してください。(Technet page)
なお、runasコマンドを使用する場合、プログラムをインストールしたり、設定を変更したりすると、コマンドを実行しているユーザーアカウントに変更が加えられます。たとえば、通常のユーザーであるユーザーXと、管理者であるユーザーYがあるとします。Xにログインし、管理者(Administrator)の資格情報を使用してルーン文字を実行すると、ユーザーXではなく、管理(Administrator)者の設定が変更されます。
したがって、EXEファイルを右クリックして[管理者(Administrator)として実行(Run)]を選択してアプリケーションをインストールすると、ログインしているユーザープロファイルではなく、組み込みの管理(Administrator)者ユーザープロファイルにインストールされます。プロファイルの問題なしにsudoのような真の昇格された特権が必要な場合は、以下の次の選択肢を確認してください。
Sudo for Windows – Sourceforge
Sudo for Windowsは、(Windows)LinuxforWindows(Linux)でのsudoコマンドと同じエクスペリエンスを提供するインストール可能な無料のプログラムです。唯一の違いは、Sudo for Windowsは、開発者が述べたように「ユーザーのプロファイルと作成されたオブジェクトの所有権を保持する」ことです。(“preserves the user’s profile and ownership of created objects”)これは、アプリのインストールやマイドキュメント(My Documents)などのユーザーの場所の変更に昇格された権限を使用する場合に非常に便利です。
管理者権限が付与されますが、コマンドの実行に使用しているアカウントではなく、現在のプロファイルのすべての変更が保持されます。プログラムには.NETバージョン2.0が必要ですが、個別にダウンロードすることはできません。2.0を入手するには、2.0を含む.NETFramework3.5をインストールする必要があり(.NET Framework 3.5)ます。
Sudo for Windowsをインストールしたら、 Sudoers(udoers)と呼ばれるプログラムによって作成された特定のグループに昇格された特権を持つことを許可するユーザーアカウントを追加する必要があります。[マイコンピュータ](My Computer)または[このPC ]を右クリックして、 [管理(Manage)]をクリックします。次に、[ユーザーとグループ]を展開し、[(Users and Groups)グループ(Groups)]をクリックします。Sudoersと呼ばれるものが表示されるはずです。
Sudoersをダブルクリックし、[追加(Add)]ボタンをクリックします。
次のダイアログで、[詳細設定(Advanced)]ボタンをクリックし、[今すぐ検索(Find Now)]をクリックします。これにより、システム上のすべてのユーザーとグループが一覧表示されます。追加するユーザーをダブルクリックします。(Double-click)
追加するユーザーの数に応じて、この手順を繰り返します。次に、[OK]をクリックすると、上記の[メンバー]リストボックスにメンバーが表示されます(Members)。[OK]をクリックすると、 (Click OK)sudoGUI(GUI)とコマンドを使用できるようになります。プログラムを右クリックすると、Sudoオプションが表示されます。
コマンドプロンプトを開き、sudoと入力して、昇格されたアクセス許可でコマンドを実行することもできます。
全体的に、それはかなり気の利いたものであり、非常にうまく機能します。ただし、この特定のプログラムは、右クリックまたはコマンドプロンプトを介してプログラムまたはプロセスを起動する場合に非常に役立ちますが、コマンドラインアプリを実行するためのものではないことに注意してください。(launching)たとえば、sudo mkdir“ c:Program Files ew”を実行したい場合、これはSudoforWindowsを使用しても機能し(Sudo)ません(Windows)。その機能のために、同じものと呼ばれるが、異なる開発者による別のプログラムがあります。以下をお読みください(Read)。
Sudo for Windows – Luke Sampson
コマンドラインアプリも実行できる別のSudoforWindowsを(Sudo for Windows)作成した別の開発者がいます。それでは、C:ProgramFilesに新しいフォルダーを作成する例に戻りましょう。デフォルトでは、これを実際に行うことはできません。
上記ではPowerShellを使用していますが、コマンドプロンプトを使用しても同じエラーが発生します。ただし、 Sudo(Sudo) for Windowsをインストールしたら、コマンドの前にsudoという単語を追加するだけで、エラーなしで完全に機能します。
これをインストールするには、PowerShellを開いてから、次のコマンドを順番に入力する必要があります。
iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
set-executionpolicy unrestricted -s cu -f
scoop install sudo
すべてが正常に機能する場合は、各コマンドの後にPowerShellで次の出力が表示されます。
それでおしまい!これで、コマンドの入力とsudoの前への追加を開始できます。このプログラムの唯一の厄介な点は、UACウィンドウが引き続きポップアップし、[はい(Yes)]をクリックして機能させることです。そのわずかな煩わしさがあっても、メリットはそれだけの価値があります。
昇格
Elevateは、 (Elevate)UACで動作するプログラムであり、sudoとまったく同じようには動作しません。Elevateを使用すると、runasコマンドと同様に、実行中のユーザーがAdministratorに変更されます。(Administrator)ただし、コマンドラインまたはバッチファイルでの作業には便利です。
昇格の主な目的は、UACを回避することではなく、昇格されていないシェルから昇格された状態でプロセスを開始し、コマンドが完了した後も通常どおり続行することです。Elevateは、右クリックしてコマンドプロンプト全体を(Elevate)管理者(Administrator)プロセスとして実行することを心配する必要がないため、スクリプト作成に役立ちます。
Windows用のElevationPowerToys
コマンドラインで多くの作業を行ったり、スクリプトやバッチファイルを操作したりする場合は、Elevation PowerToysforWindowsページに便利なツールとスクリプトが多数あります。
スクリプト昇格(script elevation power toys)パワートイは、コマンドラインからプログラムを昇格させようとしたり、管理者としてスクリプトを実行したりするときに、 UACの苛立たしい側面を克服するために作成されました。
うまくいけば、それはあなたが実際に(Hopefully)Windowsでsudoを使用しているように感じさせるのに十分なツールとプログラムです。完全に代わるものはありませんが、それに近いオプションはかなりあります。Windowsでプログラム、コマンド、またはスクリプトを昇格させるために他の何かを使用している場合は、コメントでお知らせください。楽しみ!
5 Windows Alternatives to the Linux sudo Command
If you’ve ever used Linux or know someone who uses Linux, then you’ve probably heard of thе sudo commаnd. The command is a critical component to just about every Linux distribution and what it does is lеt you run a command as a different user, most notablу the root user. On certain Linux distributions, you can lоg in as the rоot user by usіng the su command, but this is considered highly risky and no one ever does it.
Actually, it’s so dangerous that it’s disabled by default on Linux distributions like Ubuntu. Instead, you have to use the sudo command if you want to run a command as the root user. So what about Windows? Well, unfortunately, most people are logged into Windows as Administrators, which is the same as root user in Linux. However, Microsoft has tried to lessen the dangerous effects of being logged in as an Administrator by enabling User Account Control or UAC.
That way, even if the user has Administrative privileges, applications running under that account will not inherit those privileges unless it’s manually authorized by the user. This helps prevent malware and spyware from infecting a Windows user who is logged in as an Administrator.
So while Linux users have the sudo command, what do Windows user have? Are there alternatives that Windows users can use to run commands with elevated privileges? Is there a sudo command for Windows? In this article, I’ll talk about five alternatives to the sudo command for Windows users.
Note: Some of these tools are quite old now, so they may or may not work with the latest versions of Windows.
Windows Runas Command
Windows has the runas command, which is the direct counterpart to sudo on Linux. Using the runas command, you can execute a script, program or command as a different user or as an administrator. The full syntax for the runas command is:
runas [{/profile|/noprofile}] [/env] [/netonly] [/smartcard] [/showtrustlevels] [/trustlevel] /user:UserAccountName program
If you wanted to open an administrative command prompt, you could type the following:
runas /noprofile /user:Administrator cmd
/noprofile will not load the current user profile. You can remove that if you need access to the user environment variables. If you wanted to open a text file using Notepad with administrator privileges, you could use this command:
runas /user:Administrator "notepad my_file.txt"
You can checkout the Technet page on runas for more information on how to use it.
Note that when using runas command, if you install a program or make changes to settings, etc., the changes will be made to the user account that you are running the command on. For example, let’s say you have user X who is a normal user and user Y, who is an administrator. If you log into X and then do a runas using the Administrator credentials, changes will be made to the Administrator’s settings, not user X.
So if you install an application by right-clicking on the EXE file and choosing Run as Administrator, it’ll get installed to the built-in Administrator user profile, not the one you are logged into. If you want true elevated privileges like sudo without the profile issues, check out the next alternative below.
Sudo for Windows – Sourceforge
Sudo for Windows is a free program you can install that will give you the same experience of the sudo command on Linux for Windows. The only difference is that Sudo for Windows “preserves the user’s profile and ownership of created objects” as stated by the developer. This is really handy if you like to use elevated permissions for installing apps or making changes to user locations like My Documents, etc.
It’ll give you Administrative privileges, but will keep all the changes in the current profile instead of the account you’re using to run the command with. The program requires .NET version 2.0, which you can’t download individually. In order to get 2.0, you have to install .NET Framework 3.5, which include 2.0.
Once you install Sudo for Windows, you need to add the user accounts that you to allow to have elevated privileges to a specific group created by the program called Sudoers. Right-click on My Computer or This PC and click on Manage. Then expand Users and Groups and click on Groups. You should see one called Sudoers.
Double-click on Sudoers and click on the Add button.
On the next dialog, click the Advanced button and then click Find Now. This will list out all users and groups on the system. Double-click the user you want to add.
Repeat this step for however many users you want to add. Then click OK and you should see the members listed in the Members listbox shown above. Click OK and now you should be able to use the sudo GUI and command. If you right-click on a program, you’ll see the Sudo option.
You can also open a command prompt and type sudo to run command with elevated permissions.
Overall, it’s pretty nifty and works very well. However, note that this particular program is really useful for launching programs or processes either via right-click or via the command prompt, but it’s not meant for running command line apps. For example, if you wanted to do sudo mkdir “c:\Program Files\new”, this won’t work using Sudo for Windows. For that functionality, there is another program called the same thing, but by a different developer. Read below.
Sudo for Windows – Luke Sampson
There’s another developer who wrote another Sudo for Windows that lets you execute command line apps too. So let’s go back to the example about creating a new folder in C:\Program Files. You can’t really do this by default.
Above I’m using PowerShell, but you’ll get the same error using the command prompt also. However, once you install Sudo for Windows, just add the word sudo to the front of the command and it works perfectly with no errors!
To install it, you need to open PowerShell and then type in the following commands in order:
iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
set-executionpolicy unrestricted -s cu -f
scoop install sudo
If everything works OK, you should see the following output in PowerShell after each command:
That’s it! Now you can start typing in commands and adding sudo in front. The only annoying thing about this program is that the UAC window still pops up and you have click Yes for it to work. Even with that slight annoyance, the benefits are well worth it.
Elevate
Elevate is a program that works with UAC and doesn’t work exactly like sudo. With Elevate, it will change the executing user to Administrator like the runas command does. However, it’s useful for working in the command line or with batch files.
The main purpose of elevate is not to get around UAC, but to start a process in an elevated state from a non-elevated shell and then continuing on as normal even after the command has completed. Elevate is useful for scripting because you don’t have to worry about trying to script the whole right-clicking and running a command prompt as Administrator process.
Elevation PowerToys for Windows
For those of you who do a lot of work on the command line or work with scripts and batch files, then the Elevation PowerToys for Windows page has quite a few useful tools and scripts.
The script elevation power toys were created to overcome the frustrating aspects of UAC when trying to elevate a program from the command line or running scripts as administrators.
Hopefully, that’s enough tools and programs for you to make you feel like you’re actually using sudo on Windows. There’s no perfect replacement for it, but there are quite a few options that come close. If you use something else to elevate programs, commands or scripts in Windows, let us know in the comments. Enjoy!