在命令提示符下使用 aws-adfs 时如何指定用户名/密码
How to specify username/ password when using aws-adfs in command prompt
在 Linux 中,以下命令在我们为环境变量指定用户名和密码并使用 '--env" 开关
在 aws-adfs 中使用时运行良好
Linux .sh
export username=<my_username>
export password=<my_pass>
aws-adfs login --region <region> --adfs-host <adfs-host> --role-arn <Role> --env --no-sspi --profile <local-profile-name>
在 Windows 上使用 cmd,我无法使“--env”工作。不管我在这里尝试了什么,它总是使用我的 AD 登录用户,而不是我想使用的第二个帐户的 user/password。
Windows:
(aws-adfs) C:\>set username="my_username"
(aws-adfs) C:\>set password="my_password"
aws-adfs login --region <region> --adfs-host <adfs-host> --role-arn <Role> --env --profile <local-profile-name>
Powershell:
$env:username = 'my_username'
$env:password = 'my_password'
dir env:
aws-adfs login --region <region> --adfs-host <adfs-host> --role-arn <Role> --env --profile <local-profile-name>
有谁知道在使用 aws-adfs 时如何在 cmd 中执行以下操作之一?
--env Read username, password from environment
variables (username and password).
--stdin Read username, password from standard input
separated by a newline.
--authfile TEXT Read username, password from a local file
(optional)
更新:
根据下面的评论,在批处理文件中设置用户名和密码的值有效。
set "username=my_username"
set "password=my_password"
但是,我们似乎有一个 aws-adfs 错误,您还需要在 windows 中使用完整的电子邮件地址作为用户名,但在 Linux 中,只有用户名有效
在 Windows 上预定义了环境变量 USERNAME
,所有字母均为大写,其中包含用户帐户的名称,请参阅维基百科章节 Windows Environment Variables 了解更多信息Windows.
上的预定义环境变量
aws-adfs 版本 2.0.1 不要求 Windows 环境变量 username
定义为所有字母均为小写。环境变量名称是 Linux 上的 case-sensitive,其中可以定义一个环境变量 USERNAME
,另外还可以定义一个环境变量 username
。
可以在Windows命令提示符中使用 window:
set "username="
set "username=my_username@mail.com"
set "password="
set "password=my_password"
首先删除了case-insensitive环境变量USERNAME
,然后定义了环境变量username
,所有字母小写,等号和双引号之间的字符串字符在最后。现有环境变量的重新定义不会改变变量名称字母的大小写。用户名通常是电子邮件地址,应该完整定义。
然后删除 case-insensitive 环境变量 password
可能是偶然定义的,并用名称 password
重新定义,所有字母均为小写,字符串值在 [=23= 之间] 和 "
在命令行末尾。
请先阅读我在 Why is no string output with 'echo %var%' after using 'set var = text' on command line? It makes a big difference for the Windows command set 上的回答 "
位于命令参数字符串的开头 SET 左侧变量名称或开头等号后的字符串值。 set username="my_username"
将带有双引号的字符串 "my_username"
和错误输入的尾随空格分配给环境变量 username
,这在这个用例中肯定不好。带有 "
的用户名字符串肯定不起作用。
但也可以在 Windows 命令提示符 window 中使用:
set "username=my_username@mail.com"
set "password=my_password"
环境变量 USERNAME
的字符串值在本例中更新为字符串 my_username@mail.com
。尽管在命令提示符中将名称完全小写,但变量名称没有改变 window.
在 PowerShell 控制台中 window 应该用同样的方式完成:
$Env:username = ''
$Env:username = 'my_username@mail.com'
$Env:password = ''
$Env:password = 'my_password'
或者只用了:
$Env:username = 'my_username@mail.com'
$Env:password = 'my_password'
请参阅 Microsoft 文档 about Environment Variables - PowerShell。
对环境变量列表所做的修改与在Windows命令提示符window.[=43=中使用命令SET所做的修改相同]
最好在单独的本地执行环境中的 Windows 批处理文件 中定义两个环境变量:
@echo off
setlocal EnableExtensions DisableDelayedExpansion
set "username=my_username@mail.com"
set "password=my_password"
aws-adfs login --region "region" --adfs-host "adfs-host" --role-arn "Role" --env --profile "local-profile-name"
endlocal
命令SETLOCAL创建一个新的环境变量列表作为当前环境变量列表的副本。在这个新列表中,环境变量 USERNAME
和(如果完全存在)password
被更新或使用正确的字符串值创建新的。然后使用这两个环境变量执行aws-adfs
。最后,命令 ENDLOCAL 丢弃刚刚使用的环境变量列表,变量为 USERNAME
和 password
,并恢复之前的环境变量列表,变量为 USERNAME
使用 Windows shell.
默认为当前帐户定义的字符串值
阅读 以获取有关命令 SETLOCAL 和 ENDLOCAL.
的详细信息
在 Linux 中,以下命令在我们为环境变量指定用户名和密码并使用 '--env" 开关
在 aws-adfs 中使用时运行良好Linux .sh
export username=<my_username>
export password=<my_pass>
aws-adfs login --region <region> --adfs-host <adfs-host> --role-arn <Role> --env --no-sspi --profile <local-profile-name>
在 Windows 上使用 cmd,我无法使“--env”工作。不管我在这里尝试了什么,它总是使用我的 AD 登录用户,而不是我想使用的第二个帐户的 user/password。
Windows:
(aws-adfs) C:\>set username="my_username"
(aws-adfs) C:\>set password="my_password"
aws-adfs login --region <region> --adfs-host <adfs-host> --role-arn <Role> --env --profile <local-profile-name>
Powershell:
$env:username = 'my_username'
$env:password = 'my_password'
dir env:
aws-adfs login --region <region> --adfs-host <adfs-host> --role-arn <Role> --env --profile <local-profile-name>
有谁知道在使用 aws-adfs 时如何在 cmd 中执行以下操作之一?
--env Read username, password from environment
variables (username and password).
--stdin Read username, password from standard input
separated by a newline.
--authfile TEXT Read username, password from a local file
(optional)
更新:
根据下面的评论,在批处理文件中设置用户名和密码的值有效。
set "username=my_username"
set "password=my_password"
但是,我们似乎有一个 aws-adfs 错误,您还需要在 windows 中使用完整的电子邮件地址作为用户名,但在 Linux 中,只有用户名有效
在 Windows 上预定义了环境变量 USERNAME
,所有字母均为大写,其中包含用户帐户的名称,请参阅维基百科章节 Windows Environment Variables 了解更多信息Windows.
aws-adfs 版本 2.0.1 不要求 Windows 环境变量 username
定义为所有字母均为小写。环境变量名称是 Linux 上的 case-sensitive,其中可以定义一个环境变量 USERNAME
,另外还可以定义一个环境变量 username
。
可以在Windows命令提示符中使用 window:
set "username="
set "username=my_username@mail.com"
set "password="
set "password=my_password"
首先删除了case-insensitive环境变量USERNAME
,然后定义了环境变量username
,所有字母小写,等号和双引号之间的字符串字符在最后。现有环境变量的重新定义不会改变变量名称字母的大小写。用户名通常是电子邮件地址,应该完整定义。
然后删除 case-insensitive 环境变量 password
可能是偶然定义的,并用名称 password
重新定义,所有字母均为小写,字符串值在 [=23= 之间] 和 "
在命令行末尾。
请先阅读我在 Why is no string output with 'echo %var%' after using 'set var = text' on command line? It makes a big difference for the Windows command set 上的回答 "
位于命令参数字符串的开头 SET 左侧变量名称或开头等号后的字符串值。 set username="my_username"
将带有双引号的字符串 "my_username"
和错误输入的尾随空格分配给环境变量 username
,这在这个用例中肯定不好。带有 "
的用户名字符串肯定不起作用。
但也可以在 Windows 命令提示符 window 中使用:
set "username=my_username@mail.com"
set "password=my_password"
环境变量 USERNAME
的字符串值在本例中更新为字符串 my_username@mail.com
。尽管在命令提示符中将名称完全小写,但变量名称没有改变 window.
在 PowerShell 控制台中 window 应该用同样的方式完成:
$Env:username = ''
$Env:username = 'my_username@mail.com'
$Env:password = ''
$Env:password = 'my_password'
或者只用了:
$Env:username = 'my_username@mail.com'
$Env:password = 'my_password'
请参阅 Microsoft 文档 about Environment Variables - PowerShell。
对环境变量列表所做的修改与在Windows命令提示符window.[=43=中使用命令SET所做的修改相同]
最好在单独的本地执行环境中的 Windows 批处理文件 中定义两个环境变量:
@echo off
setlocal EnableExtensions DisableDelayedExpansion
set "username=my_username@mail.com"
set "password=my_password"
aws-adfs login --region "region" --adfs-host "adfs-host" --role-arn "Role" --env --profile "local-profile-name"
endlocal
命令SETLOCAL创建一个新的环境变量列表作为当前环境变量列表的副本。在这个新列表中,环境变量 USERNAME
和(如果完全存在)password
被更新或使用正确的字符串值创建新的。然后使用这两个环境变量执行aws-adfs
。最后,命令 ENDLOCAL 丢弃刚刚使用的环境变量列表,变量为 USERNAME
和 password
,并恢复之前的环境变量列表,变量为 USERNAME
使用 Windows shell.
阅读