我正在尝试做的简短摘要。 我在Powershell中有一个脚本,该脚本需要2个文件,并读取嵌入式凭据,并将它们存储在变量中,然后可以从中运行管理命令。
这很好用,但是,在读取文件并存储密钥之后,我试图删除2个文件,并且不断出现以下错误:
启动过程:无法使用指定的参数来解析参数集 命名参数。位于\ mars \ Client-Installs \ NetSmart Test3 \ Setup.ps1:137字符:15 +开始进程<<<< -FilePath“ powershell.exe”-凭据$ adminCreds -WindowStyle隐藏-ArgumentList“删除项-Path $ file1 -Force“ -WorkingDirectory $ path -NoNewWindow -PassThru + CategoryInfo:InvalidArgument :( :) [开始过程],ParameterBindingException + FullyQualifiedErrorId:AmbiguousParameterSet,Microsoft.PowerShell.Commands.StartProcessCommand
启动过程:无法使用指定的参数来解析参数集 命名参数。位于\ mars \ Client-Installs \ NetSmart Test3 \ Setup.ps1:138字符:15 +开始进程<<<< -FilePath“ powershell.exe”-凭据$ adminCreds -WindowStyle隐藏-ArgumentList“删除项-Path $ file2 -Force“ -WorkingDirectory $ path -NoNewWindow -PassThru + CategoryInfo:InvalidArgument :( :) [开始过程],ParameterBindingException + FullyQualifiedErrorId:AmbiguousParameterSet,Microsoft.PowerShell.Commands.StartProcessCommand
我使用的帐户是域管理员的一部分,当我在任务管理器中查看时,可以看到它在管理模式下运行。
我还知道文件所在的文件夹路径也具有完全共享和安全访问权限。
这是我的代码的摘要(最下面的两行似乎无效)
function Authentication
{
#---------------------------------------------------
#Authenticate Admin Account using encrypted password
#---------------------------------------------------
$TempFolder = $env:temp
#The 2 lines underneath is if you are running the auth files from the same directory
#$global:AESKeyFilePath = $path + "\aeskey.txt"
#$global:SecurePwdFilePath = $path + "\credpassword.txt"
#Move the files to the temp folder
$global:file1 = $path + "\aeskey.txt"
$global:file2 = $path + "\credpassword.txt"
Copy-Item -Path $file1 -Destination $TempFolder -force
Copy-Item -Path $file2 -Destination $TempFolder -force
#If you choose to run it from the temp directory comment the lines above and uncomment the 2 below.
$global:AESKeyFilePath = $TempFolder + "\aeskey.txt"
$global:SecurePwdFilePath = $TempFolder + "\credpassword.txt"
$global:userUPN = "domain\user"
#use key and password to create local secure passwordtemp
$global:AESKey = Get-Content -Path $AESKeyFilePath
$global:pwdTxt = Get-Content -Path $SecurePwdFilePath
$global:securePass = $pwdTxt | ConvertTo-SecureString -Key $AESKey
#create a new psCredential object with required username and password
$global:adminCreds = New-Object System.Management.Automation.PSCredential($userUPN, $securePass)
#Remove the files below
Start-Process -FilePath "powershell.exe" -Credential $adminCreds -WindowStyle Hidden -ArgumentList "Remove-Item -Path $file1 -Force" -WorkingDirectory $path -NoNewWindow -PassThru
Start-Process -FilePath "powershell.exe" -Credential $adminCreds -WindowStyle Hidden -ArgumentList "Remove-Item -Path $file2 -Force" -WorkingDirectory $path -NoNewWindow -PassThru
}
答案 0 :(得分:0)
您不能同时指定-NoNewWindow
和-WindowStyle
,这是矛盾的。
有关参数集,请参见Get-Command Start-Process -Syntax。
我希望下面的方式是您所需要的。只需使用-WindowStyle Hidden
。
Start-Process -FilePath "powershell.exe" -Credential $adminCreds -WindowStyle Hidden -ArgumentList "Remove-Item -Path $file2 -Force" -WorkingDirectory $path -PassThru