使用 PowerShell 自动化 Cygwin 配置
Posted
技术标签:
【中文标题】使用 PowerShell 自动化 Cygwin 配置【英文标题】:Automation of Cygwin configuration with PowerShell 【发布时间】:2014-06-27 06:57:05 【问题描述】:我已经使用 PowerShell 脚本安装了 Cygwin。
我正在手动执行以下步骤:
运行一个新的cygwin bash shell(编辑cygwin.bat
之后)并输入:
mount --change-cygdrive-prefix /
chmod +r /etc/passwd /etc/group
chmod 755 /var
启动 Cygwin bash shell 并运行 ssh-host-config
。对所有密钥生成问题回答“是”。
是否可以在 PowerShell 脚本中自动执行这些操作,例如安装 Cygwin,然后一次性执行步骤 1 和 2?
【问题讨论】:
如果你cd
进入 cygwin 目录,你可以运行 bash.exe ssh-host-config --yes
不明白为什么你不能把它添加到第 1 步的底部以在 1 步中完成所有操作
如果我运行 "bash.exe ssh-host-config --yes " ,我收到一个错误 "the term bash.exe is not Recognized as a cmdlet" ,还有一件事是我必须 Cygwin.bat 文件而不是 bash.exe 文件
您需要将cd
放入所有可执行文件所在的%cygwinhome%\bin
,其中一个是bash.exe
。您只需将上述命令附加到您的 cygwin.bat 文件中即可自动生成密钥
非常感谢,最后澄清一下,运行“run ssh-host-config”后,有一个“为守护进程输入CYGWIN的值”的步骤,这一步怎么做在执行期间无需用户输入干预的情况下静默输入值?
【参考方案1】:
使用这个命令:
bash.exe ssh-host-config --yes -u "Cygwinuser" -c "binmode ntsec tty" -w "pwd@123"
cygrunsrv -S sshd
稍后去 services.msc 检查服务是否正在运行
【讨论】:
以上是关于使用 PowerShell 自动化 Cygwin 配置的主要内容,如果未能解决你的问题,请参考以下文章
如何在 powershell 中更改目录并在该目录中运行文件?
使用 Windows bat 文件打开 Cygwin 并运行脚本文件