VPN 자동 트리거 기능 추가하기

 

1.  시작 Menu 버튼 클릭 => PowerShell 입력

2. Windows PowerShell 앱에서 오른 마우스 클릭 후 팝업 메뉴 창에서 관리자 권한으로 실행 클릭

3. PowerShell 창에 다음을 입력:

Add-VpnConnectionTriggerApplication-Name CANITPRO –ApplicationID C:\Windows\Notepad.exe

참고: "CANITPRO"라고 된 내용을 이미 설정된 VPN 연결 이름으로 바꾸셔야 합니다. 그리고 앞으로 호출할 ApplicationID에 프로그램 경로도 적어줘야 합니다.

 

4. VPN 자동 트리거 기능을 활성화 하는데 뭐 물어보면 Y 를 입력합니다.  

5. 다음 명령어를 입력함으로 터널링 분리 기능을 활성화 한다.

Set-VpnConnection -Name CANITPRO -SplitTunneling $True

참고: 터널링 분리는 윈도우가 자동 트리거된 VPN을 통해 모든 네트워크 트래픽이 라우팅되는것을 강제로 못하도록 한다. 다만 VPN을 자동 트리거하는 응용프로그램의 데이터만 가능하도록 한다.
 

6. 또한 다음 명령을 입력하여 IDLE(유휴) 연결 해제 시간을 설정하는 것이 좋다.

Set-VpnConnection –Name CANITPRO –IdleDisconnectSeconds 10

참고: 응용 프로그램을 닫은 후 10 초 후에 VPN 연결이 자동으로 끊어진다. 필요에 따라 시간 값을 변경한다.
 

7. 완료되면 다음 명령을 입력하여 자동 트리거가 활성화되었는지 확인한다.

Get-VpnConnection -Name CANITPRO

 

 

 

 

자동 트리거 VPN기능 제거하기
 
다음 명령을 입력하면 초기 설정 응용 프로그램에서 VPN 자동 트리거를 제거 할 수 있다.

Remove-VpnConnectionTriggerApplication -Name CANITPRO –ApplicationID C:\Windows\Notepad.exe

제거 확인을 위해 묻는 창에서 "Y"를 입력하도록 한다.

참고: CANITPRO 라는 글자를 기존에 설정한 VPN 연결 이름으로 꼭 바꿔야 한다. 그리고 호촐할 ApplicationID에 반드시 프로그램 경로를 입력한다.

아래는 Keras에서 다운받은 데이터를 가지고 테스트 해봤음.

import tensorflow.compat.v1 as tf
import numpy as np
tf.disable_v2_behavior()



csv_data = np.loadtxt('D:\Downloads\winequality-red.csv', delimiter=',', dtype=np.float32)
x_data = csv_data[:1000:, 0:-1]
y_data = csv_data[:1000:, [-1]]

#print(x_data.shape, x_data,len(x_data))
#print(y_data.shape, y_data)
print("x_data = ", x_data.shape[0], x_data.shape[1])
print("y_data = ", y_data.shape[0], y_data.shape[1])

NUM_IN = x_data.shape[1]
NUM_OUT = y_data.shape[1]
NUM_CLASS= 10

X = tf.placeholder(tf.float32, shape=[None, NUM_IN])
Y = tf.placeholder(tf.int32, shape=[None, NUM_OUT])
Y_onehot = tf.one_hot(Y, NUM_CLASS)
Y_onehot = tf.reshape(Y_onehot, [-1, NUM_CLASS])
W = tf.Variable(tf.random_normal(shape=[NUM_IN,NUM_CLASS]), name='weight')
B = tf.Variable(tf.random_normal(shape=[NUM_CLASS]), name='bias')

logit = tf.matmul(X, W)+B
H=tf.nn.softmax(logit)
#cost = tf.reduce_mean(-tf.reduce_sum(Y_onehot*tf.log(H), axis=1))
cost_i = tf.nn.softmax_cross_entropy_with_logits(logits=logit, labels=Y_onehot)
cost = tf.reduce_mean(cost_i)
optimizer= tf.train.GradientDescentOptimizer(learning_rate=0.001)
train=optimizer.minimize(cost)


