使用PowerShell脚本安装Jenkins遇账户错误,求解决办法
Windows服务器Jenkins服务创建失败的解决方法
问题场景
在Windows服务器上执行以下PowerShell脚本安装Jenkins时:
# Create a new local user account for running Jenkins $userName = 'jenkins' $userPassword = 'P@ssw0rd' | ConvertTo-SecureString -AsPlainText -Force $credential = New-Object System.Management.Automation.PSCredential ($userName, $userPassword) New-LocalUser -Name $userName -Password $userPassword # Download the latest Jenkins WAR file $jenkinsUrl = 'http://updates.jenkins-ci.org/latest/jenkins.war' $jenkinsPath = 'C:\Program Files (x86)\Jenkins\jenkins.war' Invoke-WebRequest -Uri $jenkinsUrl -OutFile $jenkinsPath # Create a new Jenkins service that runs under the jenkins user account $serviceName = 'Jenkins' $binaryPath = "C:\Windows\System32\java.exe -jar $jenkinsPath --httpPort=8080" $serviceParams = @{ Name = $serviceName BinaryPathName = $binaryPath Credential = $credential Description = 'Jenkins CI server' } New-Service @serviceParams Start-Service $serviceName
出现如下错误:
New-Service : Service ' (Jenkins)' cannot be created due to the following error: The account name is invalid or does not exist, or the password is invalid for the account name specified At line:1 char:1 + New-Service @serviceParams + ~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : PermissionDenied: (Jenkins:String) [New-Service], ServiceCommandException + FullyQualifiedErrorId : CouldNotNewService,Microsoft.PowerShell.Commands.NewServiceCommand
解决方法
验证本地用户是否成功创建:执行
Get-LocalUser -Name jenkins,如果返回空结果,说明用户创建失败。修改用户创建代码,添加必要参数确保创建成功:New-LocalUser -Name $userName -Password $userPassword -AccountNeverExpires -UserMayNotChangePassword -Force注意:必须以管理员身份运行PowerShell,否则无权限创建本地用户。
修正本地账户凭证格式:
New-Service识别本地账户时需要加上.\前缀,否则会误判为域账户。修改凭证创建代码:$credential = New-Object System.Management.Automation.PSCredential (".\$userName", $userPassword)检查密码是否符合本地策略:
P@ssw0rd可能不符合服务器的密码复杂度/长度要求(比如部分服务器要求密码至少8位、包含大小写+数字+特殊字符)。更换为符合策略的密码,或临时调整本地密码策略测试。确保Jenkins目录存在:脚本中指定的
C:\Program Files (x86)\Jenkins目录如果不存在,会导致WAR文件下载失败,间接影响服务创建。添加目录创建代码到下载WAR文件之前:New-Item -Path 'C:\Program Files (x86)\Jenkins' -ItemType Directory -Force临时改用内置系统账户运行服务:如果本地账户问题暂时无法解决,可以先使用
LocalSystem账户创建服务,跳过自定义用户的步骤,修改服务参数:$serviceParams = @{ Name = $serviceName BinaryPathName = $binaryPath Description = 'Jenkins CI server' StartupType = 'Automatic' }此方法权限较高,仅用于测试Jenkins能否正常启动,后续建议切换到专用本地账户。
内容的提问来源于stack exchange,提问作者saikrishnakudelli
相关产品推荐
相关产品推荐

