Pagina 1 di 3
[RISOLTO] Problema nell'esecuzione di uno script di PowerShell utilizzando la funzione di esecuzione di PowerShell
Pubblicato: 26 aprile 2022 - 16:36
di Albin
Buongiorno,
Abbiamo creato uno script PowerShell che consente di modificare la coda di stampa di una stampante.
ecco lo script in questione
Codice: Seleziona tutto
run(r'powershell.exe -executionpolicy bypass ./test.ps1')
test.ps1: contiene lo script PowerShell
Ecco lo script PowerShell associato
Codice: Seleziona tutto
$OldServerName = "xxxxxxxxxxxxx"
$NewServerName = "yyyyyyyyyyyy"
#Get existing network printers
$CurrentPrinters = Get-WmiObject Win32_Printer | Where-Object {$_.Network -eq "true"} | Select-Object -ExpandProperty Name
#Remove existing network printers
Get-WmiObject -Class Win32_Printer | Where-Object {$_.Network -eq 'true'} | ForEach-Object {$_.delete()}
#Map the printers from a new server.
$CurrentPrinters | ForEach-Object {
$newprintername = $_.Replace( $OldServerName, $NewServerName )
Add-Printer -ConnectionName $newprintername
}
Lo script non funziona e vorrei sapere quale potrebbe essere il problema.
La funzione di esecuzione di PowerShell consente di eseguire più righe di comando di PowerShell?
Come posso vedere gli errori associati?
GRAZIE
Re: Problema durante l'esecuzione di uno script di PowerShell utilizzando la funzione di esecuzione di PowerShell
Pubblicato: 27 aprile 2022 - 11:19
di dcardon
Ciao Albin,
puoi provare il comando
Sinceramente,
Denis
Re: Problema durante l'esecuzione di uno script di PowerShell utilizzando la funzione di esecuzione di PowerShell
Pubblicato: 27 aprile 2022 - 12:13
di Albin
Ciao Denis,
ho provato il comando ma continua a non funzionare.
Cordiali saluti,
Albin
Re: Problema durante l'esecuzione di uno script di PowerShell utilizzando la funzione di esecuzione di PowerShell
Pubblicato: 27 aprile 2022 - 14:04
di dcardon
Si tratta di una quantità di informazioni piuttosto limitata...
Re: Problema durante l'esecuzione di uno script di PowerShell utilizzando la funzione di esecuzione di PowerShell
Pubblicato: 27 aprile 2022 - 14:28
di Albin
Il problema che sto riscontrando è che quando distribuisco il pacchetto contenente lo script
Su una macchina non ho riscontrato errori a livello di console Wapt, ma non funziona.
Vorrei sapere quale potrebbe essere la causa del problema, per favore. Grazie
Sinceramente,
Albino
Re: Problema durante l'esecuzione di uno script di PowerShell utilizzando la funzione di esecuzione di PowerShell
Pubblicato: 27 aprile 2022 - 14:36
di Albin
Ho anche abilitato l'esecuzione degli script di PowerShell sul computer interessato
Re: Problema durante l'esecuzione di uno script di PowerShell utilizzando la funzione di esecuzione di PowerShell
Pubblicato: 27 aprile 2022 - 16:24
di Gaetan
Ciao,
lo script funziona anche al di fuori di WAPT?
Re: Problema durante l'esecuzione di uno script di PowerShell utilizzando la funzione di esecuzione di PowerShell
Pubblicato: 27 aprile 2022 - 16:27
di Albin
Ciao Gaetan,
sì, a parte WAPT lo script funziona perfettamente.
Saluti,
Albin
Re: Problema durante l'esecuzione di uno script di PowerShell utilizzando la funzione di esecuzione di PowerShell
Pubblicato: 27 aprile 2022 - 16:40
di Gaetan
All'interno del pacchetto, è possibile eseguire ogni comando PowerShell utilizzando `run_powershell` anziché uno script?
Questo per cercare di individuare il problema.
Re: Problema durante l'esecuzione di uno script di PowerShell utilizzando la funzione di esecuzione di PowerShell
Pubblicato: 27 aprile 2022 - 17:11
di Albin
Abbiamo appena eseguito ogni comando dello script con run_powershell
Ecco il codice:
Codice: Seleziona tutto
run_powershell('$OldServerName = "xxxxxxxx"')
run_powershell('$NewServerName = "yyyyyyyy"')
run_powershell('$CurrentPrinters = Get-WmiObject Win32_Printer | Where-Object {$_.Network -eq "true"} | Select-Object -ExpandProperty Name')
run_powershell('-WmiObject -Class Win32_Printer | Where-Object {$_.Network -eq "true"} | ForEach-Object {$_.delete()}')
run_powershell('$CurrentPrinters | ForEach-Object { $newprintername = $_.Replace( $OldServerName, $NewServerName ) Add-Printer -ConnectionName $newprintername}')
Quando distribuisco il pacchetto su una macchina, si verificano errori nella console Wapt
Ecco gli errori:
Codice: Seleziona tutto
Installing:
Traceback (most recent call last):
File "C:\Program Files (x86)\wapt\setuphelpers_windows.py", line 1080, in run_powershell
result = run(cmd,
File "C:\Program Files (x86)\wapt\waptutils.py", line 2091, in run
raise CalledProcessErrorOutput(proc.returncode, cmd, ''.join(output+return_stderr))
waptutils.CalledProcessErrorOutput: Command 'powershell -NoLogo -NoProfile -NonInteractive -ExecutionPolicy Unrestricted -OutputFormat text -EncodedCommand "JABQAHIAbwBnAHIAZQBzAHMAUAByAGUAZgBlAHIAZQBuAGMAZQAgAD0AIAAiAFMAaQBsAGUAbgB0AGwAeQBDAG8AbgB0AGkAbgB1AGUAIgAKAC0AVwBtAGkATwBiAGoAZQBjAHQAIAAtAEMAbABhAHMAcwAgAFcAaQBuADMAMgBfAFAAcgBpAG4AdABlAHIAIAB8ACAAVwBoAGUAcgBlAC0ATwBiAGoAZQBjAHQAIAB7ACQAXwAuAE4AZQB0AHcAbwByAGsAIAAtAGUAcQAgACIAdAByAHUAZQAiAH0AIAB8ACAARgBvAHIARQBhAGMAaAAtAE8AYgBqAGUAYwB0ACAAewAkAF8ALgBkAGUAbABlAHQAZQAoACkAfQAgACAAfAAgAEMAbwBuAHYAZQByAHQAVABvAC0ASgBzAG8AbgAgAA==" ' returned non-zero exit status 1.
Output:#< CLIXML
<Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04"><S S="Error">-WmiObject : Le terme «-WmiObject» n'est pas reconnu comme nom d'applet de commande, fonction, fichier de script ou _x000D__x000A_</S><S S="Error">programme exécutable. Vérifiez l'orthographe du nom, ou si un chemin d'accès existe, vérifiez que le chemin d'accès _x000D__x000A_</S><S S="Error">est correct et réessayez._x000D__x000A_</S><S S="Error">Au caractère Ligne:2 : 1_x000D__x000A_</S><S S="Error">+ -WmiObject -Class Win32_Printer | Where-Object {$_.Network -eq "true" ..._x000D__x000A_</S><S S="Error">+ ~~~~~~~~~~_x000D__x000A_</S><S S="Error"> + CategoryInfo : ObjectNotFound: (-WmiObject:String) [], CommandNotFoundException_x000D__x000A_</S><S S="Error"> + FullyQualifiedErrorId : CommandNotFoundException_x000D__x000A_</S><S S="Error"> _x000D__x000A_</S></Objs>
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Program Files (x86)\wapt\common.py", line 3938, in install_wapt
exitstatus = setup.install()
File "C:\windows\TEMP\waptq24g89cv\setup.py", line 15, in install
File "C:\Program Files (x86)\wapt\setuphelpers_windows.py", line 1084, in run_powershell
raise CalledProcessErrorOutput(e.returncode, cmd, e.output)
waptutils.CalledProcessErrorOutput: Command 'powershell -NoLogo -NoProfile -NonInteractive -ExecutionPolicy Unrestricted -OutputFormat text -EncodedCommand "JABQAHIAbwBnAHIAZQBzAHMAUAByAGUAZgBlAHIAZQBuAGMAZQAgAD0AIAAiAFMAaQBsAGUAbgB0AGwAeQBDAG8AbgB0AGkAbgB1AGUAIgAKAC0AVwBtAGkATwBiAGoAZQBjAHQAIAAtAEMAbABhAHMAcwAgAFcAaQBuADMAMgBfAFAAcgBpAG4AdABlAHIAIAB8ACAAVwBoAGUAcgBlAC0ATwBiAGoAZQBjAHQAIAB7ACQAXwAuAE4AZQB0AHcAbwByAGsAIAAtAGUAcQAgACIAdAByAHUAZQAiAH0AIAB8ACAARgBvAHIARQBhAGMAaAAtAE8AYgBqAGUAYwB0ACAAewAkAF8ALgBkAGUAbABlAHQAZQAoACkAfQAgACAAfAAgAEMAbwBuAHYAZQByAHQAVABvAC0ASgBzAG8AbgAgAA==" ' returned non-zero exit status 1.
Output:#< CLIXML
<Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04"><S S="Error">-WmiObject : Le terme «-WmiObject» n'est pas reconnu comme nom d'applet de commande, fonction, fichier de script ou _x000D__x000A_</S><S S="Error">programme exécutable. Vérifiez l'orthographe du nom, ou si un chemin d'accès existe, vérifiez que le chemin d'accès _x000D__x000A_</S><S S="Error">est correct et réessayez._x000D__x000A_</S><S S="Error">Au caractère Ligne:2 : 1_x000D__x000A_</S><S S="Error">+ -WmiObject -Class Win32_Printer | Where-Object {$_.Network -eq "true" ..._x000D__x000A_</S><S S="Error">+ ~~~~~~~~~~_x000D__x000A_</S><S S="Error"> + CategoryInfo : ObjectNotFound: (-WmiObject:String) [], CommandNotFoundException_x000D__x000A_</S><S S="Error"> + FullyQualifiedErrorId : CommandNotFoundException_x000D__x000A_</S><S S="Error"> _x000D__x000A_</S></Objs>
CalledProcessErrorOutput: Command 'powershell -NoLogo -NoProfile -NonInteractive -ExecutionPolicy Unrestricted -OutputFormat text -EncodedCommand "JABQAHIAbwBnAHIAZQBzAHMAUAByAGUAZgBlAHIAZQBuAGMAZQAgAD0AIAAiAFMAaQBsAGUAbgB0AGwAeQBDAG8AbgB0AGkAbgB1AGUAIgAKAC0AVwBtAGkATwBiAGoAZQBjAHQAIAAtAEMAbABhAHMAcwAgAFcAaQBuADMAMgBfAFAAcgBpAG4AdABlAHIAIAB8ACAAVwBoAGUAcgBlAC0ATwBiAGoAZQBjAHQAIAB7ACQAXwAuAE4AZQB0AHcAbwByAGsAIAAtAGUAcQAgACIAdAByAHUAZQAiAH0AIAB8ACAARgBvAHIARQBhAGMAaAAtAE8AYgBqAGUAYwB0ACAAewAkAF8ALgBkAGUAbABlAHQAZQAoACkAfQAgACAAfAAgAEMAbwBuAHYAZQByAHQAVABvAC0ASgBzAG8AbgAgAA==" ' returned non-zero exit status 1.
Output:#< CLIXML
<Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04"><S S="Error">-WmiObject : Le terme «-WmiObject» n'est pas reconnu comme nom d'applet de commande, fonction, fichier de script ou _x000D__x000A_</S><S S="Error">programme exécutable. Vérifiez l'orthographe du nom, ou si un chemin d'accès existe, vérifiez que le chemin d'accès _x000D__x000A_</S><S S="Error">est correct et réessayez._x000D__x000A_</S><S S="Error">Au caractère Ligne:2 : 1_x000D__x000A_</S><S S="Error">+ -WmiObject -Class Win32_Printer | Where-Object {$_.Network -eq "true" ..._x000D__x000A_</S><S S="Error">+ ~~~~~~~~~~_x000D__x000A_</S><S S="Error"> + CategoryInfo : ObjectNotFound: (-WmiObject:String) [], CommandNotFoundException_x000D__x000A_</S><S S="Error"> + FullyQualifiedErrorId : CommandNotFoundException_x000D__x000A_</S><S S="Error"> _x000D__x000A_</S></Objs>
Sinceramente,
Albino