Server IP : 85.214.239.14 / Your IP : 18.227.105.41 Web Server : Apache/2.4.62 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.18 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /lib/python3/dist-packages/ansible_collections/ansible/windows/plugins/modules/ |
Upload File : |
#!/usr/bin/python # -*- coding: utf-8 -*- # Copyright: (c) 2021, Ansible Project # GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) DOCUMENTATION = r''' --- module: win_powershell version_added: 1.5.0 short_description: Run PowerShell scripts description: - Runs a PowerShell script and outputs the data in a structured format. - Use M(ansible.windows.win_command) or M(ansible.windows.win_shell) to run a tranditional PowerShell process with stdout, stderr, and rc results. options: arguments: description: - A list of arguments to pass to I(executable) when running a script in another PowerShell process. - These are not arguments to pass to I(script), use I(parameters) for that purpose. type: list elements: str chdir: description: - The PowerShell location to set when starting the script. - This can be a location in any of the PowerShell providers. - The default location is dependent on many factors, if relative paths are used then set this option. type: str creates: description: - A path or path filter pattern; when the referenced path exists on the target host, the task will be skipped. type: str depth: description: - How deep the return values are serialized for C(result), C(output), and C(information[x].message_data). - This also controls the depth of the diff output set by C($Ansible.Diff). - Setting this to a higher value can dramatically increase the amount of data that needs to be returned. default: 2 type: int error_action: description: - The C($ErrorActionPreference) to set before executing I(script). - C(silently_continue) will ignore any errors and exceptions raised. - C(continue) is the default behaviour in PowerShell, errors are present in the I(error) return value but only terminating exceptions will stop the script from continuing and set it as failed. - C(stop) will treat errors like exceptions, will stop the script and set it as failed. choices: - silently_continue - continue - stop default: continue type: str executable: description: - A custom PowerShell executable to run the script in. - When not defined the script will run in the current module PowerShell interpreter. - Both the remote PowerShell and the one specified by I(executable) must be running on PowerShell v5.1 or newer. - Setting this value may change the values returned in the C(output) return value depending on the underlying .NET type. type: str parameters: description: - Parameters to pass into the script as key value pairs. - The key corresponds to the parameter name and the value is the value for that parameter. type: dict removes: description: - A path or path filter pattern; when the referenced path B(does not) exist on the target host, the task will be skipped. type: str script: description: - The PowerShell script to run. type: str required: true seealso: - module: ansible.windows.win_command - module: ansible.windows.win_shell notes: - The module is set as failed when a terminating exception is throw, or C(error_action=stop) and a normal error record is raised. - The output values are processed using a custom filter and while it mostly matches the C(ConvertTo-Json) result the following value types are different. - C(DateTime) will be an ISO 8601 string in UTC, C(DateTimeOffset) will have the offset as specified by the value. - C(Enum) will contain a dictionary with C(Type), C(String), C(Value) being the type name, string representation and raw integer value respectively. - C(Type) will contain a dictionary with C(Name), C(FullName), C(AssemblyQualifiedName), C(BaseType) being the type name, the type name including the namespace, the full assembly name the type was defined in and the base type it derives from. - The script has access to the C($Ansible) variable where it can set C(Result), C(Changed), C(Failed), C(Diff), or access C(Tmpdir). - C($Ansible.Result) is a value that is returned back to the controller as is. - C($Ansible.Diff) was added in the C(1.12.0) release of C(ansible.windows) and is a dictionary that is set to the diff result that can be interepreted by Ansible. - C($Ansible.Changed) can be set to C(true) or C(false) to reflect whether the module made a change or not. By default this is set to C(true). - C($Ansible.Failed) can be set to C(true) if the script wants to return the failure back to the controller. - C($Ansible.Tmpdir) is the path to a temporary directory to use as a scratch location that is cleaned up after the module has finished. - C($Ansible.Verbosity) reveals Ansible's verbosity level for this play. Allows the script to set VerbosePreference/DebugPreference based on verbosity. Added in C(1.9.0). - Any host/console direct output like C(Write-Host) or C([Console]::WriteLine) is not considered an output object, they are returned as a string in I(host_out) and I(host_err). - Any output stream object is instead returned as a list in I(output). This is true not only for C(Write-Output) and its built-in alias C(echo), but also for implicit output; i.e. C(Write-Output "foo") and C("foo") give the same result. - The module will skip running the script when in check mode unless the script defines C([CmdletBinding(SupportsShouldProcess)]). author: - Jordan Borean (@jborean93) ''' EXAMPLES = r''' - name: Run basic PowerShell script ansible.windows.win_powershell: script: | echo "Hello World" - name: Run PowerShell script with parameters ansible.windows.win_powershell: script: | [CmdletBinding()] param ( [String] $Path, [Switch] $Force ) New-Item -Path $Path -ItemType Directory -Force:$Force parameters: Path: C:\temp Force: true - name: Run PowerShell script that modifies the module changed result ansible.windows.win_powershell: script: | if (Get-Service -Name test -ErrorAction SilentlyContinue) { Remove-Service -Name test } else { $Ansible.Changed = $false } - name: Run PowerShell script in PowerShell 7 ansible.windows.win_powershell: script: | $PSVersionTable.PSVersion.Major executable: pwsh.exe arguments: - -ExecutionPolicy - ByPass register: pwsh_output failed_when: - pwsh_output.output[0] != 7 - name: Run code in check mode ansible.windows.win_powershell: script: | [CmdletBinding(SupportsShouldProcess)] param () # Use $Ansible to detect check mode if ($Ansible.CheckMode) { echo 'running in check mode' } else { echo 'running in normal mode' } # Use builtin ShouldProcess (-WhatIf) if ($PSCmdlet.ShouldProcess('target')) { echo 'also running in normal mode' } else { echo 'also running in check mode' } check_mode: yes - name: Return a failure back to Ansible ansible.windows.win_powershell: script: | if (Test-Path C:\bad.file) { $Ansible.Failed = $true } - name: Define when the script made a change or not ansible.windows.win_powershell: script: | if ((Get-Item WSMan:\localhost\Service\Auth\Basic).Value -eq 'true') { Set-Item WSMan:\localhost\Service\Auth\Basic -Value false } else { $Ansible.Changed = $true } - name: Define when to enable Verbose/Debug output ansible.windows.win_powershell: script: | if ($Ansible.Verbosity -ge 3) { $VerbosePreference = "Continue" } if ($Ansible.Verbosity -eq 5) { $DebugPreference = "Continue" } Write-Output "Hello World!" Write-Verbose "Hello World!" Write-Debug "Hello World!" ''' RETURN = r''' result: description: - The values that were set by C($Ansible.Result) in the script. - Defaults to an empty dict but can be set to anything by the script. returned: always type: complex sample: {'key': 'value', 'other key': 1} contains: {} # Satisfy the validate-modules sanity check host_out: description: - The strings written to the host output, typically the stdout. - This is not the same as objects sent to the output stream in PowerShell. returned: always type: str sample: "Line 1\nLine 2" host_err: description: - The strings written to the host error output, typically the stderr. - This is not the same as objects sent to the error stream in PowerShell. returned: always type: str sample: "Error 1\nError 2" output: description: - A list containing all the objects outputted by the script. - The list elements can be anything as it is based on what was ran. returned: always type: list sample: ['output 1', 2, ['inner list'], {'key': 'value'}, None] error: description: - A list of error records created by the script. returned: always type: list elements: dict contains: output: description: - The formatted error record message as typically seen in a PowerShell console. type: str returned: always sample: | Write-Error "error" : error + CategoryInfo : NotSpecified: (:) [Write-Error], WriteErrorException + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException error_details: description: - Additional details about an ErrorRecord. - Can be null if there are not additional details. type: dict contains: message: description: - Message for the error record. returned: always type: str sample: Specific error message recommended_action: description: - Recommended action in the even that this error occurs. - This is empty unless the code which generates the error adds this explicitly. returned: always type: str sample: Delete file exception: description: - Details about the exception behind the error record. type: dict contains: message: description: - The exception message. type: str returned: always sample: The method ran into an error type: description: - The full .NET type of the Exception class. type: str returned: always sample: System.Exception help_link: description: - A link to the help details for the exception. - May not be set as it's dependent on whether the .NET exception class provides this info. type: str returned: always sample: http://docs.ansible.com/ source: description: - Name of the application or object that causes the error. - This may be an empty string as it's dependent on the code that raises the exception. type: str returned: always sample: C:\Windows hresult: description: - The signed integer assigned to this exception. - May not be set as it's dependent on whether the .NET exception class provides this info. type: int returned: always sample: -1 inner_exception: description: - The inner exception details if there is one present. - The dict contains the same keys as a normal exception. returned: always type: dict target_object: description: - The object which the error occured. - May be null if no object was specified when the record was created. - Type type of this object depends on the error record itself. - If the value is a complex type, it will follow the C(depth) limit specified. type: raw returned: always sample: C:\Windows category_info: description: - More information about the error record. type: dict contains: category: description: - The category name of the error record. type: str returned: always sample: NotSpecified category_id: description: - The integer representation of the category. type: int returned: always sample: 0 activity: description: - Description of the operation which encountered the error. type: str returned: always sample: Write-Error reason: description: - Description of the error. type: str returned: always sample: WriteErrorException target_name: description: - Description of the target object. - Can be an empty string if no target was specified. type: str returned: always sample: C:\Windows target_type: description: - Description of the type of the target object. - Can be an empty string if no target object was specified. type: str returned: always sample: String fully_qualified_error_id: description: - The unique identifier for the error condition - May be null if no id was specified when the record was created. type: str returned: always sample: ParameterBindingFailed script_stack_trace: description: - The script stack trace for the error record. type: str returned: always sample: 'at <ScriptBlock>, <No file>: line 1' pipeline_iteration_info: description: - The status of the pipeline when this record was created. - The values are 0 index based. - Each element entry represents the command index in a pipeline statement. - The value of each element represents the pipeline input idx in that command. - For Example C('C:\Windows', 'C:\temp' | Get-ChildItem | Get-Item), C([1, 2, 9]) represents an error occured with the 2nd output, 3rd, and 9th output of the 1st, 2nd, and 3rd command in that pipeline respectively. type: list elements: int returned: always sample: [0, 0] warning: description: - A list of warning messages created by the script. - Warning messages only appear when C($WarningPreference = 'Continue'). returned: always type: list elements: str sample: ['warning record'] verbose: description: - A list of warning messages created by the script. - Verbose messages only appear when C($VerbosePreference = 'Continue'). returned: always type: list elements: str sample: ['verbose record'] debug: description: - A list of warning messages created by the script. - Debug messages only appear when C($DebugPreference = 'Continue'). returned: always type: list elements: str sample: ['debug record'] information: description: - A list of information records created by the script. - The information stream was only added in PowerShell v5, older versions will always have an empty list as a value. returned: always type: list elements: dict contains: message_data: description: - Message data associated with the record. - The value here can be of any type. type: complex returned: always sample: information record contains: {} # Satisfy the validate-modules sanity check source: description: - The source of the record. type: str returned: always sample: Write-Information time_generated: description: - The time the record was generated. - This is the time in UTC as an ISO 8601 formatted string. type: str returned: always sample: '2021-02-11T04:46:00.4694240Z' tags: description: - A list of tags associated with the record. type: list elements: str returned: always sample: ['Host'] '''