Is there a Windows solution for a program that relies on netrc?
Solution 1
Windows should be identical, except for the fact that your home directory is in a different location.
Try looking in the %userprofile%
directory for .netrc
.
If it's missing you can create it in Explorer by creating a new file named .netrc.
(the final .
will disappear).
You may need to create an environmental variable named HOME
that points to %USERPROFILE%
, like so: setx HOME %USERPROFILE%
Solution 2
On Windows OS open cmd.exe
, type
echo %HOME%
and then
echo %USERPROFILE%
Output should be the same. If not do this
setx HOME %USERPROFILE%
Afterwards create _netrc
file inside %USERPROFILE%
directory and add
machine <hostname1>
login <login1>
password <password1>
Example here
Important! on Windows you should create
_netrc
instead of.netrc
More on this you can read here
Louis Waweru
Updated on September 18, 2022Comments
-
Louis Waweru over 1 year
I have a Perl script that works well on Windows, however one function requires the use of a
.netrc
file for retrieving credentials.Is there a Windows equivalent of
.netrc
, or other solution, on Windows? -
Aaron Miller almost 11 years
.netrc
by default doesn't exist under Windows, and would need to be created especially for this script. Putting it in%userprofile%
would fail to live up to the Windows convention, which has per-user configuration files inc:\Users\<Username>\AppData\...
. See my answer for more. -
Louis Waweru almost 11 yearsSorry, I should have mentioned that it's not my script (and it's over 600KB in size).
-
Louis Waweru almost 11 yearsI actually tried to create one, but it's not a valid filename.
-
TheCompWiz almost 11 yearsyou actually can have a file named that... windows is just dumb and thinks the .netrc is the extension without a filename. Try naming the file ".netrc." (with a dot at the end as well as the beginning)
-
user1686 almost 11 years@AaronMiller: It's not supposed to live up to the Windows convention anyway; the function that looks for
~/.netrc
was just imported from Unix. (Windows has a completely different credential storage mechanism anyway.) And no, such files don't exist by default on Unix either. -
user1686 almost 11 years@Louis: Either create it via command line (e.g.
copy nul .netrc
) or by entering the name with double quotes (".netrc"
) in Notepad's "Save" dialog. -
Louis Waweru almost 11 yearsThe trailing
.
did the trick! -
Aaron Miller almost 11 years@grawity The reason I mention living up to the Windows convention is that there are some instances in which not doing so can be harmful, as for example when using the ComboFix tool to clean up a malware infestation -- older versions, at least, and perhaps the current version as well, will blow away anything in %userprofile% that wasn't created by the system, on the assumption that it might be malware. Whether it's a concern in any given circumstance is an open question, but it's definitely worth considering in light of the potential drawbacks.
-
user1686 almost 11 years@Aaron: How does it even know what was created by the system? I noticed that Windows 7 has made the profile directory much more visible in the GUI than previously (it became similar to a "home" directory), so I imagine many people would create their own files there...
-
Aaron Miller almost 11 years@grawity It doesn't know so much as it guesses, and assumes anything it doesn't recognize is necessarily hostile -- perhaps not all that unreasonable given that it's intended to be run on a potentially quite badly infected machine, and that user- or program-created files in
%userprofile%
aren't actually all that common. Generally, it seems that Windows users are expected to use the Documents, Downloads, My Pictures/Music/&c. folders, rather than the profile root itself, even under Windows 7. (I also haven't run ComboFix on a Windows 7 box; it may behave differently there.) -
Peter Mortensen over 5 yearsOr the filename should be
_netrc
? -
Peter Mortensen over 5 yearsOr the filename should be
_netrc
?