#!powershell # Copyright: (c) 2018, Ripon Banik (@riponbanik) # GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) #AnsibleRequires -CSharpUtil Ansible.Basic $spec = @{ options = @{ name = @{ type = 'str'; required = $true } } supports_check_mode = $true } $module = [Ansible.Basic.AnsibleModule]::Create($args, $spec) $current_computer_name = (Get-CimInstance -Class Win32_ComputerSystem).DNSHostname $module.Result.old_name = $current_computer_name $module.Result.reboot_required = $false $module.Diff.before = $current_computer_name $module.Diff.after = $module.Params.name if ($module.Params.name -ne $current_computer_name) { Try { Rename-Computer -NewName $module.Params.name -Force -WhatIf:$module.CheckMode } Catch { $module.FailJson("Failed to rename computer to '$($module.Params.name)': $($_.Exception.Message)", $_) } $module.Result.changed = $true $module.Result.reboot_required = $true } $module.ExitJson()