Posts mit dem Label INI werden angezeigt. Alle Posts anzeigen
Posts mit dem Label INI werden angezeigt. Alle Posts anzeigen

Powershell - create WLAN Profile from INI File

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
 function Get-IniFile
{  
    param(  
        [parameter(Mandatory = $true)] [string] $filePath  
    )  
    
    $anonymous = "NoSection"
 
    $ini = @{}  
    switch -regex -file $filePath  
    {  
        "^\[(.+)\]$" # Section  
        {  
            $section = $matches[1]  
            $ini[$section] = @{}  
            $CommentCount = 0  
        }  

        "^(;.*)$" # Comment  
        {  
            if (!($section))  
            {  
                $section = $anonymous  
                $ini[$section] = @{}  
            }  
            $value = $matches[1]  
            $CommentCount = $CommentCount + 1  
            $name = "Comment" + $CommentCount  
            $ini[$section][$name] = $value  
        }   

        "(.+?)\s*=\s*(.*)" # Key  
        {  
            if (!($section))  
            {  
                $section = $anonymous  
                $ini[$section] = @{}  
            }  
            $name,$value = $matches[1..2]  
            $ini[$section][$name] = $value  
        }  
    }  

    return $ini  
}  

$iniFile = Get-IniFile "c:\info\additional_info.ini"


$SSID = $iniFile.NoSection.SerialNumber

$profilefile = "$Env:USERPROFILE\AppData\Roaming\info\" + $SSID + "-WLANProfile.xml"
$PW = $SSID

$SSIDHEX=($SSID.ToCharArray() |foreach-object {'{0:X}' -f ([int]$_)}) -join''
$xmlfile="<?xml version=""1.0""?>
<WLANProfile xmlns=""http://www.microsoft.com/networking/WLAN/profile/v1"">
    <name>$SSID</name>
    <SSIDConfig>
        <SSID>
            <hex>$SSIDHEX</hex>
            <name>$SSID</name>
        </SSID>
    </SSIDConfig>
    <connectionType>ESS</connectionType>
    <connectionMode>auto</connectionMode>
    <MSM>
        <security>
            <authEncryption>
                <authentication>WPAPSK</authentication>
                <encryption>AES</encryption>
                <useOneX>false</useOneX>
            </authEncryption>
            <sharedKey>
                <keyType>passPhrase</keyType>
                <protected>false</protected>
                <keyMaterial>$PW</keyMaterial>
            </sharedKey>
        </security>
    </MSM>
</WLANProfile>
"

$XMLFILE > ($profilefile)

netsh wlan delete profile name=*
netsh wlan add profile filename="$($profilefile)"
netsh wlan show profiles $SSID key=clear
netsh wlan connect name=$SSID
additional_info.ini
1
2
SerialNumber = 35356345601
CalibrationDate = 22 Oct 2010

Powershell - Get IniFile and compare date - vbs

1
CreateObject("Wscript.Shell").Run "powershell -EP ByPass -NoP -File C:\checkCalibration_all.ps1", 0, False

Powershell - Get IniFile and compare date - script

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
param($date = (Get-Date))

function Get-IniFile
{  
    param(  
        [parameter(Mandatory = $true)] [string] $filePath  
    )  
    
    $anonymous = "NoSection"
 
    $ini = @{}  
    switch -regex -file $filePath  
    {  
        "^\[(.+)\]$" # Section  
        {  
            $section = $matches[1]  
            $ini[$section] = @{}  
            $CommentCount = 0  
        }  

        "^(;.*)$" # Comment  
        {  
            if (!($section))  
            {  
                $section = $anonymous  
                $ini[$section] = @{}  
            }  
            $value = $matches[1]  
            $CommentCount = $CommentCount + 1  
            $name = "Comment" + $CommentCount  
            $ini[$section][$name] = $value  
        }   

        "(.+?)\s*=\s*(.*)" # Key  
        {  
            if (!($section))  
            {  
                $section = $anonymous  
                $ini[$section] = @{}  
            }  
            $name,$value = $matches[1..2]  
            $ini[$section][$name] = $value  
        }  
    }  

    return $ini  
}  

$iniFile = Get-IniFile "$Env:USERPROFILE\AppData\Roaming\info.ini"
$addIniFile = Get-IniFile "C:\info\additional_info.ini"
$language = $iniFile.General.language
$calidateIni = $addIniFile.NoSection.CalibrationDate


Add-Type -AssemblyName System.Windows.Forms

$calidate = [Datetime]::ParseExact($calidateIni, 'dd MMM yyyy', [CultureInfo]'en-us')
            
#' '
#'This is in the additional info.txt = ' + $calidate.AddDays(365)
#'This is the date now               = ' + $date
#' '

if ($calidate -as [DateTime])  {
    if ($date -ge $calidate.AddDays(365)) {
        #'Date now is bigger than calidate'
        #$language
        if ($language -eq "de")
        {
            #echo $language    
            [System.Windows.Forms.MessageBox]::Show("Service fällig.","Info",0)
        }
        elseif ($language -eq "en")
        {
            [System.Windows.Forms.MessageBox]::Show("Service due.","Info",0)
        }
        elseif ($language -eq "fr")
        {
            [System.Windows.Forms.MessageBox]::Show("Service dû","Info",0)
        }
        elseif ($language -eq "ja")
        {
            [System.Windows.Forms.MessageBox]::Show("校正有効期限が失効しました","Info",0)
        }
                    
    } elseif ($date -ge $calidate.AddDays(335)) {
        #'Date now is in 30 days or less than calidate'
        $diffdate = New-TimeSpan -Start $date -End $calidate.AddDays(365)
        #'Calidate + 365                     = ' + $calidate.AddDays(365)
        #'This is the date now               = ' + $date
        #"Service fällig in                  = " + $diffdate.Days + " Tagen"

        if ($language -eq "de")
        {
            [System.Windows.Forms.MessageBox]::Show("Service fällig in " + $diffdate.Days + " Tagen","Info",0)
        }
        elseif ($language -eq "en")
        {
            [System.Windows.Forms.MessageBox]::Show("Service due in " + $diffdate.Days + " days","Info",0)
        }
        elseif ($language -eq "fr")
        {
            [System.Windows.Forms.MessageBox]::Show("Prochain service dans " + $diffdate.Days + " jour(s).","Info",0)
        }
        elseif ($language -eq "ja")
        {
            [System.Windows.Forms.MessageBox]::Show("校正有効期限失効まであと " + $diffdate.Days + " 日","Info",0)
        }
                
    } else
    {
        #'no'
        #[System.Windows.Forms.MessageBox]::Show("Calibration is ok","Info",0)
        #[string]$linesplit[1]
        #$date

    }
}

How do I grab an INI value within a shell script?

 

Just include your .ini file into bash body:

File example.ini:

1
2
3
DBNAME=test
DBUSER=scott
DBPASSWORD=tiger

File example.sh

1
2
3
4
5
#!/bin/bash
#Including .ini file
. example.ini
#Test
echo "${DBNAME}   ${DBUSER}  ${DBPASSWORD}"
[ Source: https://stackoverflow.com/questions/6318809/how-do-i-grab-an-ini-value-within-a-shell-script ] 

Datei in einer windows.wim image ändern

 Um Dateien in einer Datei.wim zu ändern, und zwar nicht im 1. Index sondern 2. öffnet man Powershell (ich habs jetzt im admin Modus gestart...