1. Ran this from Visual Studio (PB encoding was different than PS encoding. PS didn't like it.):
Code: Select all
$code = {
[My Powershell code here]
}
[convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes($code))
2. Copied the output and placed in PB. Spits out the CSVs with no fuss
Code: Select all
Encoded$ = "DQAKAA0ACgAkAGMAdQByAHIARABpAHIAIAA9ACAAJABQAFMAUwBjAHIAaQBwAHQAUgBvAG8AdAANAAoAIwBXAHIAaQB0AGUALQBIAG8AcwB0ACAAJABjAHUAcgByAEQAaQByAA0ACgANAAoAZgBvAHIAZQBhAGMAaAAoACQAZgBpAGwAZQAgAGkAbgAgACgARwBlAHQALQBDAGgAaQBsAGQASQB0AGUAbQAgACQAYwB1AHIAcgBEAGkAcgApACkAIAB7AA0ACgAgACAAIAAgAA0ACgAgACAAIAAgAGkAZgAgACgAJABmAGkAbABlAC4ARgB1AGwAbABOAGEAbQBlACAALQBtAGEAdABjAGgAIAAoACcAXAAuAHgAbABzACcAKQApACAAewANAAoAIAAgACAAIAAgACAAIAAgAA0ACgAgACAAIAAgACAAIAAgACAAJABuAGUAdwBOAGEAbQBlACAAPQAgACQAZgBpAGwAZQAuAEYAdQBsAGwATgBhAG0AZQAgAC0AcgBlAHAAbABhAGMAZQAgACgAJwBcAC4AeABsAHMALgAnACwAIAAnAC4AYwBzAHYAJwApAA0ACgAgACAAIAAgACAAIAAgACAAIwBXAHIAaQB0AGUALQBIAG8AcwB0ACAAJABuAGUAdwBOAGEAbQBlAA0ACgAgACAAIAAgACAAIAAgACAADQAKACAAIAAgACAAIAAgACAAIAAkAEUAeABjAGUAbABXAEIAIAA9ACAAbgBlAHcALQBvAGIAagBlAGMAdAAgAC0AYwBvAG0AbwBiAGoAZQBjAHQAIABlAHgAYwBlAGwALgBhAHAAcABsAGkAYwBhAHQAaQBvAG4ADQAKACAAIAAgACAAIAAgACAAIAAkAFcAbwByAGsAYgBvAG8AawAgAD0AIAAkAEUAeABjAGUAbABXAEIALgBXAG8AcgBrAGIAbwBvAGsAcwAuAE8AcABlAG4AKAAkAGYAaQBsAGUALgBGAHUAbABsAE4AYQBtAGUAKQAgAA0ACgAgACAAIAAgACAAIAAgACAAJABXAG8AcgBrAGIAbwBvAGsALgBTAGEAdgBlAEEAcwAoACQAbgBlAHcATgBhAG0AZQAsADYAKQANAAoAIAAgACAAIAAgACAAIAAgACQAVwBvAHIAawBiAG8AbwBrAC4AQwBsAG8AcwBlACgAJABmAGEAbABzAGUAKQANAAoAIAAgACAAIAAgACAAIAAgACQARQB4AGMAZQBsAFcAQgAuAHEAdQBpAHQAKAApAA0ACgAgACAAIAAgACAAIAAgACAADQAKACAAIAAgACAAfQANAAoAfQANAAoA"
Compiler = RunProgram("powershell", "-EncodedCommand " + Encoded$, #Null$, #PB_Program_Hide | #PB_Program_Open | #PB_Program_Read)
CloseProgram(Compiler) ; Close the connection to the program
Very cool. I have two dozen domain management scripts to make Godzilla status with PB now
Thanks PB team and lurkers!
UPDATE:
Added a bit of wait code to allow PS to do it's thing before PB moves on. (For us novices. The pros already know this stuff.)
Code: Select all
Encoded$ = "DQAKAA0ACgAkAGMAdQByAHIARABpAHIAIAA9ACAAJABQAFMAUwBjAHIAaQBwAHQAUgBvAG8AdAANAAoAIwBXAHIAaQB0AGUALQBIAG8AcwB0ACAAJABjAHUAcgByAEQAaQByAA0ACgANAAoAZgBvAHIAZQBhAGMAaAAoACQAZgBpAGwAZQAgAGkAbgAgACgARwBlAHQALQBDAGgAaQBsAGQASQB0AGUAbQAgACQAYwB1AHIAcgBEAGkAcgApACkAIAB7AA0ACgAgACAAIAAgAA0ACgAgACAAIAAgAGkAZgAgACgAJABmAGkAbABlAC4ARgB1AGwAbABOAGEAbQBlACAALQBtAGEAdABjAGgAIAAoACcAXAAuAHgAbABzACcAKQApACAAewANAAoAIAAgACAAIAAgACAAIAAgAA0ACgAgACAAIAAgACAAIAAgACAAJABuAGUAdwBOAGEAbQBlACAAPQAgACQAZgBpAGwAZQAuAEYAdQBsAGwATgBhAG0AZQAgAC0AcgBlAHAAbABhAGMAZQAgACgAJwBcAC4AeABsAHMALgAnACwAIAAnAC4AYwBzAHYAJwApAA0ACgAgACAAIAAgACAAIAAgACAAIwBXAHIAaQB0AGUALQBIAG8AcwB0ACAAJABuAGUAdwBOAGEAbQBlAA0ACgAgACAAIAAgACAAIAAgACAADQAKACAAIAAgACAAIAAgACAAIAAkAEUAeABjAGUAbABXAEIAIAA9ACAAbgBlAHcALQBvAGIAagBlAGMAdAAgAC0AYwBvAG0AbwBiAGoAZQBjAHQAIABlAHgAYwBlAGwALgBhAHAAcABsAGkAYwBhAHQAaQBvAG4ADQAKACAAIAAgACAAIAAgACAAIAAkAFcAbwByAGsAYgBvAG8AawAgAD0AIAAkAEUAeABjAGUAbABXAEIALgBXAG8AcgBrAGIAbwBvAGsAcwAuAE8AcABlAG4AKAAkAGYAaQBsAGUALgBGAHUAbABsAE4AYQBtAGUAKQAgAA0ACgAgACAAIAAgACAAIAAgACAAJABXAG8AcgBrAGIAbwBvAGsALgBTAGEAdgBlAEEAcwAoACQAbgBlAHcATgBhAG0AZQAsADYAKQANAAoAIAAgACAAIAAgACAAIAAgACQAVwBvAHIAawBiAG8AbwBrAC4AQwBsAG8AcwBlACgAJABmAGEAbABzAGUAKQANAAoAIAAgACAAIAAgACAAIAAgACQARQB4AGMAZQBsAFcAQgAuAHEAdQBpAHQAKAApAA0ACgAgACAAIAAgACAAIAAgACAADQAKACAAIAAgACAAfQANAAoAfQANAAoA"
Compiler = RunProgram("powershell", "-EncodedCommand " + Encoded$, #Null$, #PB_Program_Hide | #PB_Program_Open | #PB_Program_Read)
wait = WaitProgram(Compiler)
If Not wait
CloseProgram(Compiler)
EndIf