所以我有一个很长的命令,它是一个模糊的脚本(Powerview),我想做的是包括将命令写入另一个.psm1,但是模糊的脚本中的一个变量正在被解释,并在写入时被翻译。新的.psm1。我真正感到困惑的是,我接受了此命令并将其放入自己的.psm1中,效果很好。
所以这是命令:
$p1="(nEw-oBjEct SysTeM.iO.streamReAder( (nEw-oBjEct Io.comPressIon.DefLaTesTREAM( [iO.meMORystReAm][sysTEm.COnveRT]::frOmbaSe64StRinG('BASE64STUFFHERE=='), [iO.cOmpressIOn.COmpResSiOnmOde]::DeCOMprESs )),[teXt.eNCOdInG]::ascii)).ReADtoeND( ) | &( $vErbOsEpReferENce.tOStrinG()[1,3]+'X'-jOIN'')"
发生的是$ verbosereference.tostring被转换为“ SilentlyContinue.tostring”,这是不正确的。
所以我想问题是如何防止该变量被解释?我尝试用单引号转义,但这不能正常工作
答案 0 :(得分:0)
我不是以双引号开头,而是以单引号开头,然后用双引号将base64命令引用并有效