首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Powershell中重定向WSL输入

在Powershell中重定向WSL输入
EN

Stack Overflow用户
提问于 2021-02-07 23:21:36
回答 2查看 200关注 0票数 1

我一直在尝试编写一个powershell脚本,它可以自动设置和配置我的windows工作区,但目前在第一次执行它时,我一直在尝试将输入重定向到WSL。问题的核心是,Ubuntu第一次启动时会提示输入用户名和密码,然后登录到bash shell。我尝试将输入行写到文本文件中,如下所示:

代码语言:javascript
复制
Username
Password
Password
exit

然后,我尝试将wsl的输入重定向到该文件:

代码语言:javascript
复制
Start-Process ubuntu2004.exe -RedirectStandardInput stdin.txt -NoNewWindow -Wait

当执行ws1只是开始向Enter new UNIX username: adduser: only one or two names allowed发送垃圾邮件时,上面的代码并不起作用。我尝试在CMD中使用<输入重定向执行同样的操作,但结果是相同的。

EN

回答 2

Stack Overflow用户

发布于 2021-02-14 19:32:17

这不完全是您问题的答案,但在我看来,ansible更适合于这样的任务。

我自己最近开始对在wsl中组装一个工作区感兴趣,ansible对我来说似乎是最好的解决方案。

在开始构建之前,您将需要执行最少的步骤(创建一个用户并安装几个包,所有这些都可以放在自述文件中),但之后将没有任何限制。

您可以通过github上的ansible找到几个现成的wsl组装示例。

票数 0
EN

Stack Overflow用户

发布于 2021-02-16 06:58:15

在新的Ubuntu WSL实例中设置用户名/密码的一些想法:

  • 第二,也许也是最有希望的,我刚刚在商店安装了一个新的Debian WSL (因为我不想弄乱我的Ubuntu安装)。

当运行debian.exe (如ubuntu2004.exe)时,我让它运行安装,然后当它开始询问默认用户名/密码时,我按Ctrl+C退出。此时,安装了WSL实例,但只安装了root用户。我假设您的脚本可以让该命令运行一段时间,然后终止该进程以复制该命令。

然后,您应该能够从脚本中运行wsl -u root useradd --create-home --user-group --groups adm,dialout,cdrom,floppy,sudo,audio,dip,video,plugdev,netdev --password "encryptedPassword" username (有关创建加密密码的信息,请参阅here )。我认为这会让你像WSL设置的那样成为一个普通的Ubuntu用户。

然后,您需要创建一个/etc/wsl.conf文件(instructions),让实例知道该用户是默认用户,或者LxRunOffline将其列为其功能之一。

  • ,但我也要指出,您可能只想保留一个现有WSL实例的“备份”。执行wsl --export <distroname> <imagename.tgz>,然后您可以通过复制tgz并执行wsl --import <DistroName> <DirectoryWhereYouwantItToLive> <imagename.tgz>,在设置新的Windows主机时导入它。

如果您愿意,您可以使用所需的WSL配置保持此映像为最新,以便在重新构建Windows主机时不必重新创建它。也就是说,这就是我遵循@Mystic的建议,使用Ansible将我的WSL“配置存储为代码”的地方。它不仅允许我重新创建我WSL实例,而且还允许我在设置(或重置) Linode主机或其他Linux系统时重新创建相同的配置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66089558

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档