Initial commit
This commit is contained in:
97
scripts/winrm/test_simple_winrm.py
Normal file
97
scripts/winrm/test_simple_winrm.py
Normal file
@@ -0,0 +1,97 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Test simple WinRM script execution
|
||||
Uses very small commands to avoid length limits
|
||||
"""
|
||||
|
||||
import os
|
||||
from winrm import Session
|
||||
|
||||
|
||||
def test_simple_script_execution():
|
||||
host = os.getenv('HOST', '192.168.88.108')
|
||||
username = os.getenv('USER_NAME', 'Admin')
|
||||
password = os.getenv('PASS', 'P@ssw0rd!')
|
||||
|
||||
print(f"Testing simple WinRM script execution on {host}")
|
||||
|
||||
try:
|
||||
# Connect
|
||||
session = Session(
|
||||
f'http://{host}:5985/wsman',
|
||||
auth=(username, password),
|
||||
transport='ntlm'
|
||||
)
|
||||
|
||||
# Test 1: Simple inline PowerShell
|
||||
print("\n[Test 1] Running simple inline PowerShell:")
|
||||
simple_ps = """
|
||||
Write-Host "=== Simple WinRM Test ==="
|
||||
Write-Host "Computer: $env:COMPUTERNAME"
|
||||
Write-Host "User: $env:USERNAME"
|
||||
Write-Host "PowerShell: $($PSVersionTable.PSVersion)"
|
||||
Write-Host "Time: $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')"
|
||||
Write-Host "=== End Test ==="
|
||||
"""
|
||||
|
||||
result = session.run_ps(simple_ps)
|
||||
|
||||
if result.status_code == 0:
|
||||
print("✅ Simple PowerShell execution successful:")
|
||||
output = result.std_out.decode('utf-8', errors='replace')
|
||||
for line in output.split('\n'):
|
||||
if line.strip():
|
||||
print(f" {line.strip()}")
|
||||
else:
|
||||
print(f"❌ Simple PowerShell failed: {result.std_err.decode()}")
|
||||
return False
|
||||
|
||||
# Test 2: Create small script file
|
||||
print("\n[Test 2] Creating and executing small script file:")
|
||||
|
||||
# Create a very small script
|
||||
create_script = """
|
||||
$scriptContent = @'
|
||||
Write-Host "Small script test"
|
||||
Get-ComputerInfo -Property CsName, WindowsProductName | Format-List
|
||||
Write-Host "Small script completed"
|
||||
'@
|
||||
|
||||
$scriptContent | Out-File -FilePath 'C:\\Users\\Admin\\small_test.ps1' -Encoding UTF8
|
||||
Write-Host "Small script file created"
|
||||
"""
|
||||
|
||||
result = session.run_ps(create_script)
|
||||
|
||||
if result.status_code == 0:
|
||||
print("✅ Script file created successfully")
|
||||
|
||||
# Execute the small script
|
||||
exec_result = session.run_cmd('powershell -NoProfile -ExecutionPolicy Bypass -File C:\\Users\\Admin\\small_test.ps1')
|
||||
|
||||
if exec_result.status_code == 0:
|
||||
print("✅ Script execution successful:")
|
||||
output = exec_result.std_out.decode('utf-8', errors='replace')
|
||||
for line in output.split('\n'):
|
||||
if line.strip():
|
||||
print(f" {line.strip()}")
|
||||
return True
|
||||
else:
|
||||
print(f"❌ Script execution failed: {exec_result.std_err.decode()}")
|
||||
return False
|
||||
else:
|
||||
print(f"❌ Script creation failed: {result.std_err.decode()}")
|
||||
return False
|
||||
|
||||
except Exception as e:
|
||||
print(f"❌ Test failed: {e}")
|
||||
return False
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
if test_simple_script_execution():
|
||||
print("\n🎉 Simple WinRM script execution works!")
|
||||
print("This proves WinRM can execute PowerShell scripts.")
|
||||
print("The issue is with large script handling, not basic functionality.")
|
||||
else:
|
||||
print("\n❌ Basic WinRM functionality failed")
|
||||
Reference in New Issue
Block a user