我在PC上遇到PowerShell的非常奇怪的行为。 我正在尝试从其中有空格的路径运行脚本(脚本中的内容无关紧要)。 例如,这个:
Import-Module activedirectory
$User1 = Read-Host "Enter User to copy Group-Memberships from"
$User2 = Read-Host "Enter User to past Group-Memberships to"
Get-ADUser -Identity $User1 -Properties memberof | Select-Object -ExpandProperty memberof | Add-ADGroupMember -Members $User2 -PassThru | Select-Object -Property SamAccountName
当我从ISE或以前打开的PowerShell Windows中运行它时,它工作正常。但是,如果我尝试双击.ps1-File,它立即崩溃。它会打开一个PowerShell Windows,显示一个我必须使用屏幕录制工具捕获的错误消息,因为它仅在不到一秒钟的时间内消失了。错误消息说:
C:\ Users ### \ Desktop \ Member:术语'C:\ Users ### \ Desktop \ Member'不被识别为cmdlet,函数,脚本文件或可运行程序的名称。检查名称的拼写,或者是否包含路径,请验证路径是否正确,然后重试。
行:1字符:1
+ C:\ Users ### \ Desktop \ Member of \ Copy_AD_Member-of_DomainLocal.ps1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo:ObjectNotFound:(C:\ Users ### \ Desktop \ Member:String)[],CommandNotFoundException
+ FullyQualifiedErrorId:CommandNotFoundException
如您所见,脚本的路径为“ C:\ Users ### \ Desktop \ Member of \ Copy_AD_Member-of_DomainLocal.ps1”,脚本的父目录“ Member of”中有一个空格。
我用破折号代替空格后,就可以正常工作。
最初,我的目标是使脚本可运行,即使您将其移动到另一个目录,也无需以用户身份手动键入任何代码行。可以这样做吗?