prediction = tf.argmax(H, 1)
correct_prediction = tf.equal(prediction, tf.argmax(Y_onehot,1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))


sess = tf.Session()
sess.run(tf.global_variables_initializer())

for step in range(10000):
    sess.run(train, feed_dict={X:x_data, Y:y_data})

loss,ac = sess.run([cost, accuracy], feed_dict={X:x_data, Y:y_data})
print("loss={:.3f}\t accuracy={:.2%}".format(loss, ac))


pred = sess.run(prediction, feed_dict={X:x_data})
for p, y in zip(pred, y_data.flatten()) :
    print( "[{}] P={} Y={}".format( p==int(y), p, int(y)))

 

 

아래는 "모두를 위한 딥러닝" 강좌의 예제.

http://hunkim.github.io/ml/

import tensorflow.compat.v1 as tf
import numpy as np
tf.disable_v2_behavior()



csv_data = np.loadtxt('D:\Downloads\data-03-diabetes.csv', delimiter=',', dtype=np.float32)
x_data = csv_data[:, 0:-1]
y_data = csv_data[:, [-1]]

#print(x_data.shape, x_data,len(x_data))
#print(y_data.shape, y_data)
print("x_data = ", x_data.shape[0], x_data.shape[1])
print("y_data = ", y_data.shape[0], y_data.shape[1])

NUM_IN = x_data.shape[1]
NUM_OUT = y_data.shape[1]

X = tf.placeholder(tf.float32, shape=[None, NUM_IN])
Y = tf.placeholder(tf.float32, shape=[None, NUM_OUT])
W = tf.Variable(tf.random_normal(shape=[NUM_IN,NUM_OUT]), name='weight')
B = tf.Variable(tf.random_normal(shape=[NUM_OUT]), name='bias')

H=tf.sigmoid(tf.matmul(X, W)+B)
cost = -tf.reduce_mean(Y*tf.log(H) + (1-Y)*tf.log(1-H))
optimizer= tf.train.GradientDescentOptimizer(learning_rate=0.001)
train=optimizer.minimize(cost)

predicted = tf.cast(H > 0.5, dtype=tf.float32)
accuracy = tf.reduce_mean(tf.cast(tf.equal(predicted, Y), dtype=tf.float32))

sess = tf.Session()
sess.run(tf.global_variables_initializer())

for step in range(20000):
    out_cost, _ = sess.run([cost, train], feed_dict={X:x_data, Y:y_data})
    if step % 200 == 0 :
        print( "step=", step, " cost=", out_cost)

p, a = sess.run([predicted, accuracy], feed_dict={X:x_data, Y:y_data})
print( "predict=", p, "  accuracy=", a)

초등 사칙 복합 연산 문제.xlsm
0.02MB

초등 고학년 혹은 중학교 1학년 아이를 둔 부모에게 유용한 자료일듯 싶다.

간단한 사칙연산은 하지만 혼합된 사칙연산의 경우 계산 순서에 어려움이 있는 경우 많은 실수를 하게 된다.

이런 경우 사칙연산의 계산 순서를 혼동하지 않도록 연습할 수 있는 엑셀 시트를 준비하였다.

필요한 양만큼 인쇄하여 아이들이 수학계산에 어려움을 극복할 수 있기를 도와주기 바란다.

 

정답은 인쇄 후 오려두거나 뒤로 접어서 보이지 않도록 한다.

 

 

버튼을 누르면 2페이지 분량의 문제를 자동으로 생성한다.

 

본 엑셀시트는 내부에 VBA 매크로를 사용하고 있는데 MS 오피스에서 보안 문제로 경고를 하는경우 이를 무시하고 사용하도록 한다.

매크로를 내부에서 사용하므로 보안 경고를 한다. 이를 무시한다.

 

+ Recent posts