无法在 powershell 中运行 powershell 脚本

问题描述

如果我运行此代码,它将运行文件

{Write-host "Please Enter the email address of the user you want to check the permissions"
 $user = Read-Host
 Powershell.exe  C:\Temp\Report\Reports.ps1}

但是如果我像这样运行它,这就是我需要做

{ Write-host "Please Enter the email address of the user you want to check the permissions"
 $user = Read-Host
 Powershell.exe  C:\Temp\Report\Reports.ps1 -processOneDrive $true -OneDriveEmail $user}

我收到此错误

Powershell.exe : C:\Temp\ReportSharedFiles\ReportSharedFiles.ps1 : Missing an argument for parameter 'OneDriveEmail'. Specify a 
At C:\Temp\ReportSharedFiles\Full Exchange Script Menu.ps1:88 char:2
+  Powershell.exe "c:\Temp\ReportSharedFiles\ReportSharedFiles.ps1" -pr ...
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (C:\Temp\ReportS...il'. Specify a :String) [],remoteexception
    + FullyQualifiedErrorId : NativeCommandError
 
parameter of type 'System.String' and try again.
At line:1 char:71
+ ... haredFiles\ReportSharedFiles.ps1 -processOneDrive True -OneDriveEmail
+                                                            ~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [ReportSharedFiles.ps1],ParameterBindingException
    + FullyQualifiedErrorId : MissingArgument,ReportSharedFiles.ps1

我做错了什么,我怎样才能让它工作?任何帮助将不胜感激

解决方法

我相信它要求您在错误中输入一个 sting 参数

'System.String' 类型的参数,然后重试。

希望能成功>

 { [string]$user = Read-Host "Please Enter the email address of the user you want to check the permissions"
 Powershell.exe  C:\Temp\Report\Reports.ps1 -processOneDrive $true -OneDriveEmail $user}

输入字符串> enter image description here

,

我已经想通了。似乎在另一个脚本中运行 powershell 脚本并输入参数时。当涉及到 -processOneDrive $true 时,它​​试图将其转换为导致错误的 boolem。我将其更改为 1,这肯定意味着正确,因此代码看起来像这样

Powershell.exe "c:\Temp\Report\Reports.ps1" -processOneDrive 1 -OneDriveEmail $user

现在运行顺利。感谢所有试图帮助我解决这个问题的人:)