úterý 2. listopadu 2010

Powershell–různé praktické

Stahování souboru z internetu pomocí powershellu,scriptík si samozřejmě může každý ohnout dle svých představ.

[reflection.assembly]::LoadWithPartialName("Microsoft.VisualBasic") | Out-Null
$url = 'http://www.idera.com/images/Tours/Videos/PowerShell-Plus-IDE-1.wmv'
$dest = "$home\video.wmv"
$object = New-Object Microsoft.VisualBasic.Devices.Network
$object.DownloadFile($url, $dest, "", "", $true, 500, $true, "DoNothing")
Invoke-Item $dest

Powershell runas

Start-Process powershell -verb runas

Start procesu jako jiny uživatel

Start-Process powershell -LoadUserProfile -Credential (Get-Credential)

Pěkný scriptík broken hardware

 
# Display Computer details
"Computer Details:"
$comp = gwmi Win32_ComputerSystem
"Manufacturer: {0}" -f $comp.Manufacturer
"Model:        {0}" -f $comp.Model
$computer2 = Get-WmiObject Win32_ComputerSystemProduct
"Service Tag:  {0}" -f $computer2.IdentifyingNumber
""
 
#Get hardware that is errored
"Hardware that's not working list" 
$broken = Get-WmiObject Win32_PnPEntity | where {$_.ConfigManagerErrorCode -ne 0}
 
#Display broken hardware
foreach ($obj in $broken){    
"Description:  {0}" -f  $obj.Description
"Device ID:    {0}" -f  $obj.DeviceID
"Error ID:     {0}" -f  $obj.ConfigManagerErrorCode


""
}

Scriptík vhodný pro spoustu lidí lidí co navštěvují forum s jedním dotazem pořád dokola – nechci aby se sit hlásila jako neidentifikovatelná a nemůžu to změnit Veselý obličej

$NLMType = [Type]::GetTypeFromCLSID(‘DCB00C01-570F-4A9B-8D69-199FDBA5723B’)

$INetworkListManager = [Activator]::CreateInstance($NLMType)

 

$NLM_ENUM_NETWORK_CONNECTED  = 1

$NLM_NETWORK_CATEGORY_PUBLIC = 0x00

$NLM_NETWORK_CATEGORY_PRIVATE = 0x01

$UNIDENTIFIED = "Unidentified network"

 

$INetworks = $INetworkListManager.GetNetworks($NLM_ENUM_NETWORK_CONNECTED)

 

foreach ($INetwork in $INetworks)

{

    $Name = $INetwork.GetName()

    $Category = $INetwork.GetCategory()

 

    if ($INetwork.IsConnected -and ($Category -eq $NLM_NETWORK_CATEGORY_PUBLIC) -and ($Name -eq $UNIDENTIFIED))

    {

        $INetwork.SetCategory($NLM_NETWORK_CATEGORY_PRIVATE)

    }

}