Verwendung von PowerShell in ConnectWise Automate-Scripts

Verwendung von PowerShell in ConnectWise Automate-Scripts

Lösung


Dokumentation zum Scripting in Automate:

 
Für folgende Automate-Scriptfunktionen wird auf dem Agent-Computer ein installiertes PowerShell 2.0 oder neuer benötigt:
PowerShell Bypass umgeht die Powershell Execution Policy unter Verwendung des Arguments "/c powershell -ExecutionPolicy ByPass".
 
PowerShell-Scripte und -Befehle geben nur den Standard-Outputstream zurück. Außerdem schreibt Write-Host nicht in den Standard-Outputstream. Hierzu verwenden Sie bitte Write-Output.
 

Praxistipps

 
Der beste Weg, aus einem Automate-Script heraus ein PowerShell-Script zu starten, ist der folgende:
- Erstellen Sie das Script als ps1-Datei mit der Funktion File Write Text. Dabei können Sie alle Automate Replacements verwenden, die zur Laufzeit des Scripts belegt sind.
- Starten Sie das Script mit der "Shell"-Funktion und dem Parameter 
%windir%\system32\WindowsPowerShell\v1.0\PowerShell.exe -ExecutionPolicy ByPass -File "%windir%\temp\PowerShellFile.PS1"
- Wenn Sie vom PowerShell-Script einen Rückgabewert erwarten, schreiben Sie diesen in eine Datei. Diese Datei können Sie dann mit der Variable Set-Funktion auswerten.
- Beenden Sie das PowerShell-Script mit Abschlussfunktionen wie den folgenden, um bei jedem denkbaren Ergebnis des PowerShell-Scripts die richtigen Informationen zu erhalten:
 
Function End-Script {
<#
.SYNOPSIS
    A function to wrap up the end of the script.
.DESCRIPTION
    Function has multiple tasks:
    1) Out-files the contents of $Error.
    2) Out-files $Result
    3) Terminates the Script.
.PARAMETER $Result
    The result string to out-file.
.EXAMPLE
    PS C:\> End-Script -Result $Result
#>

param
(
    [parameter(Mandatory = $true)]
    [String]$Result
)
Out-File -InputObject $Error -FilePath $ErrorPath
Out-File -InputObject $Result -Filepath $ResultsPath
Write-Log ("********************************")
Write-Log ("*  $ScriptName Script Ends  *")
Write-Log ("********************************")
exit;
}


Function Write-Log {
<#
.SYNOPSIS
     A function to write ouput messages to a logfile.
.DESCRIPTION
    This function is designed to send timestamped messages to a logfile of your choosing.
    Use it to replace something like write-host for a more long term log.
.PARAMETER StrMessage
    The message being written to the log file.
.EXAMPLE
    PS C:\> Write-Log -StrMessage 'This is the message being written out to the log.' 
#>

Param
(
    [Parameter(Mandatory = $True, Position = 0)]
    [String]$Message
)
add-content -path $LogFilePath -value ($Date + "`t:`t" + $Message)
}
    • Related Articles

    • Automatische Bitlocker-Aktivierung mit ConnectWise Automate

      Lösung In diesem Artikel zeigen wir Ihnen, wie Sie mit Hilfe von ConnectWise Automate die Windows-Funktion Bitlocker auf bestimmten Agents automatisch aktivieren können. Für das Ausrollen von Bitlocker sind die nachfolgenden Schritte notwendig: ...
    • Disk Cleanup-Skript in Connectwise Automate funktioniert nicht

      Lösung Problem: Bei der Verwendung des Standardskripts "Disk Cleanup" innerhalb von Connectwise Automate wird das Skript nicht ausgeführt und im Skriptprotokoll erscheint folgende Fehlermeldung: 'Desktop Experience was not detected. Disk Clean ...
    • Auslesen der Festplatten-Seriennummer mit ConnectWise Automate

      Lösung In diesem Artikel zeigen wir Ihnen, wie Sie die Seriennummer einer Festplatte mithilfe von ConnectWise Automate auslesen und speichern können. Per Standard liest ConnectWise Automate die Seriennummern von Festplatten nicht aus, dies kann ...
    • 2-Faktor-Authentifizierung in ConnectWise Automate

      Lösung In diesem Artikel zeigen wir Ihnen, wie Sie die 2-Faktor-Authentifizierung (kurz: 2FA) in der Remote Monitoring- und Management-Lösung ConnectWise Automate richtig einrichten und verwenden können. Bei einer 2FA handelt es sich um einen ...
    • Lassen sich aus ConnectWise Automate SMS-Kurzmitteilungen versenden?

      Lösung Mit der Remote Monitoring und Management-Lösung ConnectWise Automate ist es möglich, sich neben den standardmäßigen E-Mail-Benachrichtigungen auch per SMS-Kurzmitteilung über gewünschte Ereignisse informieren zu lassen. Hier bietet Ihnen die ...